36 lines
791 B
Markdown
36 lines
791 B
Markdown
|
|
# ScriptComponent::Deserialize
|
||
|
|
|
||
|
|
**命名空间**: `XCEngine::Scripting`
|
||
|
|
|
||
|
|
**类型**: `method`
|
||
|
|
|
||
|
|
**头文件**: `XCEngine/Scripting/ScriptComponent.h`
|
||
|
|
|
||
|
|
## 签名
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
void Deserialize(std::istream& is) override;
|
||
|
|
```
|
||
|
|
|
||
|
|
## 作用
|
||
|
|
|
||
|
|
从文本流恢复脚本组件状态。
|
||
|
|
|
||
|
|
## 当前实现行为
|
||
|
|
|
||
|
|
- 先把整个流读入字符串。
|
||
|
|
- 用 `;` 切分键值对。
|
||
|
|
- 识别 `scriptComponentUUID / assembly / namespace / class / fields`。
|
||
|
|
- `fields` 会先做 `UnescapeScriptString()`,再交给 `ScriptFieldStorage::DeserializeFromString()`。
|
||
|
|
|
||
|
|
## 容错行为
|
||
|
|
|
||
|
|
- 空 token 会跳过。
|
||
|
|
- 没有 `=` 的 token 会跳过。
|
||
|
|
- 未识别的键会被忽略。
|
||
|
|
|
||
|
|
## 相关文档
|
||
|
|
|
||
|
|
- [Serialize](Serialize.md)
|
||
|
|
- [ScriptFieldStorage::DeserializeFromString](../ScriptFieldStorage/DeserializeFromString.md)
|