首页 / UNITY / 【Unity优化】提高代码性能
【Unity优化】提高代码性能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Unity优化】提高代码性能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含994字,纯文字阅读大概需要2分钟。
内容图文
![【Unity优化】提高代码性能](/upload/InfoBanner/zyjiaocheng/1245/5c2c2386a2cd46f0b62b99365f9f2cd7.jpg)
CPU每帧需要处理数百万条指令,如果没有按时处理完,就会导致游戏卡顿。
打包过程
Untiy将代码编译为 CIL(Common Intermediate Language)
① AOT:CIL在打包时编译为机器码
② JIT:CIL在运行前编译为机器码
源码与机器码的关系
没有被编译的代码称为源码,决定了编译后机器码的结构和内容。
① 一些CPU指令要比其他的消耗更多时间;
② 一些在源码中看起来简单的处理,在编译后会变得非常复杂;
运行时引擎代码、用户代码的沟通
1)大多数引擎代码用C++编写,并且已经被编译为机器码。
2)用户代码被称为托管代码,被编译为机器码后,在托管运行时(managed runtime)上运行。MR负责自动内存管理、安全检查等。
3)当CPU在引擎代码和托管代码之间沟通时,就需要进行安全检查。当需要从托管代码传递数据到引擎代码时,需要进行格式转换,这一过程叫编组(marshalling)。
低性能代码
1)代码架构浪费性能
2)不必要的昂贵调用
3)不必要的方法调用
4)代码自身耗时长
提高代码性能
1)尽可能减少Update中的操作
2)仅当有变化时调用方法
3)Update中每隔几帧再做处理
4)缓冲对象,而不是每次创建
5)使用合适的数据结构
6)降低GC的影响
7)使用对象池
8)代码LOD,不重要的时候使用简单处理
避免调用昂贵的 Unity API
原则:每个API都有适用场合,只是有些不适合频繁调用。
1)SendMessage()、BroadcastMessage():用到了反射
2)Find():遍历所有对象和组件
3)更改 Transform 的 position 或 rotation 会向所有子对象发送 OnTransformChanged 事件。因此尽量少调用
4)使用 Transform.localPosition 替代 Transform.position:后者由前者计算转换得到
5)使用 Vector.sqrMagnitude 替代 Vector.magnitude;使用 int 和 float 计算替代 Vector
6)避免频繁使用 Camera.main
原文:https://www.cnblogs.com/hearthstone/p/13357918.html
内容总结
以上是互联网集市为您收集整理的【Unity优化】提高代码性能全部内容,希望文章能够帮你解决【Unity优化】提高代码性能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。