Files
XCEngine/docs/api/XCEngine/Scripting/ScriptComponent/SetScriptClass.md

1.5 KiB

ScriptComponent::SetScriptClass

命名空间: XCEngine::Scripting

类型: method

头文件: XCEngine/Scripting/ScriptComponent.h

签名

void SetScriptClass(
    const std::string& namespaceName,
    const std::string& className);

void SetScriptClass(
    const std::string& assemblyName,
    const std::string& namespaceName,
    const std::string& className);

作用

设置当前脚本组件绑定的托管类信息。

当前实现行为

  • 两个重载都会先记录“之前是否已经有脚本类”。
  • 然后覆盖程序集名、命名空间和类名。
  • 如果“之前没有脚本类,设置后有脚本类”,会调用 ScriptEngine::Get().OnScriptComponentEnabled(this)
  • 如果之前已经绑定脚本类,并且程序集名 / 命名空间 / 类名发生变化,会调用 ScriptEngine::Get().OnScriptComponentClassChanged(this)

设计含义

  • 当前实现把“首次绑定脚本类”视作启用事件。
  • 已绑定类发生变化时,ScriptEngine 会停掉旧实例并按新类重新跟踪,这已经是当前实现的一部分。
  • SetAssemblyName() / SetNamespaceName() / SetClassName() 这些原始 setter 不会触发同样的流程;需要真正重绑定时应走 SetScriptClass()

相关文档