Unity - 2D游戏中掉帧严重问题解决

目的:解决unity2D中游戏掉帧严重问题


这个问题的出现一开始我并不知道什么原因,于是在unity-profiler中寻找答案。

一开始我发现这个问题




然后我在网站上搜索”Animator.Update掉帧“现象

找到了:http://answers.unity3d.com/questions/689612/

答案却不能解决我的问题。

后来开始自己建场景测试,经过多番测试后发现:游戏掉帧是因为要加载物体的缘故(其实看到loading ReadObject早该想到的),因此,只要在游戏的过程中不加载预置物体就行了。于是就有了下面的解决方案。

解决方案:

一:首要的当然是利用对象池技术来管理你所有的动态物体。

二:在游戏开始之前需要预先生成所有需要最大可能数量的2D物体(包括动态加载的UI)。这样做就会有另外一个问题,既然需要最大可能数量,那么会有可能加载的东西过多使游戏在设备上内存爆掉以致游戏无法正常运行。所以这个操作伴随着另一个细节操作

1:游戏中如果存在可以复用的共同体尽量采取复用(其实这样也方便管理)。

2游戏中的大部分资源浪费在UI Animation Dirty Scence Objects,目前只能尽量避免使用2D的Animator,效率实在不如人意(这个部分原因不是很清楚,欢迎大神评论指点说明)https://forum.unity3d.com/threads/ui-animation-performance-dirty-scene-objects.320220/

三:(建议)如果可以,请在做2D游戏的时候统一使用2D Sprite,不要使用GUI,这样会好很多。

至此:游戏已经流畅很多了,如果有发现其他问题再来补充,也欢迎其他发现问题或者有更好的解决方案的人补充评论。


如有问题欢迎随时批评指正。

你可能感兴趣的:(Unity3D开发)