Back

Unity多平台开发注意事项

记录第一次部署博客以及使用主题遇到的障碍

最好使用LTS进行开发。

并非所有平台都完美支持所有Unity附带的功能,比如主机端不支持移动端的广告和分析功能。可能还违反服务协议。

选择渲染管线,有些平台不支持HDRP,最好使用URP,因为它支持所有平台。

对于多平台而言:平台特定的代码,质量设置,后期效果,着色器图形设置等,需要根据平台设置,或者使用SDK。 多查看文档,特别是SDK的。

如果需要iOS平台则需要Mac。

对于主机平台,需要向主机平台所属的厂商申请开发者套件。 了解你要发布的平台,你需要确定使用的硬件有什么限制。有些硬件的要求会严格(垃圾Switch机能?)硬件存储速度,Shader兼容等,CPU架构也有影响。手机则需要注重性能,发热等。 开发前就应该确认好。减少后期维护成本。

当新设备性价比差,价格贵,断货时,旧设备的用户会维持在较高水平。

抽象代码库!不同平台的对于某些功能的步骤或许相似,但是实践上会根据设备有较大的差异。有些平台或许还没有某个功能。

错误使用API是主机平台上最常见的认证失败原因

有些平台不支持Mono,主机平台要求使用IL2CPP,意味着只能用AOT,任何JIT反射,序列化都可能失效。

主机平台用ResourcesAPI会大幅增加游戏启动时间。还可能导致认证失败。 PlayerPrefs也是,最好自己写写入读取实现。

最好一开始就用Addressable,管理资产和内存。有些平台对DLC和补丁的大小也有要求。

第三方库和插件不一定支持所有平台,因为有些开发者访问不了受到保密协议保护的平台。遇到问题才重写代码会大大延迟你得开发。

就算短期内你可能只考虑开发PC和移动端,但是如果游戏火了,需要移植的时候,你还是需要处理多平台的问题。然后你就要大幅重写了。

阅读目标硬件文档! 这不仅影响性能优化,还影响你的认证要求。

Editor下跟实际硬件跑是两回事,测试你的功能在目标平台是否可行。 你用champion主机开发Editor下114514帧,结果构建发布只有14帧,你就寄。定期测试你的游戏(实机),将重点放在最低性能的机子上测。 比如Unity还支持iOS12,就意味着iPhone 5S仍受支持。所以要买点旧设备来测试。 从旧设备测,然后建立一个基准,你就知道性能是否慢慢变差了,做性能分析(实机),做性能分析Pro,让所有机子都60FPS跑,

不同平台对发布要求有不一样,你需要满足才能发布游戏,你需要开发前就处理。线程锁定,内存占用、随机崩溃死机啥的, 构建失败是最常见的,有些人都还没测过构建就发布了,当然过不了了。有些平台会有预认证功能会方便很多。

即使是VR,也有PCVR,独立VR,主机VR等目标平台,有各种性能要求,你要确保流程避免卡顿,玩家才能玩的舒服。 不同VR的输入和追踪实现可能大相径庭。

在开发初期就具备对目标平台的性能控制,能够让你在开发初期就对性能消耗有所控制,定期检查,初期就达成60FPS。

提出问题

1、对于主机平台,不支持JIT。如果游戏是拥有代码热更功能的项目,是不是意味着需要根据导出的平台去处理程序集?这些平台是不是一点反射都用不了?

答:我认为并不是一点反射都用不了,毕竟我现在负责的项目就有设计到Switch。项目中由于旧框架的设计目的,用了大量的反射去处理,没见到有这方面的影响。

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy
© Licensed Under CC BY-NC-SA 4.0