I found another solution and this is better than before one.
If you have a button on your screen you must use these two events.
- pressed()
- gui_input(event: InputEvent)
for your button of course.
func is_ui_event(event):
if event is InputEventMouseMotion:
return
if event is InputEventScreenDrag:
return
if event is InputEventScreenTouch and event.is_pressed():
get_tree().call_group("main_camera", "is_ui_event")
if event is InputEventScreenTouch and not event.is_pressed():
get_tree().call_group("main_camera", "is_not_ui_event")
func _on_btn_gui_input(event):
is_ui_event(event)
My camera has this next code:
func _ready():
add_to_group("main_camera")
func is_ui_event():
ui_event = true
func is_not_ui_event():
ui_event = false
func _input(event):
if event is InputEventMouseMotion:
return
if event is InputEventScreenDrag:
return
if ui_event == false and event is InputEventScreenTouch and not event.is_pressed():
# ALL YOUR CODE FOR RAYCASTING
If you have questions let me know.