Skip to content

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;

参数说明

参数名类型必传描述
optionsNSDictionary *运行时的自定义配置参数(如渲染模式、资源路径自定义等)。传 nil 则使用默认配置。
completionBlock异步创建完成后的回调。成功时返回遵循 SUDRT 协议的实例;失败时返回 error

运行行为

  1. 单例性质:虽然方法名为 create,但在单进程架构下通常只维护一个 Runtime 实例。
  2. 异步准备:由于运行时环境可能涉及底层库加载或 GPU 环境初始化,因此通过 completion 异步告知结果。
  3. 依赖关系:必须在 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 的内部策略。
  • 线程约束:建议在主线程发起创建请求,回调通常也在主线程执行。