You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Godot中使用C#手动添加Area2D的body_entered信号回调方法

手动添加Godot C#中Area2D的body_entered信号回调步骤

1. 定义匹配信号签名的回调方法

body_entered信号会传递一个进入Area的物理体节点(类型为Node2D或其子类),所以你需要在C#脚本中定义一个参数类型匹配的方法:

private void OnBodyEntered(Node2D body)
{
    // 这里写入你的碰撞逻辑,比如打印调试信息
    GD.Print($"进入Area的物体:{body.Name}");
}

如果你的Area只检测特定类型的物理体(比如CharacterBody2D或RigidBody2D),可以把参数类型换成对应的子类,提升代码精准度。

2. 在_Ready()中手动连接信号

有两种常用的连接方式:

  • 字符串形式(兼容全版本):
public override void _Ready()
{
    Connect("body_entered", this, nameof(OnBodyEntered));
}
  • 类型安全委托(Godot 3.5+推荐):
    这种方式避免字符串拼写错误,更易维护:
public override void _Ready()
{
    BodyEntered += OnBodyEntered;
}

注意事项

如果使用Godot 4.x版本,信号名称已改为大驼峰命名BodyEntered,此时字符串形式需要写成"BodyEntered",类型安全写法和上面一致。

最后确保脚本已正确附加到目标Area2D节点上,运行游戏后,当有物理体进入Area时,回调方法就会触发。

内容的提问来源于stack exchange,提问作者Kyle Pollard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:22:02