Unity3D 教程:Unity 效能关键点
Posted on 2013 年 05 月 19 日 by U3d / Unity3D 基础教程/被围观 47 次
Unity 开发上与“效能”相关,需要注意的“关键点”:
1.暂存常用的 Component:根据官方文件的描述,每次 GetComponent 的呼叫,
Unity 都会花点时间寻找所要求的 object 上。要省下这点时间,建议利用 Private 变数在
Object Awake 时,将常的用 component 暂存下来。
2.不要在任何 Update 的 function 内,使用 Find:GameObject.Find 这个函式用来
搜寻全域、特定名称之物件,效能上有一定的损耗,所以请尽量在 Start 或 Awake 里使用,
而非 Update 函式里。若要每个 Frame 搜寻请改用 GameObject.FindWithTag。
3.多多使用 BuildIn Array:如果物件数量是固定的,type[]的写法是速度最快的选择。
4.运算少用“除”,多用“加、减、乘”, 根据 Unity 官方数据 :“除法”,需要
30 – 40 cycles 来完成“加、减、乘”,只需要一两个 cycles“平方根、Sin、Cos” ,需
要 60 – 100 cycles 来完成。。Unity3D 教程手册
5.单纯比较向量距离,少用 Normalize:Normalize = vec / sqrt( vec.x^2 + vec.
y^2 + vec. z^2),所以尽量改用 sqrMagnitude。
评论0