Files
XCEngine/docs/api/XCEngine/Scripting/ScriptEngine/ClearScriptFieldOverrides.md

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);

作用

批量清理字段覆盖,并在可能时把活体托管字段恢复到类默认值。

当前实现流程

  1. 先构建 ScriptFieldModel,再收集类默认值表。
  2. 对每个请求校验字段名是否为空、字段是否存在于模型。
  3. 如果字段属于当前脚本类且活体实例存在:
    • 调用运行时 TrySetManagedFieldValue()
    • 把托管值重置为该字段的类默认值
  4. 如果本地存储中有同名覆盖项,则移除该存储项。
  5. 如果既没有活体值可重置,也没有存储覆盖可删除,结果为 NoValueToClear

返回值语义

  • 只有所有请求都成功清理时,返回 true
  • 任一请求出现 UnknownFieldEmptyFieldNameNoValueToClearApplyFailed,整体返回 false

相关文档