コード例 #1
0
ファイル: Sensor.cs プロジェクト: ZhanYi224/Turret-AI
    void UpdateTarget()
    {
        float    shortestDistance = Mathf.Infinity;
        Collider nearestEnemy     = null;

        for (i = 0; i < enableTarget.Length; i++)
        {
            for (a = 0; a < enemyToDamage.Length; a++)
            {
                if (enemyToDamage[a] == enableTarget[i])
                {
                    Collider enemy           = enableTarget[i];
                    float    distanceToEnemy = Vector3.Distance(transform.position, enemy.transform.position);
                    if (distanceToEnemy < shortestDistance)
                    {
                        shortestDistance = distanceToEnemy;
                        nearestEnemy     = enemy;
                    }
                }
            }
        }

        if (nearestEnemy != null && shortestDistance <= range)
        {
            m_target = nearestEnemy.transform;
        }

        else
        {
            m_target = null;
            IdleText();
        }



        m_rotateObject.SetTarget(m_target);

        // when it shoot, before it shoot if the target is null, if null repeat the target from the start,
        //find another nearest target to shoot again
    }
コード例 #2
0
 public void RotateTheTurret()
 {
     m_rotateObject.SetTarget(m_target);
 }