private void Update() { if (Storage.Energy == 0 && Time.timeSinceLevelLoad - timeStamp > coolDown) { isActive = true; Transform t = null; if (EnergyHandler.GetStrongestEnergyInCone(tip.position, Vector3.down, detectionRange, detectionBaseRadius, out t)) { if (!objectsShot.Contains(t)) { Instantiate(PrefabHolder.EnergyLaser(), laserTurretTipPosiiton.position, Quaternion.Euler(Vector3.right * 90f)); audioSource.clip = shootingSound; audioSource.Play(); animator.SetTrigger("Shoot"); objectsShot.Add(t); if (t != null) { var damageTaker = t.GetComponent <IGameObjectDamageTaker>(); if (damageTaker != null) { damageTaker.TakeDamage(); } } timeStamp = Time.timeSinceLevelLoad; } } } else { isActive = false; } if (isActive != visualizer.isVisible) { visualizer.UpdateVisibility(isActive); } }