_bind_methods
_bind_methods 是 Godot C++ 扩展(GDNative/GDExtension)中用于注册类方法、属性、信号到 Godot 引擎的特殊函数。它通常是静态或受保护成员函数,在类初始化时由 Godot 自动调用。你在 _bind_methods 里用 ClassDB::bind_method、ADD_PROPERTY、ADD_SIGNAL 等宏,把 C++ 的方法、属性、信号暴露给 Godot 脚本和编辑器。
Godot C++ 扩展中常见的特殊函数还有:
_init():对象初始化时调用(类似构造函数,但可被脚本重载)。_ready():节点加入场景树后调用。_process(delta):每帧调用,用于逻辑更新。_physics_process(delta):每帧物理步进时调用。_notification(what):节点状态变化时的回调。_enter_tree()/_exit_tree():节点进入/离开场景树时调用。_input(event):输入事件处理。_unhandled_input(event):未被处理的输入事件。
这些函数在 Godot 脚本(GDScript/C#/C++)中都可以重载,实现自定义逻辑。C++ 扩展中,只有 _bind_methods 是必须实现的(用于注册),其他函数根据需要重载。
_process和_physics_process有何区别在 Godot 引擎中,
_process和_physics_process的主要区别如下:
_process(delta):每帧调用一次,受帧率影响,适合处理动画、UI、非物理相关的逻辑。_physics_process(delta):以固定的物理帧率(通常为 60Hz)调用,适合处理物理相关的逻辑(如移动、碰撞检测等),保证物理计算的稳定性。简而言之:
_process用于非物理逻辑,帧率不固定。_physics_process用于物理逻辑,帧率固定。
_notification
_notification 是 Godot 引擎的底层回调函数,在节点生命周期的各个阶段由引擎自动调用。它会在如下时机被触发:
- 节点被实例化、进入/退出场景树、进入/退出世界时(如
NOTIFICATION_ENTER_TREE、NOTIFICATION_EXIT_TREE、NOTIFICATION_ENTER_WORLD、NOTIFICATION_EXIT_WORLD) - 节点准备就绪(
NOTIFICATION_READY) - 每帧物理/处理循环(
NOTIFICATION_PHYSICS_PROCESS、NOTIFICATION_PROCESS) - 节点可见性、变换、资源热重载等状态变化时
- 编辑器保存、删除、崩溃等特殊事件
你无需手动调用 _notification,只需在类中实现它并根据 p_what 参数处理对应事件即可。引擎会在合适的时机自动调用。
Node::update_configuration_warnings
update_configuration_warnings() 函数的作用是更新节点的配置信息警告。它通常用于在 Godot 编辑器中,当节点的配置存在潜在问题或不推荐的设置时,触发重新检测和显示警告信息。该函数会调用底层的 Godot 引擎方法,刷新节点的警告状态,便于开发者及时发现和修正配置问题。