Skip to content

preLoadGame:completion:

预加载游戏(通过 Game ID)

该方法用于在正式启动游戏前,提前执行环境初始化、资源解压及运行时(Runtime)加载等耗时操作。与 preDownload 不同,preLoad 侧重于内存准备运行环境就绪,旨在实现点击“开始游戏”时的秒开体验。


方法声明

objectivec
/**
 Pre-load game with game ID to prepare the runtime environment.
 @param gameID The unique identifier of the game.
 @param completion Called when the pre-load operation finishes.
 @return An instance of id<SUDOPGameTask> to track the pre-load task.
 */
+ (id<SUDOPGameTask>)preLoadGame:(NSString *)gameID
                      completion:(nullable SUDOPGameOperationCompletion)completion;

参数说明

参数名类型必传描述
gameIDNSString *游戏的唯一标识符。
completionSUDOPGameOperationCompletion异步预加载完成后的回调。成功时 gameHandleProvider 将提供初步生成的句柄信息。

返回值

返回一个遵循 id<SUDOPGameTask> 协议的对象。开发者可以通过该对象取消预加载或观察任务状态。


运行行为

  1. 资源确认:SDK 会检查该游戏的本地资源是否存在。如果资源缺失,内部可能会尝试自动触发下载或返回错误。
  2. 环境初始化:启动游戏所需的底层脚本引擎、图形上下文及基础配置文件将被加载至内存。
  3. 阶段性产物:此接口执行成功后,游戏尚未渲染至屏幕,但已处于“热启动”就绪状态。

代码示例

objc
[SUDOP preLoadGame:@"game_789" completion:nil];

注意事项

  • 内存开销:由于 preLoad 会将部分游戏资源常驻内存,请避免同时对多个不同游戏进行预加载,以免造成内存溢出。
  • 重复加载:如果游戏已经处于预加载完成状态,再次调用通常会立即触发成功回调。
  • 与启动关联:预加载成功后拿到的 gameHandle 通常是一个预备句柄,正式启动时建议继续保持该句柄的一致性。