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

1.3 KiB

ScriptEngine::ApplyScriptFieldWrites

命名空间: XCEngine::Scripting

类型: method

头文件: XCEngine/Scripting/ScriptEngine.h

签名

bool ApplyScriptFieldWrites(
    ScriptComponent* component,
    const std::vector<ScriptFieldWriteRequest>& requests,
    std::vector<ScriptFieldWriteResult>& outResults);

作用

批量写脚本字段,并为每个请求返回独立状态。

当前实现流程

  1. 先调用 TryGetScriptFieldModel() 建立字段模型。
  2. 针对每个请求逐项校验:
    • 字段名不能为空
    • 值必须和声明类型兼容
    • 字段必须存在于当前模型
    • 如果类元数据可用,不能给 StoredOnly 遗留字段写值
    • 类型必须与模型字段类型一致
  3. 对已声明字段走 TrySetScriptFieldValue(),保证活体实例和本地存储同步更新。
  4. 对“类元数据缺失但本地仍有字段”的场景,允许直接写 ScriptFieldStorage
  5. 把每条结果写入 outResults

返回值语义

  • 只有所有请求状态都是 Applied 时,返回 true
  • 只要出现一项失败或诊断状态,就返回 false

但无论整体布尔值如何,outResults 都是逐项结果的权威来源。

相关文档