要检测碰撞并获取碰撞的对象,可以使用 body_entered 信号,这个信号在一个物体进入另一个物体(例如玩家)时触发。你可以将这个信号与一个回调函数关联,在回调函数中,通过信号传递的参数访问碰撞对象的名称或其他属性。
在脚本中,定义一个函数 _on_body_entered(body),这个函数将在碰撞发生时触发,并接收碰撞对象作为参数。
extends Area3D
# 当物体进入时触发
func _on_body_entered(body: Node) -> void:
if body.is_in_group("Player"):
print("Collided with:", body.name) # 输出碰撞对象的名称
# 处理逻辑
some_variable = true
为确保碰撞检测只在特定物体之间发生,需要设置物理层和遮罩。