Unity腳本優(yōu)化(一)
Before優(yōu)化前
void TakeDamage() {
????if (GetComponent<HealthComponent>().health < 0) {
????GetComponent<Rigidbody>().detectCollisions = false;
????GetComponent<Collider>().enabled = false;
????GetComponent<AIControllerComponent>().enabled = false;
????GetComponent<Animator>().SetTrigger("death");
????}
}
After優(yōu)化后
// private variables to store cached references
private HealthComponent _healthComponent;
private Rigidbody _rigidbody;
private Collider _collider;
private AIControllerComponent _aiController;
private Animator _animator;
// cache the references during initialization
void Awake() {
_healthComponent = GetComponent<HealthComponent>();
_rigidbody = GetComponent<Rigidbody>();
_collider = GetComponent<Collider>();
_aiController = GetComponent<AIControllerComponent>();
_animator = GetComponent<Animator>();
}
// use the cached references at runtime
void TakeDamage() {
if (_healthComponent.health < 0) {
_rigidbody.detectCollisions = false;
_collider.enabled = false;
_aiController.enabled = false;
_animator.SetTrigger("death");
}
}