Saltar navegación

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 pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 21 de octubre de 2025 por Alvaro H.

57 visualizaciones

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.

Descargar la transcripción

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:
es
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

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid