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