Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Primeros pasos en Unity: introducción a los prefabs - 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:
Vídeo resumen de introducción a los prefabs
Vamos a ver uno de los elementos más útiles y que más utilizaremos a lo largo del curso
00:00:05
y que, de hecho, si aprendemos su verdadera potencialidad, pues le sacaremos mucho partido.
00:00:12
Bien, para ello voy a coger una escena vacía y voy a crear algunos elementos al azar,
00:00:18
como por ejemplo un cubo, una esfera, la voy a poner un poquito más arriba,
00:00:22
incluso la voy a escalar para que sea un poquito más pequeña, un cilindro también.
00:00:27
Voy a escalar. Entonces, como podemos ver aquí, en mi ventana de jerarquía, pues tengo tres elementos.
00:00:32
Y vamos a exponer que un elemento prefabricado va a contener muchos elementos dentro, siguiendo su propia jerarquía.
00:00:37
Para entenderlo, pues he creado esas tres, en las que, por ejemplo, la esfera depende del cubo y a su vez el cilindro depende de la esfera.
00:00:43
Así que, bueno, usamos lo que ya conocemos como la jerarquía, de forma que si yo desplazo el cubo, pues lógicamente todo lo demás se desplaza.
00:00:49
Bueno, esto es solo un ejemplo para ver que realmente cuando creamos un prefabricado
00:00:56
lo podemos crear tan complejo como queramos.
00:00:59
Pues ahora mismo, si este elemento con sus hijos que están debajo
00:01:02
lo arrastro a mi ventana de proyecto, que la tengo aquí debajo yo,
00:01:06
en mi disposición de las ventanas,
00:01:09
veremos automáticamente que aparece un elemento con el mismo nombre
00:01:12
y con un iconito que es azul.
00:01:14
¿Qué significa? Que a partir de este momento es un prefab.
00:01:16
De hecho, el elemento que teníamos en el escenario también ha cambiado su icono
00:01:18
indicando que es un prefab.
00:01:22
e incluso la ventana del inspector, veremos que ha cambiado
00:01:23
y ahora aparece este menú
00:01:26
y aparte de algunas cositas más que en elementos
00:01:28
o en GameObjects normales no aparecen
00:01:30
pues bueno, también indicando que es un prefabricado
00:01:32
normalmente cuando hacemos esto
00:01:35
el GameObject que teníamos en la escena
00:01:36
lo podemos borrar directamente
00:01:38
porque ya lo tenemos aquí
00:01:40
y vemos ahí la apariencia que tiene
00:01:42
y de hecho yo lo puedo llevar
00:01:44
y esta es la potencia o la verdaderamente útil
00:01:46
de un prefabricado, es que si yo lo traigo a la escena
00:01:48
pues aparecerá
00:01:50
Y si lo traigo a la escena, pues también. Y si lo traigo a la escena, pues también. Y lo puedo traer a la escena tantas veces como yo necesite. Ahí tenemos lo que se llaman instancias del prefabricado. ¿Y dónde está lo realmente útil? Pues que yo, si me voy a mi prefabricado original, que lo tengo aquí en mi proyecto, y lo modifico, voy a darle aquí a Open Prefab, vemos que automáticamente la ventana de escena, ya no estoy en la escena, sino que estoy editando ese prefabricado.
00:01:52
Y aquí tengo acceso a los elementos primitivos de los que se compone el prefabricado.
00:02:18
Ahí lo tenemos, igual que los había creado anteriormente en la escena.
00:02:23
Eso significa que si en un momento dado veo que, por ejemplo, este cilindro lo necesito un poquito más arriba,
00:02:26
o esta esfera la necesito un poco más ancha, y este cubo lo necesito también a lo mejor más ancho,
00:02:33
lógicamente al modificar uno se modifican todos porque son hijos.
00:02:42
Es decir, vamos a suponer que esto era exactamente lo que yo quería.
00:02:46
Me voy a volver otra vez a la escena.
00:02:48
Si nos fijamos, todos se han modificado.
00:02:50
Vayamos más allá y entendamos que el prefab no solo puede albergar game objects o objetos en 3D,
00:02:52
es que también puede albergar scripts.
00:02:58
Ejemplo, vamos a hacer un prefabricado que se desplace de forma continua en uno de los ejes
00:03:00
y veremos cómo automáticamente cualquier instancia que cree de ese prefab también se desplazará.
00:03:05
Y para ello voy a crear un script, por ejemplo, prefab move.
00:03:10
Si yo le doy también un doble clic al prefab que tengo en el proyecto, se me abrirá, como podemos ver ahí,
00:03:16
y aparte de sus elementos, pues tiene por supuesto sus componentes, todos los que yo quiera, entre ellos, por supuesto, los scripts.
00:03:22
Y si yo a partir de ahora escribo cualquier script, se aplicará al prefab original y a todas las instancias que cree.
00:03:28
Es decir, que si yo le hago que se mueva de forma permanente, pues todas las instancias se moverán de forma permanente.
00:03:34
De hecho, si yo ahora en mi prefab le aplico el método transform translate, vamos a utilizar un vector 3.
00:03:39
Si le decimos que utiliza alguno de sus métodos, encontraremos que tiene métodos como left, como down, como up.
00:03:49
Le voy a decir que se mueve hacia la izquierda.
00:03:55
Por supuesto, esto, si queremos que sea del todo preciso, deberíamos multiplicarlo por time delta time
00:03:57
para que el movimiento sea independiente del número de fotogramas por segundo que se está
00:04:04
ejecutando el juego. Me vuelvo otra vez a la escena. Recuerdo que para volver del prefab a la escena
00:04:10
lo tenemos aquí a la izquierda. Voy a la escena y creo una instancia de mi objeto.
00:04:13
Voy a mover un poquito para arriba y le voy a dar a play. Y ahí lo tenemos, desplazándose el objeto.
00:04:18
Es un buen momento, ya que estamos, para ser también del todo precisos, no puedo evitar
00:04:27
crear una variable a la que pueda tener acceso desde Unity
00:04:31
que sea de tipo float, que se llame speed
00:04:36
y cuyo valor inicial sea a lo mejor 10
00:04:39
por supuesto con una F para indicar que es un float
00:04:42
y este vector 3 que movía hacia la izquierda
00:04:44
y que multiplicaba por delta time, pues a su vez también lo voy a multiplicar
00:04:48
por la velocidad
00:04:50
de forma que ahora mismo tengo un desplazamiento del objeto
00:04:52
pues aparte de que se moverá más rápido, también puedo controlar su velocidad
00:04:56
a través del parámetro este
00:04:59
incluso que se me haga hacia atrás
00:05:00
ya tengo un prefab
00:05:02
pero tenemos que recordar siempre que
00:05:05
esto
00:05:07
que tenemos aquí
00:05:08
es una instancia del prefab
00:05:10
que tenemos en nuestro proyecto
00:05:13
¿y qué hemos aprendido? que podemos instanciarlo
00:05:15
tantas veces como queramos
00:05:17
y que todas las instancias
00:05:18
tienen ese script asociado, es decir, que si le doy
00:05:21
al play, todos
00:05:23
los prefabs se moverán
00:05:24
ahí están
00:05:27
esto es interesante porque si nos fijamos
00:05:28
cada una de estas instancias tiene el script asociado
00:05:31
pero yo en cada una de ellas le puedo cambiar el parámetro
00:05:36
de velocidad y eso significa que se moverán
00:05:39
a distinta velocidad cada uno, ahí está, si nos fijamos
00:05:46
en las instancias que hemos creado de este prefab, veremos aquí arriba a la derecha una opción
00:05:51
que cuando aplicamos algún cambio, en este caso hemos aplicado un cambio
00:05:55
al parámetro de velocidad, pero bueno, podríamos aplicar
00:05:59
cambios a cualquiera de sus componentes
00:06:01
pues bien, si venimos aquí
00:06:03
donde pone Verides
00:06:05
pues aplicará ese cambio
00:06:06
a el prefab original
00:06:08
como podemos ver, lo vamos a comprar otra vez
00:06:12
voy a seleccionar cualquiera de las 6 instancias
00:06:14
le voy a cambiar la velocidad
00:06:15
a 6
00:06:17
él automáticamente me detecta que ha habido un cambio
00:06:18
en este caso en el script
00:06:21
le digo que aplique esos cambios
00:06:22
al prefab
00:06:25
y si me voy efectivamente al prefab original
00:06:26
veremos que efectivamente ahora tiene una velocidad de 6.
00:06:29
- Idioma/s:
- Autor/es:
- Álvaro Holguera
- Subido por:
- Alvaro H.
- Licencia:
- Reconocimiento - No comercial - Sin obra derivada
- Visualizaciones:
- 118
- Fecha:
- 25 de septiembre de 2024 - 0:16
- Visibilidad:
- Público
- Centro:
- CFP JOSÉ LUIS GARCI
- Duración:
- 06′ 32″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 130.54 MBytes