Unity - 2D游戏中掉帧严重问题解决
2016-10-27 10:00
1636 查看
目的:解决unity2D中游戏掉帧严重问题
这个问题的出现一开始我并不知道什么原因,于是在unity-profiler中寻找答案。
一开始我发现这个问题
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/03/ccb66d0f3fe048b4fb0875654a8dd041)
然后我在网站上搜索”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,这样会好很多。
至此:游戏已经流畅很多了,如果有发现其他问题再来补充,也欢迎其他发现问题或者有更好的解决方案的人补充评论。
如有问题欢迎随时批评指正。
这个问题的出现一开始我并不知道什么原因,于是在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,这样会好很多。
至此:游戏已经流畅很多了,如果有发现其他问题再来补充,也欢迎其他发现问题或者有更好的解决方案的人补充评论。
如有问题欢迎随时批评指正。
相关文章推荐
- 京城游戏人-Day16: 解决 Unity 2D 游戏中贴图模糊的问题
- Unity_2D游戏屏幕适配问题_081
- Unity和Android交互,按下锁屏键解锁后游戏重新启动问题解决方法
- 【个人UNITY笔记】{基础} 2D游戏中使用Shader或Camera解决Sprite前后遮挡关系
- 探究eclipse转AS,解决65K问题---UNITY游戏相关
- 用Unity开发基于Oculus Rift的体验游戏时遇到天空盒重影问题的解决方法
- unity2d开发windows phone游戏按钮问题
- 解决Android客户端运行Cococs2dx编写的游戏程序遇到的意外游戏中断导致的游戏黑屏问题
- Unity游戏引擎游戏开发时遇到内存泄漏问题怎么办? 自研发的Unity游戏老是卡顿、闪退,有什么办法解决吗?
- 如何解决2D游戏的图像分辨率问题
- 系统、游戏问题及解决
- 巧用原型继承解决游戏开发中的鼠标问题
- 严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 问题解决
- Windows7下解决所有游戏不能全屏的问题。
- 解决北通C033安装驱动后极品飞车14不能进入游戏的问题
- 【Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!
- Linux UDP严重丢包问题的解决
- 2D游戏中应用双缓冲,关于png的问题
- ACM做音频传输的时候,有严重的延迟问题,这个控件来自网络,添加了4个录音缓冲区,解决延迟问题
- 编程解决各种问题(一) ----------------Flash 经典智力游戏(一) 人羊菜以及狼的故事