Oculus新优化工具可大大加速Quest Unity开发迭代
大大减少Unity开发的迭代时间
(映维网 2020年05月01日)对于开发者来说,迭代时间是一个主要的痛点。与PC相比,Quest的迭代时间显著更长。针对这个问题,Oculus最近进行了三项主要的优化工具,而这将能大大减少Unity开发的迭代时间。
1. OVR Build APK and Run
第一个工具是OVR-Build-APK and Run,它可以在构建APK时将构建和部署时间减少10%-50%。这个方法是在构建APK时利用gradle缓存。它的工作方式就像一个普通的Unity Build and Run,但它会缓存文件,这样就不需要再次完全重建它们。所述工具产生的最终APK将与Unity Build相同。OVR Build APK and Run位于Oculus菜单之下,如下图所示。
2. OVR Quick Scene Preview
第二个工具是Quick Scene Preview。它利用Unity的Asset Bundle系统来减少部署时间。所述工具将把你的项目和场景分成多个Asset Bundle,并上传到你的设备。然后,当你对场景进行更改时,所述工具将更新设备的Bundle。
2.1. 工作原理
迭代所花费的大部分时间来与构建、打包和部署APK有关。对于更为大型的项目来说,这可能十分耗时。OVR Quick Scene Preview的工作原理是首先构建一个剥离的APK,其包含项目代码和一个Asset Bundle加载程序脚本。然后,项目按资产类型和场景划分为各个Asset Bundle,并部署到设备的外部文件夹中。如果对某个asset进行更改,则只需构建所述asset对应的Bundle并将其部署到设备。这样可以节省大量时间。
2.2. 结果
Oculus与《Beat Saber》,《Dead and burbed II》,以及《SUPERHOT VR》团队合作测试了OVR Quick Scene Preview。团队同时将优化应用于Unity Asset Store的Viking Village示例。测试的所有项目在迭代时间方面都有显著的改进。
从上表可以看出,每个项目的迭代时间减少了80%以上。团队测量了在一个项目中进行两个asset更改和场景更改所需的时间,并通过OVR Quick Scene Preview看到迭代时间的显著减少。
3. Shader Stripping
默认情况下,在Oculus Quest运行的Unity应用程序只加载Tier2着色器;这意味着正在生成的任何Tier1或Tier3着色器都未被应用程序使用,不需要处理或编译。
3.1. 工作原理
IPreprocessShaders从2018.2版本开始添加到Unity中,它允许派生的编辑器类实现OnProcessShader。一旦实现,每当为着色器组启动生成时,系统都会调用OnProcessShader,从而允许通过自定义代码修改将要处理的着色器列表。在这种情况下,当启用“Skip Unneeded Shaders”时,如果选择Oculus Go或Oculus Quest作为“Target Oculus Platform”,则会从生成中移除所有Tier1和Tier3着色器。
3.2. 结果
即使已经构建并且是最新,在迭代asset更改时依然需要处理着色器。以下的计时是使用Viking Village示例时所测量,并用于已构建所有着色器build。
对于OVR Quick Scene Preview,迭代时间减少了31%。OVR Build APK and Run(Unity Build Player)的效果甚至更好,迭代时间减少了54%。
团队一直在努力改善Quest开发者的体验,所以他们当然对目前看到的结果感到兴奋。迭代时间是Oculus关注的一个领域,而他们相信这三个优化可以大大减少开发者的迭代时间。
4. 注意事项
OVR Quick Scene Preview用于场景和asset的快速迭代,不构建代表最终项目的APK。在开发项目时,OVR Quick Scene Preview对于减少迭代时间非常有用。当接近发行或者想要更接近最终项目时,请使用OVR Build APK and Run。OVR Build APK and Run和OVR Quick Scene Preview都是在开发模式下构建,不应用于创建最终可交付的Asset Bundle。
如果已经在项目中使用了Asset Bundle,OVRQuick Scene Preview不会影响Asset Bundle,OVR Quick Scene Preview会动态构建自己的Asset Bundle标记,不会影响项目的现有标记。