// Update is called once per frame void Update() { if (healthComponent.IsDead) { Destroy(gameObject); } else { if (detectionComponent.DetectPlayer) { navigationComponent.SetTarget(player); var hit = gunComponent.Shoot(); if (hit != null) { var healthComponent = hit.GetComponent <HealthComponent>(); if (healthComponent != null) { healthComponent.TakeDamage(gunComponent.Damage); } } } else { navigationComponent.ResetTarget(); } } }