Search Unity

How do I add multiple tagged objects: GameObject.FindGameObjectsWithTag

Discussion in 'Scripting' started by SiMULOiD, Aug 2, 2015.

  1. SiMULOiD

    SiMULOiD

    Joined:
    Dec 23, 2013
    Posts:
    126
    Hi,
    I was curious if there was a way to add more than one tagged object to this script.
    Thanks,
    Greg

    Code (csharp):
    1.  
    2.  
    3.  using UnityEngine;
    4.  using System.Collections;
    5.  using System.Collections.Generic;
    6.  
    7.  public class AI_FindObjectsWithtag_Transform_Beetle : MonoBehaviour {
    8.      public List <Transform> Enemies;
    9.      public Transform SelectedTarget;
    10.      
    11.      void Update ()
    12.      {
    13.          SelectedTarget = null;
    14.          Enemies = new List<Transform>();
    15.          AddEnemiesToList();
    16.      }
    17.  
    18.      public void AddEnemiesToList()
    19.      {
    20.          GameObject[] ItemsInList = GameObject.FindGameObjectsWithTag("Flower");
    21.          
    22.          
    23.          
    24.          foreach(GameObject _Enemy in ItemsInList)
    25.          {
    26.              AddTarget(_Enemy.transform);
    27.          }
    28.      }
    29.  
    30.      public void AddTarget(Transform enemy)
    31.      {
    32.          Enemies.Add(enemy);
    33.      }
    34.  
    35.      public void DistanceToTarget()
    36.      {
    37.          Enemies.Sort(delegate( Transform t1, Transform t2){
    38.              return Vector3.Distance(t1.transform.position,transform.position).CompareTo(Vector3.Distance(t2.transform.position,transform.position));
    39.          });
    40.      
    41.      }
    42.  
    43.      public void TargetedEnemy()
    44.      {
    45.          if(SelectedTarget == null)
    46.          {
    47.              DistanceToTarget();
    48.              SelectedTarget = Enemies[0];
    49.          }
    50.      
    51.      
    52.      }
    53.  
    54.      void LateUpdate ()
    55.      {
    56.          TargetedEnemy();
    57.          float dist = Vector3.Distance(SelectedTarget.transform.position,transform.position);
    58.          //if(dist <150)
    59.          //{
    60.            //  transform.position = Vector3.MoveTowards(transform.position, SelectedTarget.position, Time.deltaTime * 1);
    61.            
    62.           transform.position = Vector3.Lerp (transform.position, SelectedTarget.position, Time.deltaTime*1);  
    63.              
    64.          //}
    65.  
    66.      }
    67.  }
    68.  
    69.  
    70.