docs: update scripting API docs
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# ScriptEngine::ApplyScriptFieldWrites
|
||||
|
||||
**命名空间**: `XCEngine::Scripting`
|
||||
|
||||
**类型**: `method`
|
||||
|
||||
**头文件**: `XCEngine/Scripting/ScriptEngine.h`
|
||||
|
||||
## 签名
|
||||
|
||||
```cpp
|
||||
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` 都是逐项结果的权威来源。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [ClearScriptFieldOverrides](ClearScriptFieldOverrides.md)
|
||||
- [ScriptField](../ScriptField/ScriptField.md)
|
||||
Reference in New Issue
Block a user