首页 > 解决方案 > 检测 godot 内 3d 对象上的点击/触摸屏输入

问题描述

我正在尽我所能在godot游戏引擎中构建一个手机游戏。我遇到了一个问题。在 3D 游戏中,我如何检测鼠标点击特定对象或者更确切地说该对象在屏幕上的位置。我不明白如何使用控制节点来做到这一点。

标签: godot

解决方案


使 3D 对象可点击的最简单方法是给它一个CollisionObject(例如 a StaticBody)并连接到input_event信号。例如,要检测左键单击:

extends StaticBody

func _ready():
    connect("input_event", self, "on_input_event")

func on_input_event(camera, event, click_position, click_normal, shape_idx):
    var mouse_click = event as InputEventMouseButton
    if mouse_click and mouse_click.button_index == 1 and mouse_click.pressed:
        print("clicked")

文档提到触摸事件类似于点击事件。

注意input_ray_pickable一定要trueCollisionObject(这是默认的)。


推荐阅读