callable_mp
callable_mp 宏是 Godot C++ 扩展(GDExtension)中用于将类成员函数包装为可调用对象(Callable)的工具。它的作用是把某个对象的成员函数指针(方法)转换为 Godot 引擎可以识别和调用的 Callable,以便用于信号连接(如 connect)、回调等场景。
简单来说,callable_mp(obj, &Class::method) 生成一个可调用对象,代表 obj 的 method 方法,可以被 Godot 的信号系统调用。
例如:
_data->connect("signal_name", callable_mp(this, &MyClass::on_signal));这样信号触发时会自动调用 this->on_signal()。
总结:
callable_mp 用于将成员函数包装为 Godot 可调用对象,方便信号与成员方法的绑定。
GDCLASS
GDCLASS 是 Godot C++ 扩展(GDExtension)中用于注册类的宏。它用于将 C++ 类与 Godot 的对象系统绑定,使该类能被 Godot 引擎识别、实例化和反射。
宏参数为当前类和其父类,便于 Godot 进行类型识别和继承关系管理。
GDCLASS 宏的原理是通过 C++ 宏定义,将自定义类与 Godot 引擎的类型系统进行绑定。它会自动生成必要的类型信息、继承关系和反射接口,使 Godot 能识别、实例化和操作该 C++ 类。这样可以让 C++ 类像 Godot 原生类一样被脚本访问和编辑器识别。核心机制包括类型注册、方法绑定和属性暴露。