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?

  • heimchenOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    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

    • simple@lemm.ee
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 year ago

      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")
      
      • heimchenOP
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        Yes thank you, the collisionshape was ConvexPolygonShap, changing it to box fixed it.