[Unity优化] unity性能优化

[Unity优化] unity性能优化,第1张

Q:我们图标现在是制作成图集后再使用的,但是当图标数量很多的时候,图集的膨胀就很厉害了。对此我们的做法有两种:1)拆为多个图集;

2)不再使用图集转而使用UITexture来使用。请问UWA有什么建议呢?

使用图集的主要缺点在于内存较大,且管理不便;而使用UITexture的主要缺点在于产生的Draw Call较多(每个UITexture都会产生一个Draw Call且无法拼合),影响运行效率。因此,如果同时出现在屏幕上的图标不多,即UITexture所产生的Draw Call数量不大时,可以考虑直接使用;但如果图标数量较多,且目前项目的Draw Call已经较高,那么我们依然建议继续使用图集,按照一定的规则拆分为若干组,从而将 Draw Call控制在较低的范围内。

Q:粒子系统的Prewarm主要用来做什么的,这个怎么优化呢?

ParticleSystemPrewarm的出现表示当前加载、激活或者首次渲染的粒子系统开启了"Prewarm"选项,而开启该选项的粒子系统在加载后会立即执行一次完整的模拟。以“火焰”为例,Prewarm开启时,加载后第一帧即能看到“大火”,而不是从“火苗”开始逐渐变大。但Prewarm的 *** 作通常都有一定的耗时,建议在可以不用的情况下,将其关闭。

Q:我们为了降低像素填充就限制了最大分辨率,但是发现限制之后NGUI的字体显示就变得模糊了。是否可以避免NGUI字体模糊呢?下图是我们在小米5上测试得到的结果:低分辨率下文字就模糊了。

从开发团队提供的上看,小米5上的低分辨率用的是983x552,相当于将原来的画面的四分之一分辨率。此时,降低分辨率的做法可以理解为把983x552的纹理拉伸后贴到1920x1080的屏幕上,而“贴”的过程还会涉及到重新采样,因此造成模糊是正常的,而不仅仅是文本。只是文本的边缘对比度较高,拉伸后变糊的现象会更加明显。

我们建议尝试通过RenderTexture来控制不同内容的分辨率,对于UI部分尽量不要把分辨率降得太低。

Q:打包AssetBundle的时候,我发现切换场景时,即使打同一个场景的AssetBundle,它们的Hash值都是不一样的,可能是什么原因造成的呢?

在不同的场景下打包同一个资源或场景时,如果出现AssetBundle的差异,目前很可能是Shader Stripping造成的,其原理可见文档: >

这个首先需要看一下你的UI的那张图是不是真的不清晰分辨率是不是真的不够,如果源图很清晰那就看看这张图导入的时候的压缩比,适当调高可以提高清晰度。此外,似乎要看看用在UI什么地方了,或许需要具体看一看。

都是个人见解,如果不正确希望得到指正,多谢。

动画的制作重点在美工方面,做完导入后编程方面对它的控制很少,改变播放速度,和另一贴图或纯色混合(比如实现渐隐效果)大概就这些。
骨骼动画导入后,在编程上可以将多个动画片段进行混合或过渡,如
animationBlend("FallDown", 0, 02);
animationBlend("Jump", 0, 02);
就是将角色的下落和跳起动画混合,是它看上去既有跳起又有下落的姿态。

单纯的骨骼的动画在unity3D的场景中是什么也没有,但你在hierarchy中能看到骨骼的层次结构(基于fk的正向动力学图)添加模型是没用的

问题可能出在你1仅仅输出骨骼和动画,但没输出蒙皮2unity3D只支持fbx2009版本插件,选的却不是

建议在输出前先塌陷蒙了皮的模型,将关键贞动画输出WHY本质上unity3D只支持关键侦动画,只不过他同时保留了骨骼3DSMAX的BIPE是包含了FK和IK的,在unity3D里统统变成了FK

"纹理放到同一路径~用的时候会自动生成材质"//不是这样的,无论怎样你都的重新赋予材质,原因是unity3D的shader跟其他3D软件的shader不兼容(如果兼容那才是怪事)

"动画就要自己设定播放帧数"//unity3D不仅能设定播放帧数,而且能全方位的修改动画我们的动画在别的软件里已经作好了,不一定还要"自己设定播放帧数",多此一举


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10540587.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存