Aquí encontrarás el código realizado durante la anterior clase:
voidStart(){ instancedObjects =newList<GameObject>();// Recorre los objetos que se quiere agregarforeach(var item in itemsToPool){// Recorre la cantidad estimadafor(int i =0; i < item.amountToPool; i++){// Instancia el objeto en la escenavar go =Instantiate(item.objectToPool);// Lo deja desactivado para no ser visible go.SetActive(false);// Lo agrega a la lista de objetos instanciados instancedObjects.Add(go);}}}
Y es aquí donde comienza el código de esta clase, con un for ya creado:
publicGameObjectGetPoolObject(string tag){// En caso de que existan objetos en la lista disponible, los retornará desde aquífor(int i =0; i < instancedObjects.Count; i++){// Si el item en la posición [i] no está activo en la escena y el tag corresponde, el valor será trueif(!instancedObjects[i].activeInHierarchy&& instancedObjects[i].CompareTag(tag)){// Retorna el objeto librereturn instancedObjects[i];}}// En caso de que no existan objetos en la lista disponibleforeach(var item in itemsToPool){// Revisará si en la lista de objetos a instanciar existe uno con el mismo tagif(item.objectToPool.CompareTag(tag)){// Instancia el objeto en la escenavar go =Instantiate(item.objectToPool);// Lo deja desactivado para no ser visible go.SetActive(false);// Lo agrega a la lista de objetos instanciados instancedObjects.Add(go);// Retorna el objeto librereturn go;}}// Retorna null en caso de no encontrar por el tagreturnnull;}