1. > 生活百科 >

unity性能优化 unity性能优化csdn

关于unity性能优化,unity性能优化csdn这个很多人还不知道,今天乐乐来为大家解答以上的问题,现在让我们一起来看看吧!

1、一、遇到麻烦时要调用“垃圾回收器”(Garbage Collector,无用单元收集程序,以下简称GC) 由于具有C/C++游戏编程背景,我们并不习惯无用单元收集程序的特定行为。

2、确保自动清理你不用的内存,这种做法在刚开始时很好,但很快你就公发现自己的分析器经常显示CPU负荷过大,原因是垃圾回收器正在收集垃圾内存。

3、这对移动设备来说尤其是个大问题。

4、要跟进内存分配,并尽量避免它们成为优先数,以下是我们应该采取的主要操作: 1.移除代码中的任何字符串连接,因为这会给GC留下大量垃圾。

5、 2.用简单的“for”循环代替“foreach”循环。

unity性能优化 unity性能优化csdnunity性能优化 unity性能优化csdn


6、由于某些原因,每个“foreach”循环的每次迭代会生成24字节的垃圾内存。

7、一个简单的循环迭代10次就可以留下240字节的垃圾内存。

8、 3.更改我们检查游戏对象标签的方法。

9、用“if (go.CompareTag (“Enemy”)”来代替“if (go.tag == “Enemy”)” 。

unity性能优化 unity性能优化csdnunity性能优化 unity性能优化csdn


10、在一个内部循环调用对象分配的标签属性以及拷贝额外内存,这是一个非常糟糕的做法。

11、 4.对象库很棒,我们为所有动态游戏对象制作和使用库,这样在游戏运行时间内不会动态分配任何东西,不需要的时候所有东西反向循环到库中。

12、 5.不使用LINQ命令,因为它们一般会分配中间缓器,而这很容易生成垃圾内存。

13、 二、谨慎处理高级脚本和本地引擎C++代码之间的通信开销。

unity性能优化 unity性能优化csdnunity性能优化 unity性能优化csdn


14、 所有使用Unity3D编写的游戏玩法代码都是脚本代码,在我们的项目中是使用Mono执行时间处理的C#代码。

15、任何与引擎数据的通信需求都要有一个进入高级脚本语言的本地引擎代码的调用。

16、这当然会产生它自己的开销,而尽量减少游戏代码中的这些调用则要排在第二位。

17、 1.在这一情景中四处移动对象要求来自脚本代码的调用进入引擎代码,这样我们就会在游戏玩法代码的一个帧中缓存某一对象的转换需求,并一次仅向引擎发送一个请求,以便减少调用开销。

18、这种模式也适用于其他相似的地方,而不仅局限于移动和旋转对象。

本文到这结束,希望上面文章对大家有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息