缓存引用
缓存引用以避免昂贵的调用,尤其是在更新函数中。这可以通过在启动时(如果可用)或可用时缓存这些引用来完成,并检查 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 的调用。