Unity设备分级策略
前言
之前自己做的设备分级策略,在此做一个简单的记录和思路分享。希望能给大家带来帮助。
分级策略
- 根据拟定的评分标准,预生成部分已知机型的分级信息,且保存在包内;
- 如果设备没有被评级过,则优先从预生成分级信息里找自己的机型;
- 如果没有预生成信息,则通过设备各个硬件数据权重来进行评分;
- 如果获取不到需要的硬件数据,则进行跑分;
- 根据最终的分数来判断设备档位,且进行对应的效果降级。
跑分逻辑
跑分脚本,在短时间内(10帧下,每帧渲染后的10ms内)尽可能多的绘制模型。通过绘制的个数来打一个分数,从而判断机型等级。
需要注意的是:跑分脚本必须要在闲时运行,且限制时间、CPU占用率,不能影响到正常的游戏体验。
有人可能会问,为什么是绘制多少个模型,而不是固定模型数量去判断时间了?
原因是出于以下几点考虑:
- 考虑到如果出现跑分流程,那么就是在启动游戏的阶段,把时间作为可控因素对玩家的风险更小;
- 限定时间不限定个数可以更好地体现出手机的能力,如果把每一帧看作一次机会的话,相当于一台手机有很多次机会进行测试,取最终的个数总和作为分数,更加具有说服力;
- 如果拿时间做评定标准一是跨度太小不好评定,二是不稳定因素较高,可能不准确。
分级标准
如何评定的分级标准呢?
一是从经验方面,二是从多台测试机数据反馈。
评分标准并不是定死了就不改,而是需要根据线上玩家实际情况不断迭代,最好能做到自动动态迭代。不同类型的游戏,评分标准也可能有不同。文章来源:https://www.toymoban.com/news/detail-834060.html
评分等级及对应效果降级策略
分数 | 0-400 | 400-700 | 700-1000 |
等级 | 低端机 | 中端机 | 高端机 |
分辨率 | 50% | 75% | 100% |
DPI | 50% | 75% | 100% |
最大帧率 | 30FPS | 45FPS | 60FPS |
是否使用低清资源 | 是 | 是 | 否 |
Android设备分数标准
内存大小(权重0.7) | 1024-2048 | 2048-3072 | 3072-4096 | 4096-6144 | 6144-8192 | 8192+ |
分数 | 100 | 300 | 500 | 700 | 800 | 1000 |
CPU核数(权重0.1) | 2-4 | 4-6 | 6-8 | 8-10 | 10+ |
分数 | 100 | 300 | 600 | 800 | 1000 |
CPU主频(权重0.1) | 1000-1500 | 1500-1800 | 1800-2000 | 2000-2500 | 2500+ |
分数 | 200 | 300 | 500 | 800 | 1000 |
显存大小(权重0.1) | 512-1024 | 1024-2048 | 2048-3072 | 3072-4096 | 4096+ |
分数 | 100 | 300 | 600 | 800 | 1000 |
iOS设备分数标准
苹果设备号文章来源地址https://www.toymoban.com/news/detail-834060.html
内存大小(权重1.0) | iPhone7.xxx | iPhone8.xxx | iPhone9.xxx |
分数 | 300 | 600 | 800 |
内存大小(权重1.0) | iPad5.xxx | iPad6.xxx | iPad7.xxx |
分数 | 300 | 600 | 800 |
跑分标准
模型绘制个数(权重1.0) | 0-4000 | 4000-10000 | 10000+ |
分数 | 300 | 600 | 800 |
未来可优化空间
- 玩家可以主动切换高中低等级;
- 除了图集之外的资源也使用低清包;
- 跑分功能及标准更加细化;
- 设备评级标准更加合理,动态适配调整;
- 打包时间尽可能的缩短;
- 自动动态最大帧率调整(参考阴阳师);
- 资源卸载逻辑分级。
到了这里,关于Unity设备分级策略的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!