コード例 #1
0
        private void TickWeapon()
        {
            m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_NodeCircle);

            if (m_ClosestEnemyData == null)
            {
                m_LineRenderer.gameObject.SetActive(false);
                Debug.Log("Closest enemy null!");
                return;
            }
            else
            {
                var closestEnemyPosition = m_ClosestEnemyData.View.transform.position;
                m_View.TowerLookAt(closestEnemyPosition);
                Vector3 projectileOriginPosition = m_View.ProjectileOrigin.position;
                m_LineRenderer.SetPosition(0, projectileOriginPosition);
                m_LineRenderer.SetPosition(1, closestEnemyPosition);
                m_LineRenderer.gameObject.SetActive(true);
            }

            TickTower();

            Debug.Log("Hit Lazer!");
            m_ClosestEnemyData.GetDamage(m_Damage * Time.deltaTime);
        }
コード例 #2
0
 public void TickShoot()
 {
     m_ClosestEnemy = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_rangeNodes);
     if (m_ClosestEnemy == null)
     {
         m_LineRenderer.gameObject.SetActive(false);
     }
     else
     {
         TickTower();
         Vector3 originPosition = m_View.ProjectileOrigin.position;
         m_LineRenderer.transform.position = originPosition;
         m_LineRenderer.SetPosition(1, m_ClosestEnemy.View.transform.position - originPosition);
         m_LineRenderer.gameObject.SetActive(true);
         m_ClosestEnemy.GetDamage(m_Damage);
     }
 }
コード例 #3
0
        private void TickWeapon()
        {
            m_ClosestEnemyData =
                EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_Nodes);
            if (m_ClosestEnemyData == null)
            {
                m_LineRenderer.gameObject.SetActive(false);
                return;
            }

            m_LineRenderer.SetPositions(new [] {
                m_View.ProjectileOrigin.position,
                m_ClosestEnemyData.View.transform.position
            });

            m_LineRenderer.gameObject.SetActive(true);

            TickTower();
            Shoot(m_ClosestEnemyData);
        }
コード例 #4
0
        private void TickWeapon()
        {
            m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_NodesInCircle, m_MaxDistance * m_MaxDistance);

            float passedTime = Time.time - m_LastShotTime;

            if (passedTime < m_TimeBetweenShots)
            {
                return;
            }

            if (m_ClosestEnemyData == null)
            {
                return;
            }

            TickTower();

            Shoot(m_ClosestEnemyData);
            m_LastShotTime = Time.time;
        }
コード例 #5
0
        private void TickWeapon()
        {
            float elapsedTime = Time.time - m_LastShotTime;

            if (elapsedTime < m_TimeBetweenShots)
            {
                return;
            }

            m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_AvailableNodes);

            if (m_ClosestEnemyData == null)
            {
                return;
            }

            TickTower();

            Shoot(m_ClosestEnemyData);
            m_LastShotTime = Time.time;
        }
コード例 #6
0
        private void TickWeapon()
        {
            float passedTime = Time.time - m_LastShotTime;

            if (passedTime < m_TimeBetweenShots)
            {
                return;
            }

            m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_NodeCircle);

            if (m_ClosestEnemyData == null)
            {
                Debug.Log("Closest enemy null!");
                return;
            }

            TickTower();

            Shoot(m_ClosestEnemyData);
            m_LastShotTime = Time.time;
        }
コード例 #7
0
        public void TickShoot()
        {
            m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_Nodes);
            if (m_ClosestEnemyData == null)
            {
                m_LineRenderer.gameObject.SetActive(false);
            }
            else
            {
                Vector3 closestEnemyPosition = m_ClosestEnemyData.View.transform.position;
                m_View.TowerLookAt(closestEnemyPosition);

                m_LineRenderer.SetPosition(0, m_View.ProjectileOrigin.position);
                m_LineRenderer.SetPosition(1, closestEnemyPosition);

                m_LineRenderer.gameObject.SetActive(true);

                m_ClosestEnemyData.GetDamage(m_Damage * Time.deltaTime);

                //Debug.Log("Dealt damage");
            }
        }
コード例 #8
0
        private void TickWeapon()
        {
            float passedTime = Time.time - m_LastShotTime;

            if (passedTime < m_TimeBetweenShots)
            {
                return;
            }

            m_ClosestEnemyData =
                EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_Nodes);

            if (m_ClosestEnemyData == null)
            {
                return;
            }

            TickTower();
            //Можем вызвать 2 раза, но это не проблема, а исправлять долго

            Shoot(m_ClosestEnemyData);
            m_LastShotTime = Time.time;
        }
コード例 #9
0
 private bool SetClosest()
 {
     m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_NodesInCircle, m_MaxDistance * m_MaxDistance);
     return(CheckClosest());
 }
コード例 #10
0
 private void TickWeapon()
 {
     m_ClosestEnemyData = EnemySearch.GetClosestEnemy(m_View.transform.position, m_MaxDistance, m_AvailableNodes);
 }