godot - 检测 godot 内 3d 对象上的点击/触摸屏输入
问题描述
我正在尽我所能在godot游戏引擎中构建一个手机游戏。我遇到了一个问题。在 3D 游戏中,我如何检测鼠标点击特定对象或者更确切地说该对象在屏幕上的位置。我不明白如何使用控制节点来做到这一点。
解决方案
使 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
一定要true
上CollisionObject
(这是默认的)。
推荐阅读
- pdf-generation - Drupal 8 和打印机、电子邮件和 PDF - 找不到页面
- react-native - 使用 composeWithDevTools() 时是否应将 Redux Devtools Extension 作为开发依赖项安装?
- php - 该行在 MySQL 中没有被删除,PHP 没有返回错误
- jira - Jira API 创建工作日志返回 HTTP 201,但记录的票证不在 JIRA(网络应用程序)内
- react-redux - 为什么当 redux 存储更改时我的 React 视图没有更新?
- html - 引导程序帮助 - 尝试使用 list-group-item 创建一个 2 列表
- node.js - 如何在 JSON 文件中搜索特定位置?
- java - 这是 MobileServiceProvider Java 程序问题
- google-apps-script - 运行脚本时 Google 表格中的函数损坏
- ruby-on-rails - 如何通过 has_many 在同一个表单上保存两个模型