No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Object Pool II

27/32
Recursos

Aqu铆 encontrar谩s el c贸digo realizado durante la anterior clase:

void Start()
{
  instancedObjects = new List<GameObject>();

  // Recorre los objetos que se quiere agregar
  foreach(var item in itemsToPool)
  {
    // Recorre la cantidad estimada
    for (int i = 0; i < item.amountToPool; i++)
    {
      // Instancia el objeto en la escena
      var 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:

public GameObject GetPoolObject(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谩 true
    if (!instancedObjects[i].activeInHierarchy && instancedObjects[i].CompareTag(tag))
    {
      // Retorna el objeto libre
      return instancedObjects[i];
    }
  }

  // En caso de que no existan objetos en la lista disponible
  foreach (var item in itemsToPool)
  {
    // Revisar谩 si en la lista de objetos a instanciar existe uno con el mismo tag
    if (item.objectToPool.CompareTag(tag))
    {
      // Instancia el objeto en la escena
      var 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 libre
      return go;
    }
  }

  // Retorna null en caso de no encontrar por el tag
  return null;
}

Aportes 6

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

algo raro pasa aca, la clase ObjectPooler esta muy distinta a como la dejamos en al clase anterior鈥
creo que el editor del video corto muchas partes

Ac谩 dejo mis apuntes en c贸digo para los que se hayan perdido al ver que el c贸digo no es el mismo:

void Start()
{
  instancedObjects = new List<GameObject>();

  // Recorre los objetos que se quiere agregar
  foreach(var item in itemsToPool)
  {
    // Recorre la cantidad estimada
    for (int i = 0; i < item.amountToPool; i++)
    {
      // Instancia el objeto en la escena
      var 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);
    }
  }
}

public GameObject GetPoolObject(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谩 true
    if (!instancedObjects[i].activeInHierarchy && instancedObjects[i].CompareTag(tag))
    {
      // Retorna el objeto libre
      return instancedObjects[i];
    }
  }

  // En caso de que no existan objetos en la lista disponible
  foreach (var item in itemsToPool)
  {
    // Revisar谩 si en la lista de objetos a instanciar existe uno con el mismo tag
    if (item.objectToPool.CompareTag(tag))
    {
      // Instancia el objeto en la escena
      var 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 libre
      return go;
    }
  }

  // Retorna null en caso de no encontrar por el tag
  return null;
}

Reporten el problema, asi ven de solucionarlo. Una pena porque el curso me estaba gustando pero el hecho de que falten partes de las clases ( ya es la 2da vez) saca las ganas. Habr谩 que buscar el object Pooling por afuera馃槕

驴Por qu茅 motivo el codigo del ObjectPooler.cs es t谩n distinto al visto en la clase pasada? Ya son varias veces en el mismo curso que pasa lo mismo con codigos modificados sin explicar el como o el por qu茅.
Es una gran l谩stima, porque siento que estoy aprendiendo m谩s bien poco y solo se me presentan topicos a buscar por mi propia cuenta. Como si estuviese viendo un temario m谩s que un curso el cu谩l estoy pagando. En f铆n, voy a terminar el curso pero s茅 que varios m谩s est谩n con el mismo problema y sienta mal que algunos lo dejen a medias

Entiendo que la idea es fomentar el aprendizaje continuo, el esfuerzo y ser autodidacta, pero es que ni siquiera hay un video explicando qu茅 se hizo 鈥 probablemente sea un error en los videos que se subieron, pero esto dificulta el aprendizaje de estos conceptos tan abstractos como lo son los patrones de dise帽o.

a mi me sale el error del private void OnFire