1. 尽量避免每帧处理
比如:
function Update() { DoSomeThing(); }
可改为每5帧处理一次:
function Update() { if(Time.frameCount % 5 == 0) { DoSomeThing(); } }
2. 定时重复处理用 InvokeRepeating 函数实现
比如,启动0.5秒后每隔1秒执行一次 DoSomeThing 函数:
function Start() { InvokeRepeating("DoSomeThing", 0.5, 1.0); }
3. 优化 Update, FixedUpdate, LateUpdate 等每帧处理的函数
函数里面的变量尽量在头部声明。
比如:
function Update() { var pos: Vector3 = transform.position; }
可改为
private var pos: Vector3; function Update(){ pos = transform.position; }
4. 主动回收垃圾
给某个 GameObject 绑上以下的代码:
function Update() { if(Time.frameCount % 50 == 0) { System.GC.Collect(); } }5. 运行时尽量减少 Tris 和 Draw Calls
预览的时候,可点开 Stats,查看图形渲染的开销情况。特别注意 Tris 和 Draw Calls 这两个参数。
一般来说,要做到:
Tris 保持在 7.5k 以下
Draw Calls 保持在 20 以下
6. 压缩 Mesh
导入 3D 模型之后,在不影响显示效果的前提下,最好打开 Mesh Compression。
Off, Low, Medium, High 这几个选项,可酌情选取。
7. 避免大量使用 Unity 自带的 Sphere 等内建 Mesh
Unity 内建的 Mesh,多边形的数量比较大,如果物体不要求特别圆滑,可导入其他的简单3D模型代替。
8. 优化数学计算
比如,如果可以避免使用浮点型(float),尽量使用整形(int),尽量少用复杂的数学函数比如 Sin 和 Cos 等等。

Unity3D 代码优化相关推荐

  1. unity3D 移动平台性能优化

    unity3D 对于移动平台的支持无可厚非,但是也有时候用3D 开发出来的应用.游戏在移动终端上的运行有着明显的效率问题,比如卡.画质等各种问题.自己在做游戏开发的时候偶有所得.对于主要影响性能的因素 ...

  2. unity3d中ScriptingBackend选择mono和il2cpp的区别

    unity3d中ScriptingBackend选择mono和il2cpp的区别 在iOS和Android上,在Player Settings中选择mono或il2cpp脚本后端.要更改脚本后端,请转 ...

  3. 编译器设计-代码优化

    编译器设计-代码优化 Compiler Design - Code Optimization 优化是一种程序转换技术,它试图通过使代码消耗更少的资源(如CPU.内存)来改进代码,并提供高速. 在优化中 ...

  4. [摘录]代码优化规则

    <<代码优化:有效使用内存>>代码优化建议:     1. 展开读取内存的循环     2. 消除数据相关性         如果请求的RAM单元存在地址数据相关性(也就是说, ...

  5. unity3d游戏开发猜想——当程序猿老去

    程序猿将代码注入生命去打造互联网的浪潮之巅.当有一天他们老了.会走向那里,会做些什么? 非常多年以后,在我60岁的那天早晨,天刚蒙蒙亮我就起床了,先去公园晨练,然后回来做早餐(50岁的时候我学会了做饭 ...

  6. Unity3D 中 2D_Toolkit插件下载 和 导入方法

    Unity3D 中 2D_Toolkit插件下载 和 导入方法 1.你把下载来的包放到 安装目录:Editor\Standard Packages里面. 2.然后按ctrl+9,进入asset sto ...

  7. Unity3D 镜面反射

    原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:[119706192] 本文链接地址: Unity3D 镜面反射 这是官方CharacterCustomization事例中的镜面 ...

  8. [推荐]C#快速开发3d游戏工具--Unity3d

    最近有幸接触了一点Unity3d的东西,和大家分享一下. Unity3d 简介 是一款可视化的,3d游戏开发软件.可以进行手动绘制3d场景,自己添加摄像机角度,3d模型设计,事件触发,对于园子里大家很 ...

  9. mysql种编译码写在哪_深入理解Java虚拟机(程序编译与代码优化)

    对于性能和效率的追求一直是程序开发中永恒不变的宗旨,除了我们自己在编码过程中要充分考虑代码的性能和效率,虚拟机在编译阶段也会对代码进行优化.本文就从虚拟机层面来看看虚拟机对我们所编写的代码采用了哪些优 ...

  10. aspx跳转页面的符号_解决SpringBoot+MyBatis框架下页面跳转问题与代码优化处理。...

    一.关于页面跳转的疑问 后台「return "/pool/index"」返回的是字符串,会自动寻找名为"index"的页面模板文件是怎样实现的? 答:这是Spr ...

最新文章

  1. tomcat集群 (自带Cluster集群)
  2. 万向锁的简单数学解释
  3. 深度学习的数学(2)恶魔神经
  4. 5、(字符串类型)CHAR、VARCHAR、TEXT、ENUM、SET
  5. python for循环语句的用法
  6. jMatter:提高开发速度10倍!
  7. 数据结构基础(15) --基数排序
  8. InheritableThreadLocal类原理简介使用 父子线程传递数据详解 多线程中篇(十八)...
  9. 磁盘分区需要知道的概念
  10. STL的Vector介绍
  11. wow和scrollreveal动画
  12. vs2019键盘钩子_江门网站建设:针对Web开发人员的12个最佳Visual Studio代码扩展
  13. 计算机编程的地位,学习编程的重要性
  14. 第三讲 cs224n系列之skip-pram优化 Global Vector by Manning 词向量评价
  15. Pascal 英语句子语法解析器
  16. Android N 分屏适配
  17. 仿拼多多砍价功能玩法解说
  18. linux网络协议栈(四)链路层 (5)vlan处理
  19. linux桌面 输入法 原理,安装ubuntu 7.10桌面版后无中文输入法的解决
  20. ASO优化:如何提高App Store应用商店中排名?

热门文章

  1. RS232接口芯片内部原理
  2. 防骗指南-套路贷以及肉偿
  3. android 集成x5内核时 本地没有,腾讯X5内核集成一些建议和爬坑记录
  4. 腾讯X5 内核 的导入
  5. 今天第72个儿童节,程序猿“童”样精彩~
  6. java 将数据加载到内存中
  7. 什么软件能打开Android,哪位晓得apk文件用什么软件打开
  8. STM32串口调试一直打印 00 00
  9. 中国城市经纬度表(精确到县区)Google地图用
  10. Arcgis字段计算器实现自动编码