getRuntimeFeatures
获取运行时功能列表
getRuntimeFeatures 是 SUDRT 协议中的一个类方法。它用于返回当前游戏引擎(Runtime)所支持的功能特性集合。由于不同版本的 SDK 或不同内核的引擎(如 2D vs 3D)支持的能力可能存在差异,开发者可以通过此方法在运行时动态判断当前环境是否具备某些高级能力。
方法声明
objectivec
/**
* 返回当前 Runtime 支持的功能或特性列表。
* @return 包含功能标识符字符串的数组,如果不支持任何特殊功能则返回 nil。
*/
+ (nullable NSArray<NSString *> *)getRuntimeFeatures;运行行为
- 功能探测:返回一组预定义的常量字符串(如
"feature.video_player","feature.webgl2","feature.file_system"等)。 - 版本解耦:允许宿主 App 在不升级 SDK 的情况下,通过判断特性列表来决定是否开启某些业务逻辑。
- 静态查询:作为类方法,可以在引擎初始化之前的任何时间点调用,用于前置环境检查。
代码示例
在调用特定 API 前,先检查引擎是否支持该特性:
objectivec
// 1. 获取支持的功能列表
NSArray<NSString *> *features = [SudRuntimeImpl getRuntimeFeatures];
// 2. 检查是否支持高性能渲染模式
if ([features containsObject:@"feature.high_performance_canvas"]) {
NSLog(@"[SUD] 引擎支持高性能画布,开启 120fps 模式");
[self enableUltraMode];
} else {
NSLog(@"[SUD] 当前引擎不支持该特性,降级处理");
}注意事项
- 空值处理:如果返回
nil或空数组,通常表示当前为基础版本引擎,仅支持核心的小游戏运行能力。 - 非业务开关:该列表反映的是引擎底层的技术能力,而不是 App 层的业务开关(业务开关应通过
setGameStartOptions:options:注入)。 - 向前兼容:开发者在编写代码时,对于较新的 Feature 务必做
containsObject:判断,以防止在旧版本 SDK 上运行导致逻辑异常。