docs(scripting): add baseline api reference and guide
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# ScriptEngine::TrySetScriptFieldValue
|
||||
|
||||
**命名空间**: `XCEngine::Scripting`
|
||||
|
||||
**类型**: `method`
|
||||
|
||||
**头文件**: `XCEngine/Scripting/ScriptEngine.h`
|
||||
|
||||
## 签名
|
||||
|
||||
```cpp
|
||||
bool TrySetScriptFieldValue(
|
||||
ScriptComponent* component,
|
||||
const std::string& fieldName,
|
||||
ScriptFieldType type,
|
||||
const ScriptFieldValue& value);
|
||||
```
|
||||
|
||||
## 当前实现流程
|
||||
|
||||
1. 先拒绝空组件、空字段名或类型/值不兼容的请求。
|
||||
2. 如果组件已绑定脚本类,并且运行时能返回类字段元数据:
|
||||
- 字段必须存在。
|
||||
- 字段类型必须完全匹配。
|
||||
3. 如果当前运行时正在运行,且组件已有实例:
|
||||
- 先尝试写托管字段。
|
||||
- 托管写失败则整体失败。
|
||||
4. 托管写通过后,再写入 `ScriptFieldStorage`。
|
||||
|
||||
## 设计意义
|
||||
|
||||
当前实现坚持“先过元数据校验,再写活实例,最后更新本地缓存”这条顺序。这样可以避免:
|
||||
|
||||
- 向不存在的托管字段写脏数据。
|
||||
- 运行时值与本地缓存不一致。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [TryGetScriptFieldValue](TryGetScriptFieldValue.md)
|
||||
- [TryGetScriptFieldModel](TryGetScriptFieldModel.md)
|
||||
Reference in New Issue
Block a user