User Tag List

Página 2 de 2 PrimerPrimer 12
Resultados 16 al 26 de 26

Tema: Instantiate usando foreach con múltiples GameObject no funciona

  1. #16

    Fecha de ingreso
    Apr 2006
    Ubicación
    Northlands (~Donosti)
    Mensajes
    4,867
    Mencionado
    29 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    27
    Agradecer Thanks Received 
    184
    Thanked in
    Agradecido 144 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por notbad Ver mensaje
    Hombre, tanto como un bug no es. Es una implementación y ya está. Seguramente para otras cosas que no sea juegos no pasará nada ni la gente se habrá percatado de que cree basura a tutiplen.

    Un saludo.
    Hombre si en el otro hilo Eskema se quejaba que una corutina gastaba mucha memoria, lo del foreach es un apaga y vamonos. pq depende de como lo estes haciendo ahoga el juego que no veas. En mi caso en un proyecto fue quitar los foreach y pasar de tener outofmemorys de vez en cuando a ir pasable.

    Salu2

    “I have seen things in the original DOTA that you people wouldn’t believe”. “I have seen Windrunner attack Techies off the bank of the upper river and die; I have seen heroes on fire off the shoulder of the Tree of Life. I watched spells glitter in the dark near the enemy base. All those moments are lost in battle, like… items off a courier in an AOE nuke.”

  2. #17

    Fecha de ingreso
    Jun 2004
    Ubicación
    Valencia
    Mensajes
    2,122
    Mencionado
    33 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    11
    Agradecer Thanks Received 
    102
    Thanked in
    Agradecido 57 veces en [ARG:2 UNDEFINED] posts
    Yo no he dicho nada porque me trae sin cuidado y paso 3 pueblos de "ayudar" a la gente, mis consejos estan en mi canal de youtube donde tengo un video de optimizacion y buenas practicas. El que lo quiera ver y aplicarlas pues estupendo para él, todo eso que se ganará, él que no pues que siga como va xDD
    Total hoy dia nadie se preocupa de nada, siempre hay recursos de sobra o siempre esta la misma excusa, "es que es un proyecto pequeño y asi va bien" xDDD

  3. #18

    Fecha de ingreso
    Sep 2001
    Mensajes
    23,077
    Mencionado
    406 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    98
    Agradecer Thanks Received 
    1,199
    Thanked in
    Agradecido 503 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    9
    Mira, no sabía lo del foreach. Haré limpieza y cambiaré las funciones para evitarlo.

  4. #19

    Fecha de ingreso
    Sep 2001
    Mensajes
    23,077
    Mencionado
    406 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    98
    Agradecer Thanks Received 
    1,199
    Thanked in
    Agradecido 503 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    9
    Las corutinas estoy tratando de limitarlas después de lo que comentó eskema, pero hice bastante uso de ellas al comienzo del proyecto y no se si me vale la pena andar cambiando el código. Este juego lo estoy usando para aprender Unity y hacerme al c#, y creo que me está sirviendo de sobra.

  5. #20

    Fecha de ingreso
    Nov 2007
    Mensajes
    218
    Mencionado
    2 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2
    Agradecer Thanks Received 
    6
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Anarchy Ver mensaje
    Las corutinas estoy tratando de limitarlas después de lo que comentó eskema, pero hice bastante uso de ellas al comienzo del proyecto y no se si me vale la pena andar cambiando el código. Este juego lo estoy usando para aprender Unity y hacerme al c#, y creo que me está sirviendo de sobra.
    las coroutinas te saldrán a cuenta quitarlas si las estás usando (disparandolas) en metodos que se ejecutan muy frecuentemente como update, late update, fixedupdate, etc... Si no, pues no vas a notar casi nada. De todas formas si está en medio del desarrollo yo no me pondría a optimizar nada, como mucho a iterar sobre el código para hacerlo más mantenible y entendible.

    La gente que sabe de esto suele comentar que ... early optimizations == bullet hell , por algo será.

    Un saludo.
    Última edición por notbad; 07/01/2016 a las 12:04

  6. #21

    Fecha de ingreso
    Sep 2001
    Mensajes
    23,077
    Mencionado
    406 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    98
    Agradecer Thanks Received 
    1,199
    Thanked in
    Agradecido 503 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    9
    Cita Iniciado por notbad Ver mensaje
    las coroutinas te saldrán a cuenta quitarlas si las estás usando (disparandolas) en metodos que se ejecutan muy frecuentemente como update, late update, fixedupdate, etc... Si no, pues no vas a notar casi nada.
    No se me ocurriría usarlas en el update ni aunque no me hubieran dicho que consumen memoria. Las uso en momentos muy puntuales. Desde luego no he tenido problemas de rendimiento ni de memoria probando el juego en móviles súper cutres de gama bajísima, así que entiendo que tampoco estoy haciendo un uso excesivo de las mismas.

  7. #22

    Fecha de ingreso
    Nov 2007
    Mensajes
    218
    Mencionado
    2 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2
    Agradecer Thanks Received 
    6
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Anarchy Ver mensaje
    No se me ocurriría usarlas en el update ni aunque no me hubieran dicho que consumen memoria. Las uso en momentos muy puntuales. Desde luego no he tenido problemas de rendimiento ni de memoria probando el juego en móviles súper cutres de gama bajísima, así que entiendo que tampoco estoy haciendo un uso excesivo de las mismas.
    No le des más vueltas. Dejalas donde están e invierte el tema en cosas más importantes como terminar el juego. Al final cuando todo esté funcionando ya coges el profiler y miras que movidas están relamente haciendo sufrir el frame rate del juego.

    Un saludo.

  8. #23

    Fecha de ingreso
    Dec 2004
    Mensajes
    28,646
    Mencionado
    199 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    189
    Agradecer Thanks Received 
    2,640
    Thanked in
    Agradecido 1,647 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    11
    Cita Iniciado por notbad Ver mensaje
    No le des más vueltas. Dejalas donde están e invierte el tema en cosas más importantes como terminar el juego. Al final cuando todo esté funcionando ya coges el profiler y miras que movidas están relamente haciendo sufrir el frame rate del juego.

    Un saludo.
    Exactamente, es un juego con pajaros que explotan asi que tiene que ser bueno XD.
    Google stadia es un fracaso, google stadia funciona mal, google admite su fracaso con stadia la latencia es el problema intrinseco de stadia, el público abandona google stadia, stadia mal.

  9. #24

    Fecha de ingreso
    Sep 2001
    Mensajes
    23,077
    Mencionado
    406 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    98
    Agradecer Thanks Received 
    1,199
    Thanked in
    Agradecido 503 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    9
    Y gusanos gigantes que te persiguen mientras escalas plataformas! xDDD

  10. #25

    Fecha de ingreso
    Dec 2004
    Mensajes
    28,646
    Mencionado
    199 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    189
    Agradecer Thanks Received 
    2,640
    Thanked in
    Agradecido 1,647 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    11
    Cita Iniciado por Anarchy Ver mensaje
    Y gusanos gigantes que te persiguen mientras escalas plataformas! xDDD
    ¡Mejor me lo pones!
    Google stadia es un fracaso, google stadia funciona mal, google admite su fracaso con stadia la latencia es el problema intrinseco de stadia, el público abandona google stadia, stadia mal.

  11. #26

    Fecha de ingreso
    Sep 2005
    Mensajes
    15,234
    Mencionado
    248 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    679
    Agradecer Thanks Received 
    1,865
    Thanked in
    Agradecido 1,278 veces en [ARG:2 UNDEFINED] posts
    Así sin probarlo, yo como lo programaría sería así:

    Código:
    public GameObject Explosion; //(El prefrab con la explosión)
    private GameObject[] pajaros;
    private GameObject objeto; //(Este lo estoy usando como último recurso para hacer pruebas, originalmente no lo utilizaba).
    
        void Start () {
            pajaros = GameObject.FindGameObjectsWithTag("Pajaro");
        }
    
        void OnTriggerEnter2D(Collider2D other)
        {
            foreach (GameObject pajaro in pajaros)
            {
                objeto= (GameObject) Instantiate(Explosion, new Vector3(pajaro.transform.position.x, pajaro.transform.position.y, -1), pajaro.transform.rotation); //-1 simplemente para asegurarme de que la explosión aparezca por delante de los pájaros
                objeto.transform.localScale = new Vector3(2, 2, 0); //No lo necesito, pero estoy haciendo pruebas al no funcionarme. Originalmente lanzaba el Instantitate sin usar el GameObject "objeto"
                StartCoroutine(destruyePajaro(pajaro)); //La rutina que se carga los pájaros tras la explosión, esta se lanza sin problemas
            }
        }
    Ya no sé lo que hace la corrutina, pero no recomiendo usarlas SALVO para tareas que ocurren en diferentes frames (generalmente para esperar tiempos, hacer una animación "a mano", y siempre desactivando el propio script en la corrutina para que no ejecute código, la activas al terminar la corrutina o llamando a un método del propio script; sí, puedes ejecutar métodos del script aunque este esté deshabilitado, muy útil para usar con OnTriggerEnter).

    Según he entendido, la filosofía de Unity te pide que sea el propio pájaro el que genere la explosión al morir, pero en mi experiencia, lo mejor que puedes hacer es que este script de control llame a un método del pájaro que se llame "morir" o algo así, y que haga dos cosas: instanciar la explosión, y autodestruirse (no uses el método OnDestroy, generaría la explosión al salir de la escena).
    Usar grandes códigos que controlan varios elementos parece que va en contra de la filosofía de Unity, que es lo opuesto a lo que nos enseñan en programación, pero te tienes que hacer a la idea que lo que controla el juego es el editor gráfico, y los scripts son pequeñas instrucciones para que los objetos actúen por su cuenta. Otra cosa es que quieras mantener tu estilo, cada uno lo hace como le resulta más cómodo.
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

Página 2 de 2 PrimerPrimer 12

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •