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;参数说明
| 参数名 | 类型 | 必传 | 描述 |
|---|---|---|---|
| gameID | NSString * | 是 | 游戏的唯一标识符。 |
| completion | SUDOPGameOperationCompletion | 否 | 异步预加载完成后的回调。成功时 gameHandleProvider 将提供初步生成的句柄信息。 |
返回值
返回一个遵循 id<SUDOPGameTask> 协议的对象。开发者可以通过该对象取消预加载或观察任务状态。
运行行为
- 资源确认:SDK 会检查该游戏的本地资源是否存在。如果资源缺失,内部可能会尝试自动触发下载或返回错误。
- 环境初始化:启动游戏所需的底层脚本引擎、图形上下文及基础配置文件将被加载至内存。
- 阶段性产物:此接口执行成功后,游戏尚未渲染至屏幕,但已处于“热启动”就绪状态。
代码示例
objc
[SUDOP preLoadGame:@"game_789" completion:nil];注意事项
- 内存开销:由于
preLoad会将部分游戏资源常驻内存,请避免同时对多个不同游戏进行预加载,以免造成内存溢出。 - 重复加载:如果游戏已经处于预加载完成状态,再次调用通常会立即触发成功回调。
- 与启动关联:预加载成功后拿到的
gameHandle通常是一个预备句柄,正式启动时建议继续保持该句柄的一致性。