コード例 #1
0
        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);
            }
        }