1.3 KiB
1.3 KiB
ScriptEngine::ClearScriptFieldOverrides
命名空间: XCEngine::Scripting
类型: method
头文件: XCEngine/Scripting/ScriptEngine.h
签名
bool ClearScriptFieldOverrides(
ScriptComponent* component,
const std::vector<ScriptFieldClearRequest>& requests,
std::vector<ScriptFieldClearResult>& outResults);
作用
批量清理字段覆盖,并在可能时把活体托管字段恢复到类默认值。
当前实现流程
- 先构建
ScriptFieldModel,再收集类默认值表。 - 对每个请求校验字段名是否为空、字段是否存在于模型。
- 如果字段属于当前脚本类且活体实例存在:
- 调用运行时
TrySetManagedFieldValue() - 把托管值重置为该字段的类默认值
- 调用运行时
- 如果本地存储中有同名覆盖项,则移除该存储项。
- 如果既没有活体值可重置,也没有存储覆盖可删除,结果为
NoValueToClear。
返回值语义
- 只有所有请求都成功清理时,返回
true - 任一请求出现
UnknownField、EmptyFieldName、NoValueToClear或ApplyFailed,整体返回false