1.5 KiB
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()。