Estoy tratando de obtener una lista de Transformaciones para un sistema de generación. Intenté usar GameObject.FindGameObjectsWithTag con una matriz en lugar de una lista y parece que la matriz debe ser GameObjects y no Transforms, ya que eso es lo que está buscando. También probé otra pieza de código, pero solo devuelve una Transformación aleatoria en una lista, aquí está:
public List<Transform> t; void Start() { t.Add(GameObject.FindWithTag("Spawn").transform); }Como puede ver en mi código, solo agregará una Transformación a mi lista. Me gustaría agregar varias transformaciones en lugar de solo una.
Puedes usar Linq Select como
using System.Linq; ... public List<Transform> t; void Start() { t = GameObject.FindGameObjectsWithTag("Spawn").Select(go => go.transform).ToList(); }Esto básicamente equivale a hacer
t = new List<Transform>(); foreach(var go in GameObject.FindObjectsWithTag("Spawn")) { t.Add(go.transform); }Matriz de gameObject:
GameObject[] gos; gos = GameObject.FindGameObjectsWithTag("Enemy");Para obtener la transformación:
gos[0].transformPara hacer una lista de transformación:
public List<Transform> t; foreach (GameObject go in gos) { t.Add(go.transform); }Podría ser más sencillo agregar estos objetos "spawn" a la lista en el momento de su creación en lugar de intentar encontrarlos después. ¿Es esa una opción?
Por ejemplo:
GameObject spawn = Instantiate(spawnObj); t.Add(spawn.transform);