XR2 Pancake VR下的Unity Launcher优化

概要

表现优化

纹理优化

在游戏中,纹理是占用大量内存和显存的重要资源。为了优化性能,我们可以考虑以下措施:

压缩纹理:使用适当的纹理压缩格式,如ETC、ASTC或BC等,以减少纹理占用的内存和显存。
减小纹理尺寸:根据实际需求,将纹理的分辨率调整到合适的大小,避免使用过大的纹理。
使用纹理压缩工具:借助工具对纹理进行压缩,以减小纹理文件的大小。

程序圆角

在UI设计中,常常需要使用圆角效果来增加界面的美观度。为了提高性能,我们可以考虑以下改进:

从Vertex FilletImage到Alpha FilletImage的升级:使用Alpha FilletImage可以在渲染时更高效地实现圆角效果,减少额外的顶点计算开销。

多语言跑马效果

多语言跑马效果是指在游戏中显示多种语言的滚动文字效果。为了优化表现,我们可以采取以下措施:

动态Drawcall分配:通过动态分配Drawcall,只在需要更新的时候才重新绘制跑马文字,减少不必要的绘制开销。

UI亮边优化

UI亮边效果可以增加UI元素的可视性和立体感。为了优化性能,我们可以考虑以下改进:

使用Shader进行亮边效果:通过编写自定义Shader,在渲染过程中实现亮边效果,减少额外的渲染开销。

瀑布流效果(无限滚动ScrollRect)

瀑布流效果是指在有限的空间内展示大量内容,并支持无限滚动的功能。为了提高性能,我们可以采取以下措施:

数据预处理和封面延迟加载队列:在滚动过程中,提前加载下一页的数据,并延迟加载封面图片,减少网络交互的频率,提高滚动的流畅性。
Text->TMP
Text组件是Unity中常用的UI文本显示组件,但在性能方面存在一些问题。为了优化性能,我们可以考虑以下改进:

使用TextMeshPro(TMP):TextMeshPro是Unity的一个高性能文本组件,相比于Text组件,它具有更好的性能和功能,可以提供更好的文本显示效果。

性能优化

程序圆角从Vertex FilletImage到Alpha FilletImage升级
程序圆角效果的优化已在表现优化部分进行了说明。

跑马组件的动态Drawcall分配
跑马组件的动态Drawcall分配可以通过以下方式进行优化:

使用对象池:通过对象池管理跑马组件的创建和回收,避免频繁的创建和销毁操作,减少性能开销。
批量更新:将多个跑马组件的更新操作合并为一个批量更新,减少Drawcall的数量。
瀑布流之数据预处理和封面延迟加载队列降低网络交互
瀑布流效果的数据预处理和封面延迟加载队列已在表现优化部分进行了说明。

TMP多语言问题及备用字库导致的性能问题分析及优化
在使用TextMeshPro组件进行多语言显示时,可能会遇到性能问题。为了优化性能,我们可以考虑以下改进:

字体子集化:根据实际使用的字符集,将字体进行子集化处理,减少字体文件的大小和加载时间。
字体缓存:对常用的字体进行缓存,避免重复加载和创建字体资源。
CurvedUI性能问题及JobSystem多线程加持
CurvedUI是一个用于创建弯曲UI效果的插件,但在性能方面可能存在一些问题。为了优化性能,我们可以考虑以下改进:

使用JobSystem进行多线程处理:将CurvedUI的计算任务分配给多个线程进行并行处理,提高计算效率和渲染性能。
减少顶点数量:通过减少CurvedUI的顶点数量,降低渲染开销。
以上是关于Unity优化的需求文档,包括表现优化和性能优化的内容。通过这些优化措施,我们可以提高游戏的性能和用户体验。

基础性能优化:
纹理处理
在这里插入图片描述

降低最大尺寸
降低最大大小,这个过程是无损的,可以快速减少纹理内存。不需要读写操作的纹理,取消勾选Read/Write选项,UI纹理避免使用MipMaps
使用压缩格式。
将原先ETC压缩格式转变为ASTC;ASTC由于出色的压缩率,更接近原图的画质,适应更多平台而成为首选的纹理压缩格式。因此,只要可能,尽量使用ASTC。除非部分古老的设备,无法支持ASTC,才考虑使用ETC、PVRTC等纹理压缩格式。(https://www.cnblogs.com/timlly/p/15546797.html#12414-adaptive-scalable-texture-compression)
尽量使用Mipmaps。
纹理Mipmaps提供提升内存占用来达到降低采样纹理时的数据量,从而降低带宽,提升缓冲命中率,同时还能提升画质效果。鱼和熊掌皆可得,何乐而不为?具体地说表现在以下方面:
1、极大地提高纹理缓存效率来提高图形渲染性能,特别是在强烈缩小的情况下,纹理数据更有可能装在Tile Memory。
2、通过减少不使用mipmapping的纹理采样不足而引起的走样来提高图像质量。但是,使用Mipmaps会提升33%的内存占用。
以下情况需要避免使用:
1、过滤不能被合理地应用,例如对于包含非图像数据的纹理(索引或深度纹理)。
2、永远不会缩小的纹理,比如UI元素,其中texel总是一对一地映射到像素。
尺寸保持2的N次方。
尽管目前的图形API都已经支持非2N的次方尺寸(NPOT)的纹理,但有充分的理由建议保持纹理尺寸在2的N次方(POT):
在大多数情况下,POT纹理应该比NPOT纹理更受青睐,因为这为硬件和驱动程序的优化工作提供了最好的机会。(例如纹理压缩、Mimaps生成、缓存行对齐等)
3、保证长和宽都是32像素倍数的纹理,以便纹理上传可以让硬件优化。
最小化纹理尺寸。
最小化纹理位深。
最小化纹理组件数量。
利用纹理通道打包多张贴图。例如将材质的粗糙度、高光度、金属度、AO等贴图打包到同一张纹理的RGBA通道上。

Launcher中的其他性能优化
1、程序圆角:
代码切圆角
重写Graphic类的OnPopulateMesh(VertexHelper vh)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值