# ScriptEngine::ApplyScriptFieldWrites **命名空间**: `XCEngine::Scripting` **类型**: `method` **头文件**: `XCEngine/Scripting/ScriptEngine.h` ## 签名 ```cpp bool ApplyScriptFieldWrites( ScriptComponent* component, const std::vector& requests, std::vector& outResults); ``` ## 作用 批量写脚本字段,并为每个请求返回独立状态。 ## 当前实现流程 1. 先调用 `TryGetScriptFieldModel()` 建立字段模型。 2. 针对每个请求逐项校验: - 字段名不能为空 - 值必须和声明类型兼容 - 字段必须存在于当前模型 - 如果类元数据可用,不能给 `StoredOnly` 遗留字段写值 - 类型必须与模型字段类型一致 3. 对已声明字段走 `TrySetScriptFieldValue()`,保证活体实例和本地存储同步更新。 4. 对“类元数据缺失但本地仍有字段”的场景,允许直接写 `ScriptFieldStorage`。 5. 把每条结果写入 `outResults`。 ## 返回值语义 - 只有所有请求状态都是 `Applied` 时,返回 `true` - 只要出现一项失败或诊断状态,就返回 `false` 但无论整体布尔值如何,`outResults` 都是逐项结果的权威来源。 ## 相关文档 - [ClearScriptFieldOverrides](ClearScriptFieldOverrides.md) - [ScriptField](../ScriptField/ScriptField.md)