通过标签创建 array/list 个对象(最初数量未知)
Create array/list of many objects(initially unknown amount) by tag
我目前正在为我的 space 游戏开发雷达系统,我正在尝试研究如何通过标签将游戏对象添加到列表或数组中,然后可以在其他方法。我不能手动执行此操作,因为我将程序化地生成每个级别,其中包含不同数量的这些对象:行星、敌人、小行星等。我已经查找了至少 5 种左右的方法,但是我注意到有些方法似乎在 Unity 5 中被弃用并且不再工作(他们在 3 或 4 年前被竖起大拇指),或者他们只是没有按照我需要的方式工作,即是方法的本地而不是 class.任何帮助将不胜感激。
public List<GameObject> myListofGameObject = new List<GameObject>();
Start(){
myListofGameObject.AddRange(GameObject.FindGameObjectsWithTag("TagName"));
myListofGameObject.AddRange(GameObject.FindGameObjectsWithTag("TagName2"));
myListofGameObject.AddRange(GameObject.FindGameObjectsWithTag("TagName3"));
foreach(GameObject gc in myListofGameObject){
Debug.Log(gc.name);
}
}
对我来说非常好,确保为 linq 泛型添加系统 class。
我目前正在为我的 space 游戏开发雷达系统,我正在尝试研究如何通过标签将游戏对象添加到列表或数组中,然后可以在其他方法。我不能手动执行此操作,因为我将程序化地生成每个级别,其中包含不同数量的这些对象:行星、敌人、小行星等。我已经查找了至少 5 种左右的方法,但是我注意到有些方法似乎在 Unity 5 中被弃用并且不再工作(他们在 3 或 4 年前被竖起大拇指),或者他们只是没有按照我需要的方式工作,即是方法的本地而不是 class.任何帮助将不胜感激。
public List<GameObject> myListofGameObject = new List<GameObject>();
Start(){
myListofGameObject.AddRange(GameObject.FindGameObjectsWithTag("TagName"));
myListofGameObject.AddRange(GameObject.FindGameObjectsWithTag("TagName2"));
myListofGameObject.AddRange(GameObject.FindGameObjectsWithTag("TagName3"));
foreach(GameObject gc in myListofGameObject){
Debug.Log(gc.name);
}
}
对我来说非常好,确保为 linq 泛型添加系统 class。