コード例 #1
0
    // Start is called before the first frame update
    void Start()
    {
        target = GetComponent <Targeting>().GetTarget();
        Vector3 targetPos = GetTargetLocation(target);

        transform.LookAt(targetPos);
    }
コード例 #2
0
    protected Vector3 GetTargetLocation(Targeting.TargetPlayer target)
    {
        if (target == Targeting.TargetPlayer.RED)
        {
            return(GameObject.FindGameObjectWithTag("RED").transform.position);
        }
        else if (target == Targeting.TargetPlayer.BLUE)
        {
            return(GameObject.FindGameObjectWithTag("BLUE").transform.position);
        }
        else if (target == Targeting.TargetPlayer.BOTH)
        {
            //Compare the distances of the two ships
            float distanceRed  = Vector3.Distance(GameObject.FindGameObjectWithTag("RED").transform.position, transform.position);
            float distanceBlue = Vector3.Distance(GameObject.FindGameObjectWithTag("BLUE").transform.position, transform.position);

            //Choose the ship that's closest
            if (distanceRed < distanceBlue)
            {
                return(GameObject.FindGameObjectWithTag("RED").transform.position);
            }
            else if (distanceBlue <= distanceRed)
            {
                return(GameObject.FindGameObjectWithTag("BLUE").transform.position);
            }
            else
            {
                return(Vector3.zero);
            }
        }
        else
        {
            return(Vector3.zero);
        }
    }
コード例 #3
0
 protected Vector3 GetTargetLocation(Targeting.TargetPlayer target)
 {
     if (target == Targeting.TargetPlayer.RED)
     {
         return(GameObject.FindGameObjectWithTag("RED").transform.position);
     }
     else if (target == Targeting.TargetPlayer.BLUE)
     {
         return(GameObject.FindGameObjectWithTag("BLUE").transform.position);
     }
     else //When the attack targets both players, choose randomly which of the two to attack
     {
         if (Random.Range(0.0f, 1.0f) < 0.5f)
         {
             return(GameObject.FindGameObjectWithTag("RED").transform.position);
         }
         else
         {
             return(GameObject.FindGameObjectWithTag("BLUE").transform.position);
         }
     }
 }
コード例 #4
0
 // Start is called before the first frame update
 void Start()
 {
     target = GetComponent <Targeting>().GetTarget();
     //Delay first attack
     cooldownCounter = attackCooldown;
 }