代碼優(yōu)化(1)
Before
void TakeDamage() {
if (GetComponent<HealthComponent>().health < 0) {
GetComponent<Rigidbody>().detectCollisions = false;
GetComponent<Collider>().enabled = false;
GetComponent<AIControllerComponent>().enabled = false;
GetComponent<Animator>().SetTrigger("death");
}
}
After
// 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");
}
}