快取引用
快取引用以避免昂貴的呼叫,尤其是在更新函式中。這可以通過在啟動時(如果可用)或可用時快取這些引用來完成,並檢查 null / bool flat 以避免再次獲得引用。
例子:
快取元件引用
更改
void Update()
{
var renderer = GetComponent<Renderer>();
renderer.material.SetColor("_Color", Color.green);
}
至
private Renderer myRenderer;
void Start()
{
myRenderer = GetComponent<Renderer>();
}
void Update()
{
myRenderer.material.SetColor("_Color", Color.green);
}
快取物件引用
更改
void Update()
{
var enemy = GameObject.Find("enemy");
enemy.transform.LookAt(new Vector3(0,0,0));
}
至
private Transform enemy;
void Start()
{
this.enemy = GameObject.Find("enemy").transform;
}
void Update()
{
enemy.LookAt(new Vector3(0, 0, 0));
}
另外,儘可能快取昂貴的呼叫,如對 Mathf 的呼叫。