While the forums are down, I have spawned an instance in a 3D world and would like to execute a function one the instance when I click it with my mouse. How would I do that?

you are viewing a single comment's thread
view the rest of the comments
[–] [S] 1 point 3 years ago (2 children)

I am trying to add this to an Character 3D like this

func _on_input_event(camera, event, position, normal, shape_idx):
	print(event)
	if event is InputEventMouseButton: 
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed == true:
			print("PRESST")

but it doesn't print anything, it is Ray pickable and the signal is connected

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 3 years ago* (1 child)

    Are you sure the input event is coming from your staticbody/rigidbody/characterbody? Also double check that you have a collisionshape/collisionpolygon under that so it can detect collisions. I've tried your code on my staticbody3D and it worked just fine.

    func _on_static_body_3d_input_event(camera, event, position, normal, shape_idx):
    	print(event)
    	if event is InputEventMouseButton: 
    		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed == true:
    			print("PRESST")
    
  • source
  • parent
  • hideshow 1 child comment