Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Primeros pasos en Unity. UI parte 1. Cambiar de escenas - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Comenzamos una serie de vídeos dedicados a la User Interface en Unity, y empezamos por cómo cambiar de escenas y manejar variables estáticas.
Hoy vamos a hablar de la User Interface o la UI de Unity.
00:00:06
Es una forma de comunicarnos con el programa, pero a través de botones, textos que nos dan información sobre el estado del juego y lo que es una interfaz.
00:00:11
Pero antes de hacerlo, antes de meternos de lleno en los componentes de la User Interface, vamos a ver cómo se gestionan las escenas.
00:00:22
Algo aparte de crear y guardar, guardar y guardar escenas, algo que tenemos que tener muy en cuenta es que cuando vayamos a compilar el proyecto, cuando hacemos el build que llama Unity, tenemos que decirle qué escenas incluye.
00:00:28
Aunque nosotros hayamos creado 20 escenas en nuestro proyecto, no significa que esas 20 vayan a estar.
00:00:42
La versión 6 de Unity ha cambiado un poquito como funciona el añadir escenas en la build final. Sigue accediéndose igual en el menú de File y ahora llama lo que antes llamaba Build Settings, ahora lo llama Build Profile.
00:00:46
Solo veamos que efectivamente estamos listos para hacer una build en Windows, pero aquí en la carpetita, en el panel donde dice qué escenas va a exportar, es decir, de todas las que tenemos en nuestro proyecto, cuáles se van a incluir en esa build final, pues estarán en esta lista.
00:01:00
podemos abrirlo en este botón o en el atajo aquí que pone lista de escenas es lo mismo ahora
00:01:16
podemos o bien añadir las que están abiertas en este momento por ejemplo o más fácil aún ir
00:01:22
añadiendo desde nuestro proyecto por ejemplo yo tengo una escena inicial que es esta y pues los
00:01:27
tres mapas de mi juego y las añado y ahí están y lo que es muy importante que tenemos que tener
00:01:33
en cuenta es que uno la primera que se ejecutará cuando lance el juego es la que esté aquí al
00:01:37
al inicio de todo, arriba del todo. Y dos, que siempre que añade una escena le pondrá un índice,
00:01:43
un número, que la identificará de forma que podamos o bien preguntarle a Unity en qué está en estamos
00:01:48
y nos devuelve un número entero, o bien decirle que cargue esa a partir de su número y no de su
00:01:55
nombre. Es muy importante tener en cuenta que si no tenemos una escena añadida a esta lista,
00:02:00
no podremos cargarla utilizando el método loadScene. No podemos, nos dará un error. Pues bien,
00:02:06
¿Cómo hago yo para pasar de una escena a otra?
00:02:11
Eso lo haremos mediante código y para ello usaremos una librería específica
00:02:14
que es la Scene Management, es decir, la gestora de escenas.
00:02:18
Para hacer un ejemplo voy a crear un cubo.
00:02:22
Pues bien, quiero que cuando este personaje atraviese esa puerta vaya a la escena 2.
00:02:24
Y para que yo sepa que he cambiado la escena 2 incluso voy a pinchar en la Main Camera
00:02:31
y le voy a quitar el Skybox.
00:02:35
Me vuelvo a la escena 1 y a este cubo le voy a dar un script.
00:02:37
PortalDimensional. Se lo asigno a este cubo y lo abro. Antes que nada voy a
00:02:41
cargar la librería que necesitamos para manejar las escenas, que ya he dicho que
00:02:51
se llama SceneManagement. Voy a borrar estos métodos, no los necesito, porque lo
00:02:57
único que necesito es crear un OnTriggerEnter. Recordamos que esto nos
00:03:08
lo desrellena automáticamente todo. Si yo llamo al método SceneManager y ahí
00:03:13
tengo todos los atributos y los métodos a los que tengo acceso para haber cargado esas librerías.
00:03:19
Hay muchos más de los que vamos a ver, es decir, me puede decir cuántas escenas hay,
00:03:24
en qué escena estoy, cargar escenas en background de forma síncrona para hacer pantallas de cargando.
00:03:28
Tenéis, como podéis ver, las opciones que me salen, los métodos.
00:03:35
Es el de load scene, cargar escena, que es la que voy a usar yo ahora.
00:03:38
Y ahora él me está pidiendo o el nombre de la escena, ¿vale?
00:03:41
es escena 2 poner bien el nombre porque si no no va a funcionar entonces ahora mismo si yo lanzo
00:03:45
el juego yo este personaje ya lo tengo controlado mediante mi mando entonces lo voy a dirigir hacia
00:03:55
este cubo que se supone que en cuanto entre en contacto con él efectivamente cambiamos de escena
00:04:01
que no quiero depender del nombre porque puedo cometer errores en la ortografía o porque a lo
00:04:06
A lo mejor esa escena luego cambia de nombre y se me estropea todo.
00:04:14
Pues entonces le llamo a su identificador.
00:04:16
Que lo teníamos, recuerdo, en el Build Settings.
00:04:20
Allá vamos.
00:04:25
Y ahí está. Funciona exactamente igual.
00:04:26
Bien, y quien dice al tocar, pues puede ser cualquier otra cosa.
00:04:30
Es decir, cuando me matan, pasar a la escena de Game Over.
00:04:34
Cuando le doy al botón de iniciar juego, pasar a la escena de nivel 1.
00:04:38
Ahora, y antes de terminar, una cosa que nos va a venir muy bien. ¿Cómo conseguimos que unas variables estén disponibles en todas las escenas? Esto es muy habitual. Imaginemos que voy ahí con un jugador de nivel en nivel, pero necesito guardar lógicamente sus variables de tipo vida, energía, inventario, en fin. No puedo ser que cada vez que empiece una escena todas esas variables desaparezcan.
00:04:42
Pues bien, para eso está la variable de tipo estática. Una variable estática, dicho así con la teoría, es básicamente que en programación orientada a objetos, cada vez que creamos una clase, y os recuerdo que cada vez que creamos un script estamos generando una clase,
00:05:05
luego lo que hacemos es generar instancias de esa clase, lo que se llaman objetos. Y cada objeto tiene lo que se llama un encapsulamiento, es decir, que es independiente de los demás.
00:05:21
Eso no nos permite que cada objeto reproduzca los métodos o los atributos de esa clase de forma independiente sin entrar en conflicto con los demás objetos o las instancias de esa clase.
00:05:29
Pero cuando en una clase generamos una variable estática, y aquí viene lo interesante, cada vez que modificamos el valor de esa variable se verá modificado en todas las instancias de esa clase.
00:05:40
Es decir, que se reproducirá en todos los objetos.
00:05:55
lo vamos a comprobar aquí de una forma muy gráfica
00:05:58
para ello voy a generar un nuevo script
00:06:01
y le voy a llamar global bars
00:06:03
voy a crear una variable pública
00:06:07
pero en este caso le voy a llamar de tipo estática
00:06:09
y va a ser de tipo número entero
00:06:14
y le voy a llamar energy
00:06:16
porque va a ser la energía de nuestro personaje
00:06:19
voy a crear una función de update
00:06:20
que lo que va a hacer es que cada fotograma le va a sumar uno
00:06:22
¿Y esto para qué lo hago? Para que veamos que cuando paso de una escena a otra, la energía no se va a resetear, sino que va a seguir por donde estaba, independientemente de la escena en la que esté hoy.
00:06:27
Vamos a comprobarlo. Voy a crear un nuevo empty, que le voy a llamar InitGame, y me voy a ir a la escena 2, donde voy a crear otro script inicial y le voy a guardar también, le voy a adjuntar ese script.
00:06:38
y en ese script no solo le voy a ir sumando
00:06:55
sino que además le voy a decir que me lo muestre en consola
00:06:59
guardar
00:07:01
conclusión, ahora mismo si lanzo el juego
00:07:05
veremos en consola
00:07:09
que efectivamente está aumentando mi energía
00:07:11
voy ahora mismo por 300, 400, 500
00:07:14
pues bien, voy a pasar el portal dimensional y voy a ir a la escena 2
00:07:17
y en la escena 2 volverá otra vez a lanzarse ese script
00:07:21
diciéndome cuánto es mi energía
00:07:23
la lógica nos dice que debería ser cero porque inicia una escena nueva
00:07:25
pero al ser una variable estática, cada vez que la hemos modificado
00:07:28
nos fijamos que la energía sigue
00:07:31
esto nos permite ir creando variables estáticas
00:07:38
que se van reproduciendo a lo largo de todas nuestras escenas
00:07:42
- Idioma/s:
- Materias:
- Programación, Imagen y Sonido
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Autor/es:
- Alvaro Holguera Gozalo
- Subido por:
- Alvaro H.
- Licencia:
- Reconocimiento - No comercial - Compartir igual
- Visualizaciones:
- 57
- Fecha:
- 21 de octubre de 2025 - 9:11
- Visibilidad:
- Público
- Centro:
- CFP JOSÉ LUIS GARCI
- Duración:
- 07′ 52″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 157.70 MBytes