Unity打包出来为一个.exe文件 一个_Data文件 该文档把 这两个文件合并为一个.exe文件。生成桌面快捷方式
本文转载自,如果对我们团队有兴趣,除了文末的联系方式,也可以直接在知乎私信我。
新春红包项目,作为每年用户基数最大的支付宝活动之一,对整个项目组的技术都是一个很大的考验。而作为前端,我们的技术考验就是如何在保证稳定性的同时,为用户不断带来更好的创新体验。
而今年的新春红包项目相比以前,多了不少互动图形方面技术的运用,尤其是第一次对3D(WebGL)技术的引进。对于新春这个亿万量级的活动而言,这无疑是个巨大的挑战。但作为合格的工程师,效果和稳定性的平衡是我们的一贯的追求,经过了前期的积累,我们使用自研的Web3D游戏引擎以及特效编辑器,学习了许多在整个横向前端领域、做的相对最好的游戏领域的经验,最终达到了比较复杂3D场景下极低的异常率。
我们在此次新春活动的两个场景中都达到了极好的效果和稳定性的平衡:
技术的使命只有一个——为用户带去最好的体验。所以在项目最初肯定是先按照最高视觉效果来,针对新春中的两个使用到了3D的场景,我们首先进行了尝试,然后发现了问题。
在这种情况下,我发现虽然视觉效果达到了最优,但又出现了很多其他方面的问题,这使得最终的用户体验反而并不是很好:
而这某种程度上也符合我们一开始的预测,因为在移动端Web这种技术方案中,有些限制是不可避免的,而这些不安定要素会在亿万用户的量级被无限放大。在经过数据的详细的分析,我们找到了针对这两个场景的瓶颈共性。
为了找到瓶颈,让我们先来看一些数据。
首页总共五个场景模型:
可见统计下来,3D部分最终可以预计的传输大小为15M,峰值内存为65M,而稳定下来最好情况也有30M内存开销(这种策略下一般达不到最好,预计40M左右)。同时由于单场景5W三角形,对于中低端机的帧率也有较大挑战。
福满全球的模型资源开销基本可以忽略,但却有其他方面的问题:
可见,福满全球3D部分的主要开销是在峰值70M的纹理,以及高清屏大量透明物体的渲染开销。
通过瓶颈分析可知,问题主要集中在内存、传输体积和运行性能三个方面,而这三者又互相关联。那么自然得,我想到了从相对容易解决同时收益又大的方面入手。
首先就是削减模型大小了,注意这个大小指的是三角形/顶点数量。为什么这个如此重要呢?很简单——模型的大小可以直接影响到以上的三个要素:
所以削减模型大小显然是必须要做的,那么我们如何去做呢?一般来讲,这件事应该交由设计同学,让他们去降低模型精度来达到一个可以接受的程度,但是结果不容乐观,经过研究,我们最终采用了以下两个策略:
首先是寻求能否使用工具自己进行减模,我们自研的Web3D游戏引擎使用Unity进行场景编辑,而Unity作为身经百战、扩展性极强的一个游戏引擎,有没有这么一个工具来帮助我们呢?答案是有的——就提供了让我们在Unity中自由调整模型精度并序列化的能力。而也正是使用了它,在视觉效果损失较低的情况下,平均降低了所有场景30%的图元数据大小:
在工具减模以后,图元数据大小从12M降到了。
这种方式场景保存为Yaml
文件,有关格式的更多详细信息,请查看.
尽管我有时会手动合并场景,但这不是一个简单的操作,你必须非常小心(git automerge无法在99%的情况下正确合并它们).
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。