Unity 3D: videojuego runner

Eliminar partes del escenario sin uso

¡Prueba gratis durante 10 días

nuestros 1144 cursos !

Prueba gratis Mostrar modalidades de suscripción
Cuando nuestro escenario empiece a crecer con la creación dinámica de elementos por código en C#, nos veremos en la obligación de eliminar aquellas partes que ya no son vistas por el jugador para evitar un mal rendimiento del videojuego.

Transcripción

Ahora que estamos creando dinámicamente parte de la fábrica de nuestro escenario, se han dado cuenta que ha empezado a crecer. Sin embargo, las partes que ya pasamos con nuestro personaje y que ya no se ven, pues siguen existiendo y eso en rendimiento y en consumo, eso perjudica a nuestro juego, ya que todo comienza a ponerse un poco más lento, porque hay demasiados elementos sobre nuestro escenario. Así que vamos a hacer lo siguiente. Así como hemos hecho un "onTriggerEnter", al momento que estamos –valga la redundancia– entrando a cada escena para cambiar la cámara, lo que vamos a hacer ahora es que cuando pase por la escena, o sea, ya salí de esta parte de la fábrica, cuando salga, pues que la elimine después de un tiempo. Entonces, voy a abrir mi código y voy a ir al 'PlayerController'. Vamos a ir aquí. Aquí, como hay un 'onEnter' –voy a acomodar esto, para que no se vea tan desordenado– y de hecho puedo copiarlo y pegarlo. La única diferencia va ser que aquí va a ser 'Exit'. Voy a comentar este de aquí y vamos a comprobar... 'Exit' y lo concateno con el 'tag'. Voy a grabar y voy a probar en mi juego. Le doy a avanzar, abro la consola, 'Exit', que no está tallado el 'Init', y ahí comienza a salir, miren, acabo de salir del primero, acabo de salir el siguiente y así sucesivamente. Ahora no lo puedo eliminar en este momento, porque aún hay partes dentro del juego que se pueden ver. Dependen de la cámara, pero si está para alguno de los lados, va a verse un poco. Entonces no los podemos eliminar inmediatamente. Para eso hay que crear una rutina, ¿se acuerdan que lo hicimos? Bueno, vamos a crear una rutina para puntualmente remover nuestros prefab. Voy a ir a las propiedades y voy a crear una nueva propiedad, una propiedad privada que se llama 'Coroutine', 'remove Prefab'. Vamos a volver a nuestro código al 'Exit' y aquí vamos a empezar a utilizar esta parte del código que nos ayudará a eliminar nuestro prefab. Aquí vamos a hacer un 'removePrefab' que va a ser igual a un 'Start Coroutine' y voy a abrir y cerrar paréntesis y voy a poner... Voy a llamar para eso a una función que me permite eliminar en base a una rutina. Entonces voy a crear un 'IEnumerator' y le voy a poner 'remove Prefab Func', de 'función'. Vamos a recibir un 'GameObject' que le pondremos sobre 'obj' de forma temporal, y aquí le diré: 'yield', 'return', 'new' y vamos a esperar por unos segundos para que se elimine. No va a ser inmediato, con un segundo creo que es más que suficiente. Voy a decirle que vamos a destruir el 'obj' y seguidamente vamos a detener nuestra rutina, que es el 'remove Prefab'. ¿OK? Entonces aquí empezamos la rutina. Le pondré 'removePrefabFunc' y aquí adentro le voy a pasar el parámetro, que es el 'other . gameObject'. Grabo y voy a Unity. Ahora bien, aquí hay un detalle. Nosotros cuando hemos comenzado a pasar las referencias de nuestro 'factory', lo que hemos hecho es arrastrarlos desde la jerarquía en modo de prueba. ¿Y funciona? Sí funciona, pero ahora que estamos eliminando objetos, vamos a tener que crear un folder para nuestros propios prefabs. En estos prefabs lo que vamos hacer es pasar ya nuestra parte del escenario de la fábrica a esta carpeta específica. Si bien es cierto, nosotros dentro de los modelos hemos tenido unos prefabs que hemos estado reutilizando. Ya editados nuestros prefabs, vamos a tener que crearlo nosotros y para eso se agarra uno y se arrastra a la carpeta 'Prefab': agarro 'left', agarro 'top' y agarro 'right'. Ahora ya tenemos nuestros propios prefabs que hemos desarrollado durante el curso. Ahora vamos a ir a 'factory' y en vez de tener estos de aquí, que fueron los que arrastramos dentro del escenario, vamos a poner estos de acá. ¿Por qué hacemos eso? Repito, porque si no vamos a empezar a eliminar nuestros propios escenarios y no se van a poder crear. Para eso sí necesitamos nuestros prefabs. Muy bien. Grabo y vamos a ver cómo se van creando y yo voy a ir avanzando. Ustedes, cuando aparezca acá en la consola que hemos salido de uno, ahorita va a empezar a borrarse. A ver, ya salimos del barco. Vamos a ver. Acá veo a mi personaje muy pequeño, estoy colisionando propósito, por si acaso. Por abajo, sigo viendo a mi personaje acá y atrás muy cerca mi escenario. Vamos a verlo, seguimos, ¡ups! me voy a chocar a cada rato. Por ejemplo, miren, ahorita acaba de borrarse este de aquí y se acaba de borrar y así sucesivamente. Con esto estamos logrando que nuestro escenario se mantenga puntualmente en el espacio que queremos. Ya con nuestros personajes creados, lo que vamos a hacer son algunas monedas o "coins", porque si hacemos que haya muchas partes en nuestra fábrica, obviamente el consumo va a ser mayor.

Unity 3D: videojuego runner

Crea un tipo de juego muy de moda a día de hoy, un runner en 3D. Emplea el trabajo de tu equipo de diseño y aprende a agregar la física e interacción del personaje con el entorno.

4:29 horas (43 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:9/09/2016

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.