38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
# IScriptRuntime::TryGetAvailableScriptClasses
|
|
|
|
**命名空间**: `XCEngine::Scripting`
|
|
|
|
**类型**: `method`
|
|
|
|
**头文件**: `XCEngine/Scripting/IScriptRuntime.h`
|
|
|
|
## 签名
|
|
|
|
```cpp
|
|
virtual bool TryGetAvailableScriptClasses(
|
|
std::vector<ScriptClassDescriptor>& outClasses) const = 0;
|
|
```
|
|
|
|
## 作用
|
|
|
|
返回当前后端已经发现、可以绑定给 `ScriptComponent` 的脚本类描述列表。
|
|
|
|
## 返回值语义
|
|
|
|
- 返回 `true`:后端支持类发现,且当前返回的数据可用。
|
|
- 返回 `false`:后端未初始化、当前没有这项能力,或发现流程失败。
|
|
|
|
## 契约要求
|
|
|
|
- 实现应在调用前清空 `outClasses`。
|
|
- 返回的应该是“可绑定类”,而不是后端里任意可见类型;例如抽象类、工具类或不满足脚本基类约束的类型,通常不应暴露给调用方。
|
|
- 描述里应尽量带上稳定的 `assemblyName`,因为上层会基于它做过滤和重绑定。
|
|
- 接口本身不强制排序,但提供稳定顺序是推荐行为;`ScriptEngine::TryGetAvailableScriptClasses()` 会在此基础上继续过滤空类名并排序。
|
|
|
|
## 相关文档
|
|
|
|
- [IScriptRuntime](IScriptRuntime.md)
|
|
- [ScriptEngine::TryGetAvailableScriptClasses](../ScriptEngine/TryGetAvailableScriptClasses.md)
|
|
- [NullScriptRuntime::TryGetAvailableScriptClasses](../NullScriptRuntime/TryGetAvailableScriptClasses.md)
|
|
- [MonoScriptRuntime::TryGetAvailableScriptClasses](../Mono/MonoScriptRuntime/TryGetAvailableScriptClasses.md)
|