unity3d 对Transform数组内移除多个相同物体名字,

  public GameObject _list;

 public  Transform[] RemoveDup(Transform[] myData)
    {
        if (myData.Length > 0)
        {
            // Array.Sort(myData);
            myData= myData.OrderBy(x => x.name).ToArray();
            int size = 1;
            for (int i = 1; i < myData.Length; i++)
                if (myData[i].name != myData[i - 1].name)
                    size++;
            Transform[] myTempData = new Transform[size];
            int j = 0;
            myTempData[j++] = myData[0];
            for (int i = 1; i < myData.Length; i++)
                if (myData[i].name != myData[i - 1].name)
                    myTempData[j++] = myData[i];
            return myTempData;
        }
        return myData;
    }

void Start()

{

   Transform[] neww=  RemoveDup(_list.transform.GetComponentsInChildren());

   foreach (var i in neww)
        {
            Debug.Log(i.name + "  " + i.GetType());
        }

}

 

你可能感兴趣的:(unity3d)