createRuntime:completion:
创建运行时实例
该方法用于初始化游戏运行所需的底层环境(Runtime)。在整个应用进程生命周期内,通常只需要创建一个运行时实例。该实例负责管理游戏执行时的核心资源和调度逻辑。
方法声明
objectivec
/**
Create a runtime instance (single process has only one).
@param options Optional configuration parameters for the runtime.
@param completion Completion callback.
*/
+ (void)createRuntime:(NSDictionary *_Nullable)options
completion:(nullable void(^)(id<SUDRT> _Nullable runtime, NSError *_Nullable error))completion;参数说明
| 参数名 | 类型 | 必传 | 描述 |
|---|---|---|---|
| options | NSDictionary * | 否 | 运行时的自定义配置参数(如渲染模式、资源路径自定义等)。传 nil 则使用默认配置。 |
| completion | Block | 否 | 异步创建完成后的回调。成功时返回遵循 SUDRT 协议的实例;失败时返回 error。 |
运行行为
- 单例性质:虽然方法名为
create,但在单进程架构下通常只维护一个 Runtime 实例。 - 异步准备:由于运行时环境可能涉及底层库加载或 GPU 环境初始化,因此通过
completion异步告知结果。 - 依赖关系:必须在
initializeWithConfiguration:completion:成功之后调用。
代码示例
objectivec
NSDictionary *options = @{ @"render_mode": @"metal" };
[SUDOP createRuntime:options completion:^(id<SUDRT> _Nullable runtime, NSError * _Nullable error) {
if (error) {
NSLog(@"Runtime 创建失败: %@", error);
return;
}
NSLog(@"Runtime 已就绪: %@", runtime);
// 后续可进行预加载或启动游戏操作
}];注意事项
- 生命周期:Runtime 实例通常由 SDK 内部托管,开发者获取到的
id<SUDRT>主要用于确认环境就绪状态或执行底层调试。 - 重复创建:如果 Runtime 已经存在,再次调用此方法通常会直接返回已有的实例或报错,具体取决于 SDK 的内部策略。
- 线程约束:建议在主线程发起创建请求,回调通常也在主线程执行。