Files
XCEngine/docs/api/XCEngine/Scripting/ScriptEngine/OnScriptComponentClassChanged.md

1.1 KiB
Raw Blame History

ScriptEngine::OnScriptComponentClassChanged

命名空间: XCEngine::Scripting

类型: method

头文件: XCEngine/Scripting/ScriptEngine.h

签名

void OnScriptComponentClassChanged(ScriptComponent* component);

作用

处理脚本组件在运行时中的类绑定变化。

当前实现流程

  1. 忽略空指针。
  2. 如果运行时未启动,直接返回。
  3. 若该组件当前已被跟踪,则先执行 StopTrackingScript(..., false)
    • 如有实例,会触发 OnDisable -> OnDestroy -> DestroyScriptInstance
    • 然后从跟踪表移除
  4. 如果组件已经没有脚本类,流程结束。
  5. 否则按新类重新 TrackScriptComponent()
  6. 若新状态满足 ShouldScriptRun(),立即 EnsureScriptReady(..., true),从而创建新实例并触发 Awake / OnEnable

使用场景

ScriptComponent::SetScriptClass() 在已绑定类发生变化时会调用这里;ClearScriptClass() 也会走同一条停机路径。

相关文档