Skip to content

preStartGameWithDerectoryPath:options:completion:

预启动游戏(通过本地目录路径)

该方法允许开发者通过指定一个已解压的游戏资源目录路径开启预启动流程。它跳过了下载和解压阶段,直接从文件系统中映射资源,初始化运行时环境并后台执行游戏逻辑。


方法声明

objectivec
/**
 Pre-start game using a local directory path.
 @param directoryPath the directory path.
 @param options Configuration object containing metadata.
 @param completion Called when the pre-start operation finishes.
 @return An instance of id<SUDOPGameTask> to track the pre-start task.
 */
+ (id<SUDOPGameTask>)preStartGameWithDerectoryPath:(NSString *)directoryPath
                                           options:(SUDOPGamePackageOptions *)options
                                        completion:(nullable SUDOPGameOperationCompletion)completion;

注意:此处参数应为 SUDOPGamePackageOptions * 类型,游戏 ID 及版本信息。


参数说明

参数名类型必传描述
directoryPathNSString *目录绝对路径 directoryPath
optionsSUDOPGamePackageOptions *包含目录绝对路径 pathappGameID 以及版本号等配置。
completionSUDOPGameOperationCompletion异步预启动完成后的回调。成功时表示游戏逻辑已在后台运行就绪。

返回值

返回一个遵循 id<SUDOPGameTask> 协议的对象,用于监控后台运行状态或在必要时强制中止游戏逻辑。


运行行为

  1. 目录映射:SDK 直接关联 directoryPath 目录,检查入口配置文件。
  2. 环境预热:初始化渲染上下文和脚本虚拟机,加载目录内的基础资源。
  3. 后台运行:游戏脚本开始执行(如加载首屏 UI 布局、尝试建立 Socket 连接等),但此时不创建任何 UI 窗口,用户无感知。
  4. 状态同步:当游戏完成首屏逻辑初始化后,回调 completion

代码示例

objectivec
SUDOPGamePackageOptions *options = [[SUDOPGamePackageOptions alloc] init];
// 指向沙盒中已经解压好的游戏资源目录
NSString * directoryPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Game_001_v2/"];
options.appGameID = @"game_001";
options.version = @"2.0.0";

[SUDOP preStartGameWithDerectoryPath:directoryPath options:dirOptions completion:nil];

注意事项

  • 目录结构:请确保指定的路径是一个文件夹,且内部包含有效的游戏资源清单文件(如 manifest.json 或 SDK 指定的入口文件)。
  • 资源锁定:在预启动成功到正式 startGame 之前,请勿对该目录进行删除或改名操作,否则会导致游戏在启动时找不到资源。
  • 低功耗考虑:如果预启动后 1 分钟内用户未进行下一步操作,建议考虑取消任务以释放 CPU 和内存。