节点结构
其中
clickable是个MeshInstance负责显示模型,这个Demo的逻辑脚本也挂在了上面
Area就是Area类型的CollisionObject
CollisionShape就是CollisionObject所需的CollisionShape
Godot实现这个效果的思路非常清晰而且符合职责单一的原则:
MeshInstance负责显示
CollisionObject负责碰撞检测以及信号发送
CollisionShape负责描述碰撞盒
代码:
extends MeshInstance
func _on_Area_input_event(camera, event, click_position, click_normal, shape_idx):
if event is InputEventMouseButton:
if event.button_index == BUTTON_LEFT and event.pressed == true:
_doSomething()
func _doSomething():
print("Hi Click")
然后把_on_Area_input_event方法连接到Area的相应事件就可以了
本文为ttm2d原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上出处链接和本声明。
转载自 https://blog.csdn.net/ttm2d/article/details/102480995