关于Unity优化

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); }
CancelInvoke("你调用的方法"); 停止InvokeRepeating




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 这两个参数。


6. 压缩 Mesh




导入 3D 模型之后,在不影响显示效果的前提下,最好打开 Mesh Compression。




Off, Low, Medium, High 这几个选项,可酌情选取。对于单个Mesh最好使用一个材质。


7. 避免大量使用 Unity 自带的 Sphere 等内建 Mesh




Unity 内建的 Mesh,多边形的数量比较大,如果物体不要求特别圆滑,可导入其他的简单3D模型代替。




8. 优化数学计算
尽量避免使用float,而使用int,特别是在手机游戏中,尽量少用复杂的数学函数,比如sin,cos等函数。改除法/为乘法,例如:使用x*0.5f而不是 


x/2.0f 。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值