1.1 KiB
1.1 KiB
ScriptEngine::OnScriptComponentClassChanged
命名空间: XCEngine::Scripting
类型: method
头文件: XCEngine/Scripting/ScriptEngine.h
签名
void OnScriptComponentClassChanged(ScriptComponent* component);
作用
处理脚本组件在运行时中的类绑定变化。
当前实现流程
- 忽略空指针。
- 如果运行时未启动,直接返回。
- 若该组件当前已被跟踪,则先执行
StopTrackingScript(..., false):- 如有实例,会触发
OnDisable -> OnDestroy -> DestroyScriptInstance - 然后从跟踪表移除
- 如有实例,会触发
- 如果组件已经没有脚本类,流程结束。
- 否则按新类重新
TrackScriptComponent()。 - 若新状态满足
ShouldScriptRun(),立即EnsureScriptReady(..., true),从而创建新实例并触发Awake / OnEnable。
使用场景
ScriptComponent::SetScriptClass() 在已绑定类发生变化时会调用这里;ClearScriptClass() 也会走同一条停机路径。