Spyke

Syndicated from the fediverse. Read and engage on the original instance.

View original on discuss.tchncs.de
godot·Godotbyheimchen

Making a 3D Object clickable with a mouse

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?

View original on discuss.tchncs.de
13

5 replies

lemm.ee

You can use an Input Event like this or if you want a more flexible solution you can shoot a raycast from the camera and check if you hit an object that can be clicked.

2
heimchenreply
discuss.tchncs.de

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

1
simplereply
lemm.ee

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")
1

You reached the end

Making a 3D Object clickable with a mouse | Spyke