docs: update scripting API docs
This commit is contained in:
@@ -27,13 +27,17 @@ void SetScriptClass(
|
||||
|
||||
- 两个重载都会先记录“之前是否已经有脚本类”。
|
||||
- 然后覆盖程序集名、命名空间和类名。
|
||||
- 只有在“之前没有脚本类,设置后有脚本类”时,才会主动调用 `ScriptEngine::Get().OnScriptComponentEnabled(this)`。
|
||||
- 如果“之前没有脚本类,设置后有脚本类”,会调用 `ScriptEngine::Get().OnScriptComponentEnabled(this)`。
|
||||
- 如果之前已经绑定脚本类,并且程序集名 / 命名空间 / 类名发生变化,会调用 `ScriptEngine::Get().OnScriptComponentClassChanged(this)`。
|
||||
|
||||
## 设计含义
|
||||
|
||||
当前实现把“首次绑定脚本类”视作一个启用事件,但并没有把“换到另一个脚本类”也当成完整重建流程。这是一个当前版本的真实边界,用户不应该误以为修改类名会自动完成热切换。
|
||||
- 当前实现把“首次绑定脚本类”视作启用事件。
|
||||
- 已绑定类发生变化时,`ScriptEngine` 会停掉旧实例并按新类重新跟踪,这已经是当前实现的一部分。
|
||||
- 但 `SetAssemblyName()` / `SetNamespaceName()` / `SetClassName()` 这些原始 setter 不会触发同样的流程;需要真正重绑定时应走 `SetScriptClass()`。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [ClearScriptClass](ClearScriptClass.md)
|
||||
- [HasScriptClass](HasScriptClass.md)
|
||||
- [OnEnable](OnEnable.md)
|
||||
- [ScriptEngine::OnScriptComponentClassChanged](../ScriptEngine/OnScriptComponentClassChanged.md)
|
||||
|
||||
Reference in New Issue
Block a user