新增脚本参数系统:声明式参数 + Inspector 自动控件 + 场景序列化
DeclareParams/ParamBuilder 声明字段,运行时反射读写; Inspector 按类型生成控件,SceneSerializer 直通存取; 动画系统接入参数化裁剪;新增 OrbitMove 示例脚本
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
//
|
||||
// Spinner.cpp:C++ 原生脚本示范——Y 轴匀速自转。
|
||||
//
|
||||
// 写脚本三步:
|
||||
// 写脚本四步:
|
||||
// 1. 新建 .cpp 放本目录(CMake 自动进构建)
|
||||
// 2. 继承 ScriptBehavior,覆写 Name/OnCreate/OnUpdate/OnDestroy
|
||||
// 3. 文件级 ENGINE_REGISTER_SCRIPT(类名) 自注册——Inspector 下拉
|
||||
// 3. DeclareParams 声明可调参数(Inspector 自动出控件 + 随场景
|
||||
// 序列化 + 实例化灌值)
|
||||
// 4. 文件级 ENGINE_REGISTER_SCRIPT(类名) 自注册——Inspector 下拉
|
||||
// 与场景序列化按该名解析
|
||||
//
|
||||
|
||||
@@ -18,6 +20,10 @@ namespace {
|
||||
public:
|
||||
const char* Name() const override { return "Spinner"; }
|
||||
|
||||
void DeclareParams(Engine::Scripting::ParamBuilder& pb) override {
|
||||
pb.Field("Speed", &m_Speed, 90.0f); // 度/秒
|
||||
}
|
||||
|
||||
void OnCreate() override {
|
||||
// 实体与组件已就位;需要别的组件时用 Get<T>()(不存在会炸)
|
||||
}
|
||||
@@ -31,7 +37,7 @@ namespace {
|
||||
}
|
||||
|
||||
private:
|
||||
float m_Speed = 90.0f; // 度/秒
|
||||
float m_Speed = 90.0f; // 度/秒(声明默认;实例化期被存档值覆盖)
|
||||
};
|
||||
|
||||
ENGINE_REGISTER_SCRIPT(Spinner);
|
||||
|
||||
Reference in New Issue
Block a user