Saltar navegación

Tutoría 7 - DEIM - UT3 y 4 - Curso 23·24 - 20 Febrero - 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 20 de febrero de 2024 por Daniel M.

11 visualizaciones

Grabación de tutoría de DEIM,

Descargar la transcripción

Esto es un proyecto, digamos que he creado de cero, que no es un proyecto con la plantilla 3D, como crearéis vosotros al empezar cada práctica. 00:00:00
Y uno de vosotros me ha entregado lo que es un package. Cuando lo veáis en el navegador, en el explorador, vais a ver este iconito con la extensión Unity Package. 00:00:12
Es verdad que este compañero, entiendo que con buen criterio me lo ha entregado así, pero yo lo que pedía en la práctica, que esto es importante, y ahora os voy a decir el porqué además, es que me lo entreguéis como el proyecto. 00:00:27
Es decir, como soléis hacer todos, que es una carpeta que tiene todos los assets. Se suele indicar que la library sí se puede borrar porque al cargarlo en otro ordenador se genera sola si el resto del proyecto está bien configurado. 00:00:39
Pero hay otra opción que es trabajar con los packages. 00:00:54
De hecho, vosotros ya en alguna de las lecciones se habla, y esto es importante porque dentro de alguna más adelante va a ser imprescindible usarlo, tenemos la opción del Package Manager. 00:00:57
Y en este Package Manager están los proyectos que estamos usando en el propio proyecto, que serían los que están aquí en la sección de información. 00:01:16
Y no hay ningún paquete instalado de momento, pero sí que es verdad cuando vayamos adelante que, por ejemplo, cuando leyerais el apartado del tema 2 sobre los Input Systems, que eran esos nuevos métodos que Unity captará las interacciones más avanzados y por eso no nos estamos metiendo mucho, pues sí que había que, por ejemplo, buscar los Input Systems, que es un sistema, bueno, pues es una especie de librería que hay que instalar. 00:01:27
Y da más funcionalidades. De hecho, aquí están los packages que vienen por defecto y vemos que no hay ninguno. 00:01:57
Pero bueno, por ejemplo, cuando creamos un proyecto 2D, que en el tema 5 habrá que hacerlo, al crear un nuevo proyecto, desde el Unity Hub, al hacer un nuevo proyecto, dentro de estos presets, de estas plantillas, el de 2D, si nos fijamos bien, hay un apartado que nos indica en el leer más, creo que esto ya más o menos lo comenté, 00:02:03
pero que trae algunos paquetes importantes. 00:02:25
Pues, por ejemplo, para editar sprites, ¿vale? 00:02:27
Y igual que hay paquetes que nos ofrece Unity o funcionalidades que también, funcionalidades que podemos bajar incluso desde la Unity Asset Store, ¿no? 00:02:31
Que esto en el tema aún no se vio, pero es esta otra sección que se puede acceder, ¿vale? 00:02:40
Si abrimos el buscador, pues un market, ¿no? Una tienda con diferentes, a ver si me deja rechazar esto, ¿vale? 00:02:45
Con diferentes assets o scripts. 00:02:54
O incluso juegos que se pueden usar, pues algunos gratis y otros no. 00:02:57
Esos, digamos, componentes, estos artículos se pueden conseguir y se instalarían a través de un package en nuestro proyecto, ¿vale? 00:03:02
Esto lo digo, esto sin duda lo vamos a usar en siguientes temas, pero también existe lo que se llaman los custom packages, que es algo parecido, pero no exactamente lo mismo. 00:03:12
Cuando tenemos aquí los assets, todo lo que vamos trabajando, aquí solo hay una escena vacía, porque es la que viene. 00:03:21
Por defecto, sí que podemos, mediante clic derecho en esta carpeta de assets, usar estas tres opciones en las que pone lo de package, ¿vale? 00:03:27
Y una es exportar un package que, por ejemplo, serviría para exportar todo lo que tengamos aquí en el proyecto. 00:03:38
Es decir, hay una forma muy cómoda de compartir proyectos que es, yo comparto todo lo que tengo en el panel proyecto en sus assets, que es desde scripts, las escenas con toda la configuración de jerarquía que haya y los componentes, etc. 00:03:45
Y es muy cómodo para exportar un package que te pedirá cuál de los elementos, veis que aquí solo tenemos esta escena, a medida que vayáramos poblándola con más elementos, podríamos ir eligiendo si los exportamos o no, para guardarlo como un package, ¿vale? 00:03:57
Entonces, luego, cuando abriéramos el proyecto en otro ordenador o en otra versión, lo que podríamos hacer, que es lo que nos ha pasado el compañero, es importar un package, lo que se llama un custom package. 00:04:17
Un package, un paquete customizado, creado por un usuario, vamos a decir, un usuario estándar, que no es un desarrollador propiamente dicho. 00:04:27
Cuando vamos a ese custom package, lo que nos deja es seleccionar precisamente un package de este estilo, ¿vale? 00:04:37
Y veis que tiene el icono, etc. 00:04:44
Cuando lo abrís, aquí, igual que antes salían las opciones que teníamos en los assets para exportar, aquí nos indica, porque podemos desmarcar. 00:04:46
Cuando vamos a ver cuál queremos importar o no en nuestro proyecto, en el proyecto en el que estemos ahora mismo, vendrán todos los assets tal y como los tuviéramos organizados, ¿vale? 00:04:57
Es decir, digamos que este compañero, cuando hizo esta operación de exportar el package, pues metió todos estos elementos que tenía él en su proyecto, ¿vale? 00:05:07
Vais a ver, y ahí ya me sirve para deciros esto, esta advertencia que lo que significa es, oye, en el proyecto en el que lo vas a importar es que ya hay una carpeta de Samastins. 00:05:17
Entonces, si metes este... 00:05:24
Esta sección, con alguno de los assets, va a haber que sobreescribir, por eso aparece ese icono, ¿vale? 00:05:27
Bueno, en ocasiones, por ejemplo, en este caso, que me da igual lo que haya, pues no importaría porque la advertencia, bueno, pues está bien tenerla clara, pero en este caso no hay duplicados importantes que no quiera eliminar. 00:05:34
Pero sí que es verdad que hay veces que muchos llamamos a un script de control del jugador, player controller, por ejemplo, y si se llamaran igual los scripts, aunque fueran diferentes... 00:05:47
...completamente distintos, saldría una advertencia de este estilo y hay que tener claro si queremos que sobreescriba uno al otro, ¿vale? 00:05:57
¿Qué ocurre? Yo cuando importo esto, ¿vale? Vais a ver que le da a importar, tardará un poquillo, y lo que va hecho básicamente es meter dentro de este proyecto todos estos assets. 00:06:05
Que ya os digo que si no se sobreescriben, pues se añadirían a las que ya tenemos, ¿vale? 00:06:17
En ocasiones también puede haber problemas y... 00:06:24
...ese problema de los packets que hay que ir resolviendo. ¿Por qué? Porque aunque este paquete tuviera todos los assets bien configurados, si hay opciones que son concretas de los proyectos. 00:06:27
Por ejemplo, en este tema ya estamos viendo que para pasar de un nivel a otro hay que recurrir a las build settings para ir incorporando los niveles. 00:06:38
Que si os fijáis, las escenas existen aquí, pero no están configuradas en el build settings dado que el proyecto que yo he creado de cero, en ningún momento ha habido nada que le diga... 00:06:47
...oye, pues... 00:06:56
...este es la escena con el índice cero, uno, dos o tres, ¿no? Por decir algo. 00:06:57
¿Qué significa eso? Que aunque me compartáis un package, que en ciertas ocasiones para compartir ciertos elementos de un proyecto está muy bien, sí que es verdad que no sustituye a compartir el proyecto completo. 00:07:03
Cuando me compartís el proyecto completo, los project settings, los build settings, distintas configuraciones, sí están guardadas porque es el proyecto en sí, es toda la carpeta del proyecto. 00:07:13
Aquí, aunque el compañero me pasara esto, yo puedo intentar recrear, pues, que imagino que esta sería la escena uno. 00:07:21
Cero, perdonad, con el índice cero, pues igual no lo estoy configurando bien. 00:07:27
O imaginaos que los inputs de mover la pelota, yo en los project settings, voy rápido porque estas son cosas que ya hemos visto, en el input manager quizá hayamos aludido a un axis que se llama horizontal 2. 00:07:32
Claro, estos axes no existen, los habrá creado el compañero quizá en el momento de hacerlo y, de hecho, probablemente alguno de estos errores vengan... 00:07:49
...en este sentido, porque está llamando a axis o a componentes que no vienen configurados, que son propios del proyecto, ¿vale? 00:07:57
Y, entonces, esto genera muchos conflictos y, aparte, a mí no me deja corregir la versión o lo que vosotros habéis hecho realmente, porque tendría que adivinar un poco y recrearlo, ¿vale? 00:08:06
Por eso, está muy bien que sepáis lo que es un custom package y, de hecho, es muy útil para usarlo y para compartir recursos o un script incluso, pero tened en cuenta que no es sustitutivo del proyecto. 00:08:15
¿Vale? 00:08:27
Es lo que se suele pedir, de hecho, es lo que se pide en las entregas, ¿vale? 00:08:27
Que es lo que asegura que, de verdad, estemos viendo el proyecto, yo corrigiendo el proyecto que habéis hecho y, bueno, el trabajo que habéis hecho, ¿vale? 00:08:32
Eso por un lado. 00:08:43
Este proyecto me sirve para ver algunas cosas que quiero que veamos de cara a... 00:08:46
Bueno, pues que no sucedas. 00:08:52
Por ejemplo, este compañero... 00:08:54
¿Vale? 00:08:56
Voy a hacer un poco... 00:08:57
Voy a hacer un poquito más grande este... 00:08:57
El panel de game. 00:08:59
¿Vale? 00:09:02
Cuando el otro día, de hecho, me planteó algunas dudas que, bueno, el problema de esto, ¿veis? 00:09:03
Que ya da fallo porque hasta que no consigamos corregir estos problemas que tenemos aquí, pues va a haber problemas. 00:09:09
Y si nos fijamos en tipo collider... 00:09:17
Bueno, os vais a fijar que empiezan a surgir un montón de problemas, la mayor parte de ellos derivados de que hay scripts... 00:09:19
Que aquí no encuentra, aunque realmente sí que estarán entre los scripts generados. 00:09:27
Por ejemplo, esto que se llama mover bola sí que existe y habría que rehacerlo. 00:09:34
¿Vale? 00:09:41
Bueno. 00:09:41
No me quiero parar mucho en... 00:09:42
A ver... 00:09:45
Espera, perdonad. 00:09:46
Porque no sé por qué está dando este fallo. 00:09:48
Pero vamos, todo se deriva de eso, de que precisamente habrá palabras o expresiones que no están correctamente. 00:09:49
Aquí, por ejemplo, no está encontrando un RigidBody. 00:09:57
Porque no está encontrando el RigidBody que debería estar asociado. 00:10:00
¿Vale? 00:10:04
¿Veis? 00:10:04
Que esto empieza a convertirse en una consecución de problemas por este tipo de compartir el proyecto así. 00:10:05
¿Vale? 00:10:14
Entonces es importante que lo hagamos de esta manera. 00:10:14
De todos modos, hay una cosa muy importante que es, sobre todo lo que quiero que repasemos en este caso, 00:10:18
que es que fijaos que este compañero... 00:10:24
La bola le puso un Box Collider, ¿vale? 00:10:27
Que si os fijáis en el área que demarca este Box Collider, no se adecua a la forma de la pelota. 00:10:31
¿Vale? 00:10:36
¿Qué ocurre? 00:10:36
Y a ver, el problema está en que voy a tener que arreglar esto porque si no, no va a ir correctamente. 00:10:37
No lo voy a poder enseñar. 00:10:44
¿Vale? 00:10:45
De una forma muy rápida, voy a configurar los niveles que entiendo que van a estar en este orden, 00:10:45
tal cual se llaman las escenas. 00:10:51
¿Vale? 00:10:53
Eso por un lado seguramente... 00:10:53
Evita algunos problemas. 00:10:55
Y luego hay problemas de tipo que no encuentra Rigid Bodies, etc. 00:10:58
Vale. 00:11:06
Parece que está teniendo muchos conflictos con los componentes. 00:11:07
Y no debería porque... 00:11:11
A ver... 00:11:13
Porque básicamente son componentes por defecto. 00:11:14
Employer Settings, ¿vale? 00:11:20
Eso es que hay alguna configuración que no ha hecho correctamente. 00:11:22
Entonces, pues eso. 00:11:25
Yo a la hora de corregir en algunos casos he tenido que ir recreando todo esto para que funcionara. 00:11:27
Por ejemplo, Box Collider. 00:11:32
Vale. 00:11:36
Y aquí está habiendo un problema porque no me está mostrando algunos tipos de scripts. 00:11:37
Y probablemente se deba a que al crear el proyecto, 00:11:41
alguno de los componentes de Package Manager se ha sobrescrito también. 00:11:46
¿Vale? 00:11:50
Voy a rehacer el proyecto. 00:11:51
Hacemos una prueba rápida para ver si... 00:11:53
¿Se debe a eso? 00:11:55
Porque si no, la verdad es que voy a pasar al otro proyecto porque básicamente no se puede perder mucho más tiempo. 00:11:56
¿Vale? 00:12:06
Y se debe seguramente a que he generado un proyecto que está en un disco duro que ahora mismo no estoy empleando. 00:12:07
Entonces, vamos a ver. 00:12:13
Proyecto Pesteo. 00:12:15
Voy a llamar así y lo guardo en el escritorio, por ejemplo. 00:12:17
Y lo creo. 00:12:21
Importante, ya me sirve. 00:12:22
Cuando creéis el proyecto... 00:12:23
En ocasión... 00:12:24
En ocasión, eso vendrá marcado lo de conectar al Unity Cloud. 00:12:25
Por favor, desmarcadlo porque si no es una opción también que guarda entre versiones. 00:12:28
Y como no vamos a usar el Unity Cloud, cuando yo abro los proyectos también puedo dar problemas. 00:12:32
¿Vale? 00:12:35
Voy a crear un proyecto de 3D. 00:12:36
A ver si lo hace de manera rápida. 00:12:38
Se está abriendo. 00:12:41
Aquí está. 00:12:46
Vale. 00:12:47
Vale. 00:12:48
A ver si ahora sí que funciona correctamente. 00:12:49
¿Veis que cuando se está instalando? 00:12:53
Se está generando un proyecto. 00:12:55
Los paquetes se están creando. 00:12:58
Y de hecho, algo pasaba con los paquetes porque en el anterior no había ningún paquete instalado y eso no es normal. 00:13:00
A ver en este caso si lo hace de manera correcta. 00:13:05
Vale. 00:13:11
Ahora en el proyecto vemos que los paquetes sí tienen unos cuantos instalados y ahora no va a dar ese problema. 00:13:12
Vuelvo a instalar, a importar el Custom Package. 00:13:17
Le digo que todo se importe. 00:13:20
Y ahí lo tenemos. 00:13:25
¿Vale? 00:13:26
Ahora los fallos al menos no salen rojos. 00:13:27
Lo de antes no era normal. 00:13:28
¿Vale? 00:13:29
Porque habría estado trasteando antes con el proyecto, antes de empezar la tutoría y algo ha pasado que he borrado estos paquetes que venían por defecto. 00:13:29
Que ojo, y ya me sirve para hablar de esto. 00:13:36
Los paquetes que están instalados son los que están en esta sección de InProject. 00:13:39
¿Vale? 00:13:43
Si en algún momento queremos buscar algún paquete que Unity suele considerar como por defecto de los que se suelen instalar, habría que dar a este Unity Registry. 00:13:44
¿Vale? 00:13:54
Y si queremos usar los que hemos descargado del Asset Store, habría que ir a estos de My Assets. 00:13:54
Que ahora mismo, no sé si, no sé cuáles aparecerán, pero estos digamos que son los diferentes paquetes que yo he ido adquiriendo con mi cuenta. 00:14:00
¿Vale? 00:14:08
Recordad que para poder usar Unity tenéis que registraros con una cuenta. 00:14:08
¿Vale? 00:14:13
Pues yo aquí ya es donde digamos que está el enlace para poder descargar e instalar cada paquete en nuestro proyecto. 00:14:14
Pero ojo, no salen todos los proyectos. 00:14:22
Hay que ir definiendo en qué parte se sitúa ese paquete. 00:14:24
¿Vale? 00:14:32
Bueno, vuelvo a los scripts. 00:14:33
Voy a cargar la escena 1. 00:14:38
Voy a configurar los Build Settings. 00:14:40
Que eso, veis que otra vez, como se genera un nuevo proyecto, pues hay que hacerlo. 00:14:42
Y creo, si no me equivoco, corregir que era como sugerían los números. 00:14:47
Y ahora le doy al Play. 00:14:51
Y ahora sí que quiere funcionar. 00:14:54
Fijaos que hay un problema que es que esa bola está botando y además está como flotando, si os fijáis en la sombra. 00:14:56
¿Vale? 00:15:05
Ojo, esto es importante. 00:15:06
Fijaos en el Collider que tiene. 00:15:07
Aquí tiene un Box Collider que en ningún momento sería la opción por la que yo apostaría para una bola. 00:15:09
Y además cuando se crea un, como imagino que haría el compañero, una esfera, ya viene con su propio Sphere Collider. 00:15:16
Que veis que sí se adapta a la forma de la bola. 00:15:22
¿Vale? 00:15:24
Entonces en algún momento debió de borrar ese Collider e incorporar uno de tipo Box Collider. 00:15:25
¿Qué problema tiene? 00:15:30
Que claro, esto no va a funcionar nunca como una bola porque va a ir como rotando. 00:15:31
Y vamos a ver, voy a acercarme aquí para que lo veamos. 00:15:35
Fijaos en cómo está avanzando la bola. 00:15:39
¿Vale? 00:15:42
Sí, se le incorpora una fuerza pero va con esos picos. 00:15:43
Esto jamás va a funcionar bien. 00:15:46
Y luego cuando nos metamos en el agujero, pues si se engancha de algún pico, tampoco entrará ahí. 00:15:48
¿Vale? 00:15:52
Eso por un lado. 00:15:53
Y luego aparte está habiendo un problema con el nivel al que estoy yendo. 00:15:55
Porque nuevamente los Build Settings, pues igual yo he puesto que el siguiente nivel debería ser el 1. 00:16:00
Y veis que se ha recargado el mismo. 00:16:06
¿Vale? 00:16:08
Vale, más cosas. 00:16:09
Importante, ¿eh? 00:16:10
El Collider, la forma del Collider que estemos haciendo. 00:16:11
Y veis que si yo quito este Box Collider, lo elimino y añado un Sphere Collider. 00:16:14
Ahora... 00:16:21
Ahora esto va a funcionar de una manera mucho más correcta. 00:16:22
¿Vale? 00:16:26
Es verdad que sigue flotando por algún motivo que ahora podemos revisar. 00:16:27
Que es básicamente que creo que el Collider de lo que es la tabla tampoco está correctamente establecido. 00:16:31
¿Vale? 00:16:39
Pero veis que al menos al girar no da esos saltos que se originaban antes por esos picos. 00:16:40
¿Vale? 00:16:45
Vamos a ver la tabla, el colisionador. 00:16:46
Y aquí hay otra cosa que me llama la atención. 00:16:49
Que es... 00:16:51
Fijaos. 00:16:52
Si me pongo yo en el borde, no se ve muy bien, pero fijaos que la línea del Collider sobresale un poco sobre la tabla. 00:16:53
Si me pongo así al trasluz, fijaos que aquí hay un hueco que no es la de la tabla. 00:17:00
¿Vale? 00:17:05
Eso significa que se va a elevar por encima de la tabla y va a dar problemas. 00:17:06
El compañero ha hecho básicamente las operaciones de buena manera. 00:17:12
Pero sí que... 00:17:18
A ver si vemos... 00:17:19
Si nos fijamos aquí, hay algo que no tiene sentido, que es que un mismo elemento tiene dos Colliders. 00:17:20
¿Vale? 00:17:27
Se pueden tener dos Colliders en un mismo GameObject si uno de ellos, o más incluso, si uno de ellos o varios son Triggers. 00:17:28
Porque al final solo va a servir para demarcar áreas que, como vimos el otro día, activan o desactivan o generan por código cambios. 00:17:34
¿Vale? 00:17:43
Pero si ninguno de ellos es Trigger, los dos están funcionando como colisionadores. 00:17:44
Y en un... 00:17:48
En una estructura como esta, que básicamente es una tabla en la que además le damos el área del Collider, 00:17:49
este Boss Collider, en principio, yo creo que es fácilmente eliminable. 00:17:56
¿Qué problema hay? 00:18:05
Que aquí, por alguna razón, ahora podemos investigar, la forma del Collider no se está ajustando a la de la Maya. 00:18:07
¿Vale? 00:18:17
Y esto se debe en parte a que en este nivel, a diferencia de los otros dos siguientes que había que mover la tabla, pues se está repitiendo lo que es el Collider. 00:18:18
Y importante, si veis este icono que hay aquí, esto aparecía en las indicaciones de la tarea, significa que es un paquete también, otro package otra vez, pero de otro tipo que es un FBX. 00:18:31
¿No? 00:18:42
Si vamos, entiendo que está en terreno. 00:18:43
El compañero metió aquí las tres mayas. 00:18:45
Y cuando se genera un paquete FBX, vais a ver que dentro tiene distintos elementos. 00:18:47
¿No? 00:18:55
Por un lado tiene lo que es la geometría bruta. 00:18:56
¿Vale? 00:18:59
Otro el material y otro el GameObject. 00:19:00
¿Vale? 00:19:03
Que básicamente bebe de esta Maya, pero incorpora ya la visualización de esa Maya, digamos que hace el combinado de los otros dos elementos. 00:19:04
¿Qué sucede? 00:19:12
Que yo en la práctica os pasé en los materiales. 00:19:13
Para este primer elemento, un terreno que es el de la Maya, que si recordáis era uno que tiene la Maya, digamos, con el círculo bien definido y que muestra. 00:19:16
A ver, vamos a ver si lo podemos ver. 00:19:30
Una forma, ¿vale? 00:19:33
De verlo con la Maya. 00:19:35
Un segundico, porque creo... 00:19:37
No. 00:19:39
No sé. 00:19:40
Debería haber una forma de verlo en modo Maya. 00:19:41
Ahora mismo. 00:19:44
Ahora mismo. 00:19:45
No sé si es real o me lo estoy inventando. 00:19:47
Pero en cualquier caso veis que este círculo está bien definido, mientras que si vemos el del Collider es como picudo, ¿no? 00:19:50
¿Vale? 00:19:56
Esto era porque la función que tenía uno y otro era incorporar visiblemente el GameObject de la Maya, ¿vale? 00:19:57
Que se llama diferente. 00:20:06
Y luego dentro del elemento, ¿vale? 00:20:07
Del elemento que tenemos aquí generado. 00:20:11
Vamos a darle a la geometría en el MeshCollider la Maya del Collider. 00:20:13
¿Vale? 00:20:18
¿Esto qué significa? 00:20:19
Que los paquetes, igual que vienen con varios elementos y el material por un lado, etc. 00:20:20
No siempre hay que introducirlos en conjunto como acabo de hacer aquí al arrastrarlo, ¿vale? 00:20:25
Que mete otro elemento inferior, vamos, me refiero a otro hijo, ¿no? 00:20:30
Y lo que se puede hacer es incorporar un elemento. 00:20:35
Y con la opción de prefab y desempaquetar completamente. 00:20:39
Se quedan todos los elementos por separados y yo los puedo ir utilizando a mi conveniencia, ¿vale? 00:20:42
Esto, si nos fijamos ahora, voy a desactivar este. 00:20:48
Si nos fijamos ahora, en su momento os dije también que cuando fuerais a importar un elemento, ¿vale? 00:20:52
Convirtierais las unidades, ¿vale? 00:20:59
¿Pero qué pasa? 00:21:02
Que como en este caso se va a usar, o era lo propuesto, usar la Maya por un lado y el Collider por el otro. 00:21:03
Hay que asegurarse de cambiar los dos. 00:21:11
Porque si no, que es lo que ocurre aquí, imagino. 00:21:13
Al final, si solo se cambian las dimensiones de uno y no del otro, no se van a ajustar. 00:21:17
Porque la Collider que se está incorporando, ¿vale? 00:21:21
Pues esa Maya que se está incorporando sí que está funcionando correctamente. 00:21:24
Porque si os fijáis tiene esa forma del agujero que se está planteando, pero no tiene las proporciones que debería tener. 00:21:29
¿Vale? 00:21:39
En ese caso, y vuelvo a desactivar esto. 00:21:40
Lo suyo es, primero decir, porque hemos visto que al arrastrar este Asset es realmente pequeño. 00:21:43
No mide ni un metro, que es cada uno de estos cuadrados de la cuadrícula. 00:21:51
¿Vale? 00:21:54
Pues cambiar las dimensiones para que sean de, que los considere como 0,01 mm. 00:21:55
¿Vale? 00:22:02
¿Eso qué significa? 00:22:03
Que yo ahora, a ver, cuando meta esta Maya. 00:22:04
Que la vuelvo a meter. 00:22:09
Esta Maya que voy a usar como parte visible. 00:22:10
¿Vale? 00:22:14
Y la voy a desempaquetar para yo tenerlo completamente maleable. 00:22:15
Es decir, yo por un lado voy a querer que este terreno se vea así. 00:22:21
Que veis que tiene ese agujero bien definido. 00:22:24
Y luego, aparte, yo le podría dar el material que quiera. 00:22:28
¿Vale? 00:22:31
El material que yo quiera, pues de madera, por ejemplo. 00:22:32
Como los que están aquí. 00:22:36
Bueno. 00:22:37
Habría que crear este material. 00:22:38
Este que había creado el compañero para la bola. 00:22:40
¿Vale? 00:22:42
Y luego, aparte, en este terreno, para que tenga una superficie sólida, pues habrá 00:22:43
que ponerle este Mesh Collider. 00:22:49
Porque recordemos que si no hacíamos esto de esta forma, no contemplaría el agujero. 00:22:51
¿No? 00:22:58
Entonces, ahora lo que sí que vamos a hacer es decir, vale, yo quiero que coja como Maya, 00:22:59
no el propio terreno. 00:23:04
Porque es la versión de alto poligonaje de esta Maya, sino el terreno Collider. 00:23:06
Y ahí lo tendríamos ya listo para que cuadre. 00:23:11
Y ahora, no debería haber problema. 00:23:14
Bueno. 00:23:16
El problema de esto es que la bola no se dice la proporción. 00:23:17
Debía de ponerle unas proporciones distintas a las que vienen por defecto o a las que se 00:23:20
convierte cuando aquí cambiamos la unidad. 00:23:27
¿No? 00:23:30
Pero, esto simplemente con variar. 00:23:31
El... 00:23:34
El tamaño de la bola, pues para que sea un poco más grande, lo hizo más pequeño, 00:23:35
por ejemplo. 00:23:40
Lo voy a poner de dos. 00:23:41
Dos y dos. 00:23:42
Que quizás es un poco demasiado grande. 00:23:43
Voy a poner de uno. 00:23:44
¿Vale? 00:23:45
Que sea de las medidas por defecto. 00:23:46
¿Vale? 00:23:48
Y ahora, la rueda veis que sí que se posa y gira. 00:23:49
¿Vale? 00:23:52
Y habría que ajustar la cámara, que ahora mismo no. 00:23:53
Etcétera. 00:23:55
¿Vale? 00:23:56
Importante eso. 00:23:57
Que nosotros, aunque tengamos un paquete FBX, lo podemos desempaquetar para ir jugando con 00:23:58
los distintos elementos. 00:24:02
¿Vale? 00:24:03
Más cosas. 00:24:04
Perdonad, que lo tengo por aquí apuntado. 00:24:05
Bueno, eso. 00:24:08
Que es raro. 00:24:09
Esto es importante. 00:24:10
Que como regla, en un mismo GameObject haya más de un Collider, a no ser que se emplee 00:24:11
como Trigger. 00:24:16
¿Vale? 00:24:17
Si hay varios, al final lo que estamos haciendo es sumar distintos elementos que son físicos 00:24:18
y se van a sumar entre ellos. 00:24:24
Entonces, al final estamos añadiendo geometrías más avanzadas. 00:24:26
Que esto no es lo mismo que luego tener hijos que tienen sus propios Colliders, también 00:24:29
son físicos. 00:24:34
Y el padre al final hará como una, por ejemplo, imaginaos que yo ahora genero, por poner algo 00:24:35
de otro tipo, una cápsula bastante grande, diez, diez, bueno, igual me he pasado, cuatro, 00:24:40
cuatro, cuatro, que la hago hijo del terreno, ¿vale? 00:24:47
Que es esta malla. 00:24:50
Y yo, ¿vale? 00:24:51
Tiene su propio Collider y la pongo aquí, en el borde. 00:24:52
¿Vale? 00:24:56
Este terreno, si os fijáis, cuando yo doy al padre, está sumando los Colliders a nivel 00:24:57
físico, tanto de sí mismo como de los hijos que vaya teniendo. 00:25:03
Yo ahora mismo, si arranco el juego, ¿vale? 00:25:08
Y voy, a ver, que está un poquito para atrás. 00:25:11
Si voy hacia esta bola, veis que voy a coger carrerilla, incluso, que la considera como 00:25:14
otro elemento. 00:25:20
¿Vale? 00:25:21
Pero es raro que en un mismo GameObject haya distintos Colliders. 00:25:22
Por eso, si vamos a ir, y esto, nuevamente, que se vea, es indiferente. 00:25:27
A veces podemos tener este MeshRenderer para que no se vea inactivo, pero el Collider y 00:25:32
la esfera y el GameObject están funcionando. 00:25:37
¿Eso qué significa? 00:25:39
Que estamos sumando, digamos, distintos colisionadores. 00:25:40
Bueno, ahora como no se ve, pues me va a costar más ver dónde está. 00:25:44
Pero bueno, aquí, por ejemplo. 00:25:48
Y aquí, ahora, si cojo, hago carrerilla, porque el Collider, aunque no se vea, está 00:25:50
ahí. 00:25:54
Voy a coger carrerilla y fijaos qué placa. 00:25:55
Da ese salto porque sigue existiendo. 00:25:58
¿Vale? 00:26:00
Entonces, ya para que se vaya como zanjando el tema, no es lo mismo el MeshRenderer y 00:26:01
lo que se ve que los Colliders y hay que jugar con ellos en consecuencia. 00:26:06
Y ojo, el IsTrigger hace que no exista el colisionador como tal, como concepto físico, 00:26:11
sino como área que sirve para activar y desactivar otros elementos. 00:26:16
Luego hay otra... 00:26:23
Bueno, ahora como he cambiado la escala, seguramente ya no sea como lo tenía el compañero, pero 00:26:24
el compañero puso, a ver, un Box Collider muy pequeño, incluso con las otras medidas. 00:26:30
A ver, que no, ni me sale de lo pequeño que es. 00:26:38
Que este Box Collider, a ver, no sé, tenía la meta como un elemento muy pequeño. 00:26:42
Bueno, esto en el caso del compañero que ahora voy a explicar pasa también, pero básicamente 00:26:52
lo que había hecho era para el reinicio. 00:26:57
Cuando la bola se caía de la plataforma había puesto un Box Collider IsTrigger, ¿vale? 00:26:59
Pero que era muy pequeño. 00:27:04
Pues tened en cuenta que para que la bola, digamos, voy a tener atención cuando creáis 00:27:06
nuevos elementos, porque tenéis que aquí, tenéis que resetear siempre las coordenadas, 00:27:13
¿vale? 00:27:23
Porque si no, a veces os lo va a poner donde queráis. 00:27:24
Si vamos a usar este Box Collider como un trigger. 00:27:26
Ojo con que sea del tamaño, en este caso, que cubra toda la parte inferior de donde 00:27:28
pueda caer. 00:27:35
Es decir, se puede hacer todo lo grande que queramos, ¿vale? 00:27:36
Que si no, es decir, que si no cuando la bola se caiga, si sobrepasa ese límite que hay 00:27:39
ahí, pues no lo va a detectar, ¿vale? 00:27:45
Atención. 00:27:47
Creo que en la escena 2, si voy directamente, bueno, da igual que guarde o no, cuando vaya 00:27:48
a la escena 2 y vea el Play. 00:27:52
Vale, la escena 2, no sé si ahora he cambiado algo. 00:27:57
Como he cambiado, y atención, como he cambiado el tamaño de las geometrías, aquí está, 00:28:01
y la bola la pongo aquí encima. 00:28:06
Ah, pero ¿por qué la escena 2 es la misma que la 1? 00:28:08
Bueno, en principio, a ver, si yo juego a este nivel, vale, sí, lo tenía configurado 00:28:13
de una forma un poco extraña. 00:28:23
Vale. 00:28:25
Hizo que oscilara la plataforma, y este tipo de conflictos que están surgiendo, en parte, 00:28:26
a ver, se deben nuevamente a que la bola, una vez más, tiene, para empezar, en este 00:28:33
caso, no sé por qué lo hizo así, un Bosch Collider y un Sphere Collider. 00:28:39
Es decir, los dos Colliders están funcionando a la vez, pero también tened en cuenta que 00:28:44
si aquí hubiera un código que diga, cuando algo colisione con otro elemento, que se desencadene 00:28:49
una acción, aquí, como los dos elementos ya están colisionando desde el principio, 00:28:55
va a dar un montón de problemas. 00:28:58
Por eso, como ninguno de los dos es trigger, el Bosch Collider casi lo podemos quitar ya 00:29:00
por defecto. 00:29:05
Vale. 00:29:06
Ahora, la verdad es que las proporciones, igual eso lo he cambiado ahora yo, en el momento 00:29:07
de trabajar. 00:29:10
Bueno, aquí hay un DIO con, nuevamente, la malla tiene pinta, sí, esto ha debido de 00:29:13
ser que cuando he cambiado las proporciones, algo ha pasado porque esa bola tan pequeña 00:29:20
no puede ser. 00:29:23
Pero también lo que vi es, en este caso, que este detector del precipicio, cuando se 00:29:24
giraba la plataforma, la propia plataforma, al girarla, chocaba con él. 00:29:35
Entonces, activaba, digamos, que se reiniciara el nivel. 00:29:39
No porque la bola se cayera, sino porque ya al inclinar la plataforma, pues estaba tocando 00:29:43
un Collider, un trigger, ¿vale? 00:29:49
Y en el código estaba configurado todo. 00:29:51
De manera que, en cuanto al bolo tocara, pues ya se reiniciara el nivel. 00:29:53
Por tanto, no tiene sentido, ¿no? 00:29:56
Porque, básicamente, no estaba funcionando lo que queríamos, que es que cuando la bola 00:29:58
toque esto, sí que se reinicie el nivel, no cuando lo toque la plataforma, ¿vale? 00:30:04
Entonces, solución, se podría haber echado más para abajo este precipicio, digamos, 00:30:08
para que nunca llegue a tocar este límite, la bola cuando se descuelgue, cuando se caiga 00:30:14
por este límite. 00:30:21
Cuando se caiga por este precipicio, pues sí que toque ese Collider, ¿vale? 00:30:22
Luego hay otra cosa, esta menor. 00:30:28
Voy a volver a la escena 1, que es más visual, ¿vale? 00:30:30
Que ponía en las instrucciones que era que... 00:30:34
Bueno, y otro de los problemas que estoy viendo... 00:30:40
Bueno, es que no he guardado, ¿vale? 00:30:43
Es que el compañero había hecho cambios de escalas con la plataforma, ¿vale? 00:30:45
Y eso también puede influir luego si metemos otra... 00:30:49
Malla, como el Collider, y ese no está cambiado de tamaño, pues claro, no se está adaptando. 00:30:52
A lo mejor si esto lo pongo a las proporciones que debieran ser, pues bueno, veis que no se 00:30:58
está ajustando del todo bien al tamaño que tiene la geometría. 00:31:03
Lo que iba a decir... 00:31:08
Ah, sí, en la cámara, cuando no queramos este fondo, hay una opción dentro de su componente 00:31:10
cámara, que era lo que se requería en la práctica, que era poner un color sólido, 00:31:15
¿vale? 00:31:19
Para que el fondo tenga un color. 00:31:20
El que nosotros queramos, ¿vale? 00:31:21
Esta opción, que por defecto, pues bueno, el cielo nos puede gustar, pero en cierto 00:31:23
momento nos puede interesar que se ponga un color de fondo, más allá del escenario 00:31:27
que tengamos. 00:31:32
O incluso, pues por ejemplo, que sea... 00:31:33
Bueno, esto la verdad es que es más avanzado, pero que sea un color que nosotros queramos 00:31:39
incluso que tenga un poco de transparencia. 00:31:43
Aquí no suele funcionar, ¿vale? 00:31:45
Y esto me sirve para hablar de que siempre que tengamos... 00:31:47
Porque esto es la User Interface, nos puede interesar que tengamos una pipeta, ¿no? 00:31:50
Un selector de color. 00:31:55
Aparte de los canales RGB, también hay, digamos, un cuarto slider, que es el que muestra el 00:31:57
alfa. 00:32:05
Aquí no se ve porque es verdad que es un... 00:32:06
Está preparado este Clear Flux para que se vea el fondo de manera sólida, ¿vale? 00:32:08
Por eso pone esto de color sólido. 00:32:13
Pero en elementos, por ejemplo, de interface, con este cuarto slider, se puede hacer un 00:32:15
elemento sea completamente opaco, completamente transparente si lo ponemos en cero, o semitransparente 00:32:20
si lo ponemos en valores intermedios, ¿vale? 00:32:29
Y veis que se refleja incluso aquí, pues que va mostrando ese damero de fondo que se 00:32:31
usa también en otras aplicaciones como en After Effects. 00:32:36
Entonces, en cada nivel lo que se pedía era poner la cámara de diferentes colores, ¿vale? 00:32:39
Entonces, eso era otro de los aspectos que habría que tener en cuenta. 00:32:45
Vale. 00:32:49
Voy a abrir otro proyecto de otro compañero. 00:32:50
Por cierto, veo que se ha incorporado alguien más. 00:32:52
Bienvenido, entre todos los que me estás escuchando. 00:32:55
Si me escuchas, voy a abrir este, por ejemplo, para revisar otro proyecto o alguna cosa que 00:32:58
he visto por ahí. 00:33:04
Vale. 00:33:08
Eso, si en algún momento me queréis detener para plantearme dudas de lo que estamos viendo 00:33:09
o, posteriormente, dudas que tengáis con las tareas vosotros, pues me podéis dejar 00:33:14
un comentario. 00:33:19
Me vais indicando, ¿de acuerdo? 00:33:20
Vale. 00:33:21
Hasta aquí, más o menos. 00:33:22
Creo que me vais siguiendo. 00:33:24
¿Hay alguna duda? 00:33:26
Todo claro. 00:33:28
Perfecto. 00:33:29
Vale. 00:33:30
Sobre este compañero. 00:33:31
Cosas que diga. 00:33:32
A ver, que lo tengo aquí apuntado también. 00:33:33
Vale. 00:33:35
Por ejemplo, en este caso, el compañero sí que desempaquetó, o al menos lo ha introducido 00:33:36
en la jerarquía como dos game objects distintos que no forman parte de estos paquetes. 00:33:43
Vale. 00:33:49
Sí que ha cogido los elementos por separado. 00:33:50
Vale. 00:33:52
Y ha hecho una jugada que está bien, pero se puede hacer mejor. 00:33:53
Vale. 00:33:56
Esto, en apariencia, si le doy al play, pues está funcionando. 00:33:57
Vale. 00:34:01
Más o menos correcto. 00:34:02
Vale. 00:34:03
Así que no hay ningún problema. 00:34:04
Y cuando me meto en este agujero, cambio de nivel. 00:34:05
Perfecto. 00:34:08
Una cosa simplemente a tener en cuenta. 00:34:09
Tenemos un terreno 1, ¿vale? 00:34:11
Que será la malla del terreno correctamente configurada, que es la que está, digamos, 00:34:13
con mayor poligonaje y por eso el círculo se ve más o menos definido sin mucho pico, 00:34:18
que es lo que pasa con esta de Collider. 00:34:22
¿Vale? 00:34:24
Pero fijaos que tengo aquí un game object que me muestra, digamos, la parte visual, 00:34:25
¿vale? 00:34:30
Con su material de madera muy bien configurado, etcétera. 00:34:31
Perfecto. 00:34:33
Y luego tiene un game object aparte, separado, que no es visible, no hay nada visible, y 00:34:34
lo que sí aporta es el colisionador. 00:34:39
¿Vale? 00:34:41
¿Qué problema hay? 00:34:42
Que como son dos game objects separados, yo cuando muevo a uno, ¿vale? 00:34:43
Muevo la parte visual y la bola, sin embargo, a ver si no me equivoco, cuando yo arranco 00:34:47
el juego se queda aquí colgando. 00:34:52
¿Por qué? 00:34:54
Porque en otro lado está el colisionador. 00:34:55
Es decir, ha disgregado en dos elementos distintos los game objects. 00:34:57
Esto se podría solucionar de dos formas. 00:35:03
Les hago, ¿vale? 00:35:05
Primero, pues bueno, si lo quiero tener en dos componentes diferentes, por lo que sea, 00:35:06
hago uno hijo del otro para que cuando mueva el padre se mueva todo, ¿veis? 00:35:10
Que el colisionador se va con el padre. 00:35:14
¿Vale? 00:35:16
O en este caso, al menos, que no era especialmente, no requiere digregarlo en distintos game objects, 00:35:17
podemos directamente el mesh collider aplicárselo al terreno visible. 00:35:24
¿Vale? 00:35:28
Entonces, básicamente es añadir a este elemento que tiene todo lo visual, pues este mesh collider 00:35:29
que tengo aquí configurado. 00:35:34
De la misma forma, además. 00:35:35
Esto se podría hacer de cero, pues añadiendo el mesh collider, arrastrando, ¿vale? 00:35:37
Que sería como lo habréis hecho. 00:35:42
Pero si ya tenéis un componente hecho. 00:35:44
Bien configurado. 00:35:45
Ya me sirve también para hablaros que dentro de las opciones que tiene cada componente, 00:35:47
que son estos tres puntitos que tiene cada componente, hay uno que se llama, aparte de 00:35:51
para borrar el componente, porque ya no lo queramos, copiar componente. 00:35:55
¿No? 00:35:58
Le damos a copiar. 00:35:59
¿Vale? 00:36:00
Parece que no ha pasado nada, pero pues en el sistema está guardado una copia de ese 00:36:01
componente para aplicarlo. 00:36:06
Y claro, aquí no hay forma de decir, no hay mesh renderer, mesh collider, perdón. 00:36:08
Incorporado. 00:36:14
Podríamos hacer la búsqueda del mesh collider y decirle que lo pegue, ¿vale? 00:36:16
Pegar los valores del componente, ¿vale? 00:36:22
Que lo que hará será efectivamente poner el collider del terreno, ¿vale? 00:36:25
Le doy y veis que ya se ha adaptado a lo que teníamos antes. 00:36:30
O, por si lo quisiéramos hacer, cuando damos a cualquier componente, hay una opción que 00:36:33
no es la que habíamos dado antes, que ahora parece inactiva, la de valores. 00:36:40
Que es pegar un componente como nuevo. 00:36:43
Que lo que hace es pegarlo, da igual al que demos, porque veis que se añade como otro 00:36:45
diferente, que es añadir este collider, este componente tal y como lo habíamos copiado. 00:36:50
¿Vale? 00:36:55
Vamos, que yo ahora puedo borrar este collider y lo tengo todo en uno. 00:36:56
Bien recogido y quizá más fácil. 00:37:00
Luego incluso para aludir a alguno de estos parámetros o componentes mediante código. 00:37:02
¿No? 00:37:08
Hay menos game objects a los que acudir. 00:37:09
¿Vale? 00:37:11
El juego va a funcionar exactamente igual. 00:37:12
¿Vale? 00:37:14
Importante ir entendiendo un poco cómo vamos jerarquizando y cómo vamos incorporando los 00:37:15
componentes y en qué elementos. 00:37:21
¿Vale? 00:37:22
Pero bueno, en cualquier caso la función estaba funcionando. 00:37:23
Vamos, se estaba cumpliendo. 00:37:25
Así que bien resuelto, que a falta de saber cómo resolverlo, pues se va tirando para adelante 00:37:27
sin problema. 00:37:34
¿Vale? 00:37:35
Otra cosa que sí en esta práctica me ha llamado más la atención, porque no era lo que se 00:37:36
pedía, era, por ejemplo, el movimiento de la bola. 00:37:41
¿Vale? 00:37:43
Esta bola está bien configurada a nivel de, pues tiene una cámara que lo sigue, más 00:37:44
o menos funciona bien. 00:37:48
¿Vale? 00:37:49
Pero si nos metemos en el script de la bola, este compañero lo que ha hecho, a ver, lo 00:37:50
pongo a pantalla completa, lo que ha hecho es, por un lado, coger los inputs de manera 00:37:56
correcta, el horizontal, el vertical. 00:38:03
¿Vale? 00:38:05
Y aquí lo que ha hecho ha sido moverlo con un translate y un transform. 00:38:06
Y un transform translate, que no era lo que se pedía. 00:38:10
Lo que se pedía era que todos los movimientos, que de eso va este tema, sean por físicas. 00:38:13
¿Vale? 00:38:18
Y además no es solo por capricho. 00:38:19
¿Vale? 00:38:20
Porque de hecho vamos a ver un problema derivado de esto. 00:38:21
Aquí básicamente tenemos un rigidbody que está agregando la fuerza de gravedad y por 00:38:25
eso se posa cuando arrancamos el juego. 00:38:29
Y cuando vamos moviendo, ¿vale?, se está moviendo porque estamos aplicando, digamos, 00:38:31
variaciones en el transform, pero no se está aplicando ninguna fuerza como tal. 00:38:38
¿Vale? 00:38:45
¿Qué implica esto? 00:38:46
Que si os fijáis, y yo pongo esto en local, ¿vale? 00:38:47
Es decir, las coordenadas se ven en local, es decir, hacia donde están apuntando. 00:38:49
En ningún momento la bola no se ve bien porque la bola es tan uniforme que no se percibe 00:38:54
bien, pero la bola no está rodando. 00:39:00
Realmente está como flotando de un lado para otro, pero no está rodando. 00:39:02
Y se está moviendo, pero no está girando. 00:39:07
Si no se estuviera girando, este ritmo local, ¿vale?, se estaría orientando, se estaría 00:39:09
moviendo en relación a donde gira la bola. 00:39:14
Y de hecho, aquí es cuando surge un problema. 00:39:17
Por ejemplo, cuando me despeño, que toca este piquillo que lo hace girar, ¿vale? 00:39:19
Porque por la física si está girando, veis que ahora ha girado y si vemos, está con 00:39:23
la inercia previa y el ritmo ha cambiado. 00:39:28
¿Qué pasa? 00:39:31
Que ahora cuando yo le dé hacia arriba, la W, ¿vale? 00:39:32
Empiezan a girar. 00:39:35
¿Vale? 00:39:36
Empiezan a surgir problemas, como que empieza a flotar y al rato se cae por la fuerza física. 00:39:37
¿Por qué? 00:39:42
Porque si nos fijamos en el código, lo que estamos diciendo es que se mueva en relación 00:39:43
a los ejes. 00:39:48
Y si recordáis el translate, ¿vale? 00:39:49
Bueno, voy a empezar a escribir otro para que se vean las sobrecargas. 00:39:51
Cuando escribimos el translate, hay una sobrecarga, hay un segundo parámetro que por defecto 00:39:55
viene ya definido, que es en relación a qué. 00:40:00
Y normalmente es en relación al propio objeto, no al mundo. 00:40:03
¿Qué significa? 00:40:06
Que cuando aquí se ha caído la bola y está orientada de otra forma, ¿vale? 00:40:07
Cuando yo le doy adelante, ¿vale? 00:40:12
Cuando yo le dé a la Z, ¿vale? 00:40:14
Pues pueden surgir... 00:40:18
La Z justo me sirve de mal ejemplo porque ha quedado bien orientada, pero fijaos en la 00:40:20
Yo, en la X, cuando intento ir a la derecha, como la X está ligeramente, está ya como 00:40:25
orientada hacia los lados. 00:40:33
Cuando yo doy a la derecha, ¿vale? 00:40:34
Cuando yo doy a la derecha, sale volando, ¿vale? 00:40:35
Y al ratito se da cuenta de que, ups, debería haber movimiento físico también, ¿vale? 00:40:39
Porque lo lógico es que no se combinen las fuerzas físicas con las fuerzas kinemáticas, 00:40:45
que se suele decir, ¿vale? 00:40:53
Las fuerzas kinemáticas son, como está aquí configurado, las que aportan movimientos al 00:40:54
transform. 00:41:00
Es decir, son cambios de posición brutas. 00:41:01
En el sentido de que, ¿vale? 00:41:03
Tú ves 5 en X hacia delante y ya está. 00:41:04
No hay nada físico. 00:41:07
Es simplemente que estamos cambiando las coordenadas. 00:41:08
Como si cogemos aquí y empezamos a hacer esto, que de hecho es lo que ahora hago cuando 00:41:10
se mueve a la derecha. 00:41:15
Y por eso da problemas este juego. 00:41:16
A medida que vaya jugando y me vaya cayendo, ¿vale? 00:41:18
La pelota, como tiene la física, aunque lo esté moviendo por kinemática, pues sí que 00:41:22
va reaccionando cuando se colisiona con ciertos objetos. 00:41:29
O, por ejemplo, me caigo por aquí. 00:41:33
Y ahora se va a despeñar y va a cambiar el eje en Z. 00:41:34
¿Vale? 00:41:38
Ahora la Z, fijaos, pues siempre se me queda bien. 00:41:39
Pero cuando yo le doy hacia delante, se va moviendo ya con esa inclinación que tiene. 00:41:42
¿Vale? 00:41:48
Entonces, importante, ya no es solo porque lo que se pedía fuera que se usaran las fuerzas 00:41:49
físicas, sino que es que pueden ocurrir este tipo de problemas. 00:41:57
Había la solución interesante. 00:42:01
¿Vale? 00:42:02
La solución intermedia que era, si os acordáis, en la práctica del tema 2, decir que en vez 00:42:03
de moverse en torno a sí mismo, que es el valor por defecto, lo haga en torno al mundo. 00:42:07
¿Vale? 00:42:11
Entonces, va a dar igual hacia dónde estén orientadas las... 00:42:12
Tengo que arrancar porque creo que he guardado. 00:42:15
¿Vale? 00:42:17
Ahora da igual que aunque se gire, pues las traslaciones las va a hacer siempre en relación. 00:42:18
¿Vale? 00:42:23
Y ahora estoy moviendo. 00:42:24
Y va respondiendo bien. 00:42:25
¿Vale? 00:42:26
No veis las teclas que pulso, pero veis que sí que han cambiado aquí las orientaciones 00:42:27
del mismo. 00:42:30
Y más o menos se va moviendo como quiero. 00:42:31
El problema está en, pues eso, que básicamente podemos ver estos problemas de que los mismos 00:42:32
cambien y no se muevan. 00:42:39
Pero incluso, aun con eso, este movimiento no es realista. 00:42:40
Se mueve hacia delante, hacia atrás, sin tirón. 00:42:43
No estamos añadiendo físicas. 00:42:46
No estamos usando el RigidBody, que es lo que se pedía. 00:42:47
¿Vale? 00:42:49
Entonces, por favor, si se pide que salga de cierta manera, pues hacerlo así, para 00:42:50
que sea la práctica lo más provechosa posible. 00:42:55
¿Importante? 00:42:59
¿Vale? 00:43:00
Esto sirve cuando se declare la captación de inputs, como en este caso. 00:43:01
¿Vale? 00:43:07
Fijaos que se está declarando la variable aquí. 00:43:08
Y aquí no hay ningún problema porque está funcionando todo en el update. 00:43:10
Pero sí que es verdad que si se hubiera hecho esta práctica como estaba planteada, cuando 00:43:14
en el FixedUpdate añadieramos los AddForce, ¿vale? 00:43:18
Que ahora no van a funcionar porque no estoy aludiendo a ningún RigidBody. 00:43:21
¿Vale? 00:43:25
Pero cuando yo metiera este AddForce y luego le dijera, vale, horizontal input. 00:43:26
¿Vale? 00:43:30
No me va a salir. 00:43:31
Bueno, aparte de porque lo estoy escribiendo mal. 00:43:32
Porque lo he declarado en este bloque. 00:43:34
¿Vale? 00:43:37
Y al declararse en este bloque, recordad que existía eso que se llamaba el encapsulamiento. 00:43:38
Entonces, yo, cuando intento aquí, incluso puedo quitar el AddForce. 00:43:43
Cuando yo llamo aquí a horizontal input, no existe. 00:43:48
¿Vale? 00:43:53
Porque no puede salir de esta variable privada. 00:43:54
Es una variable privada que no sale de su cápsula. 00:43:56
Por tanto, la jugada... 00:43:58
Para hacer esto bien, es declararlo fuera, dentro de lo que es toda la clase. 00:43:59
¿No? 00:44:04
¿Recordáis esto? 00:44:05
Entiendo. 00:44:06
Aquí ponemos este horizontal input. 00:44:07
¿Vale? 00:44:11
Igual con el vertical. 00:44:12
Load. 00:44:14
Porque es el tipo de variable que está captando. 00:44:15
¿Vale? 00:44:18
Y aquí ya no hay que declararlas. 00:44:19
Aquí ya lo que estamos haciendo es que en cada fotograma vamos a poder capturar esa variable. 00:44:20
¿Vale? 00:44:28
¿Por qué? 00:44:29
Bueno, porque no lo he escrito bien. 00:44:30
¿Vale? 00:44:31
¿Y qué es lo que pasa? 00:44:32
Que aquí ya sí que, cuando empiezo a escribir, ya sí me sale esta variable. 00:44:33
Y ya la podría usar como aquí en el update, lo más rápido posible, en cuanto pulse. 00:44:36
En cuanto haya un fotograma que el ordenador genere, sí que va a coger el input. 00:44:41
Y luego ya se lo aplico a las fuerzas físicas en el FixedUpdate. 00:44:46
Que, como ya habréis leído el tema y he dicho en otras ocasiones, debería ser el momento de ejecución en el que se ejecutan las físicas. 00:44:49
Porque es en el momento en el que sí, digamos, que está habiendo una simulación constante, independiente de la máquina, en este caso, de esas físicas. 00:44:56
¿Vale? 00:45:05
Entonces, es importante dónde se declaran las variables. 00:45:06
Hasta aquí, ¿qué tal? 00:45:08
¿Me vais siguiendo? 00:45:09
A ver... 00:45:14
Espero que sí. 00:45:17
¿Vale? 00:45:20
Luego... 00:45:21
¿Vale? 00:45:23
Si alguien... 00:45:24
Más o menos. 00:45:25
Decidme las dudas que tengáis, porfa. 00:45:26
Porque esto es importante, tanto a nivel código como se declaran las variables, lo de la física, etcétera. 00:45:28
Todas las dudas que tengáis las vemos ahora mismo y vemos algún ejemplo más. 00:45:33
Porfa. 00:45:37
Que es el... 00:45:38
Ese es importante. 00:45:40
Antes de comenzar la grabación de esta tutoría... 00:45:42
Vale, bueno. 00:45:46
Dice que se entiende, pero que hay que practicarlo. 00:45:47
Sí, eso seguro. 00:45:49
Que por mucho que hable yo, hasta que no os sentéis... 00:45:50
No... 00:45:53
No se ve, no te das de cabeza con las cosas. 00:45:54
En esta misma práctica, el compañero también... 00:45:58
A ver si por defecto ya está funcionando, ¿vale? 00:46:01
Bueno, configuró esta... 00:46:04
Este movimiento, el torque de la... 00:46:09
De la... 00:46:12
Plataforma. 00:46:15
Y varias cosas. 00:46:16
Vale, se ha caído la bola y fijaos que se está cayendo la bola y ya no hay plataforma. 00:46:17
¿Vale? 00:46:22
Ojo. 00:46:23
Importante. 00:46:24
Se pedía también que se reiniciara el nivel. 00:46:25
¿Y por qué? 00:46:27
No sólo por... 00:46:28
Bueno, pues porque... 00:46:29
Porque así lo habíamos descrito, sino porque cuando reiniciamos el nivel... 00:46:30
¿Vale? 00:46:34
Eh... 00:46:35
Me meto en... 00:46:36
Reinicio, que entiendo que era donde estaba. 00:46:38
¿Vale? 00:46:40
Cuando reiniciamos el nivel, es decir, cuando se decía... 00:46:41
Si al colisionar el colisionador se llama reinicio... 00:46:44
¿Vale? 00:46:48
Y reinicio, ¿verdad? 00:46:49
Que por... 00:46:50
El propio... 00:46:51
Editor de Unity. 00:46:52
Pues se había dicho que fuera... 00:46:54
Este... 00:46:56
Box Collider que está en donde reinicio. 00:46:57
¿Vale? 00:46:59
Está haciéndolo de forma... 00:47:00
No lo está haciendo por código, sino que está... 00:47:01
Aludiendo a qué... 00:47:03
Elemento... 00:47:04
Es el que tiene... 00:47:05
A qué Box Collider. 00:47:06
Y fijaos que tiene el icono del Box Collider. 00:47:07
¿No? 00:47:09
Eh... 00:47:10
Está diciendo cuando... 00:47:11
Yo que este Box Collider usa... 00:47:12
Ese Box Collider mediante el código, que lo hemos guardado aquí. 00:47:13
Muy bien... 00:47:16
Hecho esto. 00:47:17
¿Vale? 00:47:18
Para que cuando toque ese Collider, si se llama reinicio, que es como he puesto aquí... 00:47:19
Eh... 00:47:20
Pues... 00:47:21
Y ojo, aquí es donde está el problema. 00:47:22
Lo que está ocurriendo no es que se reinicie el nivel, sino que yo cojo la bola, porque 00:47:23
esto además se está aplicando a la bola. 00:47:24
Eh... 00:47:25
Y se ponga en InitPost. 00:47:26
¿Vale? 00:47:27
Es decir... 00:47:28
Se está aplicando a la bola porque este reinicio se ha puesto en la bola. 00:47:29
Entonces... 00:47:30
Lo que hace es... 00:47:31
El punto de iniciación... 00:47:32
¿Vale? 00:47:33
El... 00:47:34
El punto de donde está... 00:47:35
La posición de este objeto, que es la bola. 00:47:36
¿Vale? 00:47:37
Se ponga donde esté guardado InitPost. 00:47:38
Que es donde... 00:47:39
Lo que hace es... 00:47:40
El punto de iniciación... 00:47:41
¿Vale? 00:47:42
El punto de donde está... 00:47:43
La posición de este objeto, que es la bola. 00:47:44
¿Vale? 00:47:45
Se ponga donde esté guardado InitPost. 00:47:46
Que es donde empezó a hacer el start, donde se guardó la posición. 00:47:47
¿Vale? 00:47:48
Entonces, ¿qué ocurre? 00:47:49
Que vale. 00:47:50
Que sí, que la bola se vuelve a colocar en el sitio, pero la... 00:47:51
La... 00:47:52
La plataforma ya está rotada. 00:47:53
Esto significa que... 00:47:54
Placa. 00:47:55
Eh... 00:47:56
Si ya está muy rotada, el juego se vuelve imposible. 00:47:57
Entonces, cuando se reinicia el nivel, lo bueno es que todo se reinicie. 00:47:58
Entonces, la... 00:47:59
El juego vuelve a estar como de cero. 00:48:00
¿Vale? 00:48:01
Entonces, cuando se reinicie el nivel, lo bueno es que todo se reinicie. 00:48:02
Entonces, el juego vuelve a estar como de cero. 00:48:03
¿Vale? 00:48:04
Y otra... 00:48:05
Otro problema que veo... 00:48:06
¿Vale? 00:48:07
Y a ver si recuerdo bien por qué era... 00:48:08
Es... 00:48:09
Porque esa bola... 00:48:10
¿Vale? 00:48:11
Cuando está cayendo, se mete dentro del... 00:48:12
Del... 00:48:13
Del terreno. 00:48:14
¿Vale? 00:48:15
Y en parte... 00:48:16
Si no me equivoco... 00:48:17
Se debe... 00:48:18
A ver... 00:48:19
De hecho, lo tenía por aquí apuntado. 00:48:20
Dejadme, porque si no... 00:48:21
Vale. 00:48:22
Entonces, cuando se reinicia el nivel, lo bueno es que todo se reinicie. 00:48:23
Entonces, la... 00:48:24
El juego vuelve a estar como de cero. 00:48:25
¿Vale? 00:48:26
Y otra... 00:48:27
Otro problema que veo... 00:48:28
¿Vale? 00:48:29
Y a ver si recuerdo bien por qué era... 00:48:30
Es... 00:48:31
Porque esa bola... 00:48:32
¿Vale? 00:48:33
Dejadme, porque si no, que lo examine un segundo. 00:48:34
Bueno, si no me equivoco, era porque la bola tiene un mescolider en convex. 00:48:39
Y esto está rotando. 00:48:49
Vale. 00:48:53
Si recordáis, en la última tutoría se indicaba que para que captara bien, 00:48:55
porque para empezar aquí, si nos fijamos, está siendo un bloque todo y no está captando el agujero. 00:49:01
La malla, veis, que no está captando el agujero. 00:49:07
Aquí se ve este cuadradito, que es el de next level, que es ahí donde ha puesto una meta. 00:49:10
Pero lo que es el agujero jamás se va a poder meter por ahí. 00:49:16
Porque lo primero que había que hacer es que había que decirle que no fuera convex. 00:49:19
Y para que funcionara este mescolider, aparte, había que incorporar un rigid body. 00:49:24
En el momento que pusiéramos... 00:49:29
En el momento que pusiéramos un rigid body que fuera kinemático, ahí ya sí capta esto. 00:49:31
Eso, por un lado, está dando conflicto la malla. 00:49:35
A ver ahora, cuando nos metamos aquí... 00:49:38
Ahí va. 00:49:41
Vale, y está habiendo otro problema, que es que cuando yo pongo este nivel, 00:49:41
como hay ahora un... 00:49:47
En algún momento hay un collider, este que tengo aquí, que es un trigger, 00:49:50
que seguro que en cuanto toca otro elemento, con este reinicio, 00:49:55
a ver dónde es, está haciendo que pase al siguiente nivel. 00:50:01
Es decir, este next level, ahora mismo, si nos metemos aquí, pone, 00:50:07
en cuanto haya un trigger que se meta, que cargue la escena 2, que es la siguiente, el nivel 3. 00:50:12
¿Qué problema hay? 00:50:17
Que aquí, ahora mismo, este next level, si damos aquí a la configuración, 00:50:18
hemos metido en el agujero, está bien situado, es un trigger que está bien, 00:50:26
pero como hay un collider que le está... 00:50:30
que le está tocando, que es este que tenemos aquí, de la plataforma, 00:50:31
pues claro, en cuanto se toca, pues ya pasa al siguiente nivel. 00:50:34
¿Qué es lo que habrá que hacer? 00:50:40
De algún modo, decir que esto se cargue o solo ocurra cuando se dé cierta condición. 00:50:42
Y ahora, aunque esto se ve más en el tema 5, si no me equivoco, vamos, sí, en el tema 5, 00:50:50
os voy a hablar un poco... 00:50:55
Vale, esto se podría hacer, igual que ha hecho también con el... 00:50:57
con el precipicio, ¿vale? 00:51:01
Que decía que si la bola, es decir, si no era este, el boss collider que tenía aquí, ¿vale? 00:51:02
Y aquí lo ha usado, se podría hacer exactamente la misma operación. 00:51:09
Es decir, aludir a un collider y que si no ese es el collider, que no arranque nada, ¿vale? 00:51:12
Pero hay una forma más rápida, que es que podemos añadir etiquetas a los objetos, ¿vale? 00:51:17
Entonces, a lo mejor lo que podemos hacer es decir, oye, si este, y esto sé que no lo habíamos visto, ¿vale? 00:51:22
La solución rápida hubiera sido... 00:51:28
Pues decir, vale, ojo, que este... 00:51:31
Que esta caja está tocando con otro collider, pues lo que voy a hacer es subirla para que no toque ese collider 00:51:33
y se quede ahí y ya no toca. 00:51:41
Es decir, hay que ponerlo de modo que no toque el collider, pero sí que toque la bola, ¿vale? 00:51:42
Aquí estamos perdiendo que el... 00:51:49
La bola, aunque no se meta, ya va a tocar esto. 00:51:52
Otra solución sería, pues hacer todo más pequeñito, ¿vale? 00:51:54
El trigger, tener en cuenta que... 00:51:58
Que toque un poquito la bola, en este caso, ¿vale? 00:52:01
Si lo metemos ahí un poco, incluso se puede hacer más pequeño, como se va a colocar en el hueco 00:52:03
y está configurado para que el hueco no detecte, porque tiene ese agujero, ¿vale? 00:52:10
Ya, aunque arranque, hasta que no toque la bola, no pasa al siguiente nivel, ¿vale? 00:52:15
Pero sí que es verdad que también se puede hacer que aunque toque esta plataforma, ¿vale? 00:52:20
Lo voy a volver a poner abajo, ¿vale? 00:52:27
Lo voy a hacer, lo voy a mover para abajo, ¿vale? 00:52:31
Ahora sí que vuelve a estar metida dentro del otro collider. 00:52:34
Ahora sí vuelvo a arrancar el juego, pasa al nivel 3 directamente, ¿vale? 00:52:37
Lo que podemos hacer es decir, oye, vamos a poner una etiqueta a este objeto. 00:52:40
También se podría hacer con el nombre, lo que pasa es que es más complicado con el nombre. 00:52:46
Es que si coincide lo que choca con cómo se llama este elemento, pues que haga o no haga la acción, ¿no? 00:52:49
Pero hay otra forma, que es decir... 00:52:56
Crear un tag... 00:52:58
Una etiqueta, ¿vale? 00:53:01
Que se pueden... 00:53:03
Ya vienen varias por defecto, ¿vale? 00:53:04
Pero se pueden incluso añadir más. 00:53:05
Si nos metemos en esta sección de tags y decimos, voy a poner un tag que se llame... 00:53:07
Evita... 00:53:12
Trigger, yo que sé, por decir algo, ¿vale? 00:53:15
Y me estoy complicando la vida porque estoy poniendo un nombre complicado, ¿vale? 00:53:18
Ahora yo lo que puedo decir, y ojo, que al crearlo no se aplica directamente, yo puedo decirle que este GameObject tenga un tag que se llama... 00:53:21
Que se llama... 00:53:30
Que se llama... 00:53:30
Que se llama... 00:53:31
Que se llama... 00:53:31
Que se llama... 00:53:31
Que se llama... 00:53:31
Que se llama... 00:53:31
Que se llama... 00:53:31
Que se llama... 00:53:31
Que se llama... 00:53:31
Que se lo identifique como EvitaTrigger, ¿vale? 00:53:31
¿Qué significa esto? 00:53:33
Que yo luego, lo que voy a poder hacer es por código, ¿vale? 00:53:35
Y... 00:53:39
Uy, a ver, he tocado varios... 00:53:39
Varias cosas... 00:53:42
Voy a deshacer lo que había hecho aquí, para que al menos funcione. 00:53:46
Aunque funcione de aquella manera, que sí que funcione correctamente. 00:53:49
Ahora está... 00:53:53
Tendría que estar... 00:53:54
Y en tu level 3, ¿vale? 00:53:55
Lo que nos interesa, que este OnTrigger se haga o se ejecute solo... 00:53:57
Si coincide con la etiqueta que nosotros queramos. 00:54:01
Por ejemplo, ¿vale? 00:54:07
Lo que queremos es... 00:54:08
O que evite, podríamos decir... 00:54:11
Si... 00:54:13
If... 00:54:14
Other, ¿vale? 00:54:17
Y recordad, esto que hay aquí, este parámetro, lo que hace alusión es al objeto que ha tocado este elemento. 00:54:18
Entonces, si el objeto que es... 00:54:24
Como este script... 00:54:26
Está en este objeto... 00:54:29
De la meta... 00:54:31
Lo que queremos es... 00:54:33
Si el otro objeto, que es... 00:54:34
Queremos aludir a este que es Collider. 00:54:35
Si Other... 00:54:37
Si Other... 00:54:41
No lo escribo bien. 00:54:43
Si Other es diferente, ¿vale? 00:54:44
Es decir, no es igual a... 00:54:46
Vale. 00:54:54
A... 00:54:56
Y ponemos el nombre que hemos puesto de... 00:54:56
Evita Trigger, ¿vale? 00:54:59
Tiene que ser literal, con mayúsculas o no, porque veis que es un... 00:55:01
String, ¿vale? 00:55:05
Si el tag... 00:55:06
Si el tag de este... 00:55:09
Perdón, ahora lo explico, ¿vale? 00:55:11
Lo voy a escribir porque es que si no... 00:55:12
Creo que es contraproducente. 00:55:14
Vale. 00:55:17
Si el tag... 00:55:18
Si el tag de ese GameObject... 00:55:19
Que es el otro que tenemos aquí, ¿vale? 00:55:21
Es decir, si el otro objeto tiene un tag, ¿vale? 00:55:23
Es verdad que para poder... 00:55:26
Acceder a los tags... 00:55:28
Hay que... 00:55:30
Acceder primero a un nivel superior que es en el GameObject, ¿vale? 00:55:31
Si el tag del GameObject... 00:55:33
Que ha chocado con esto... 00:55:36
No se llama Evita Trigger... 00:55:37
En ese caso... 00:55:39
Ponemos llaves... 00:55:41
Me pasas al nivel 2. 00:55:43
¿Qué significa? 00:55:44
Que si está chocando y es Evita Trigger... 00:55:45
Que es cuando está tocando por defecto... 00:55:48
Vais a ver que no está... 00:55:50
Que no está tocando... 00:55:53
Es decir, no está pasando de nivel. 00:55:54
¿Vale? 00:55:56
Es decir, si yo comento esto nuevamente... 00:55:57
Es decir, hasta que no se cumpla esta condición... 00:55:59
Que es... 00:56:00
Puede tocarle cualquier cosa... 00:56:01
Menos lo que se llama Evita Trigger... 00:56:02
Para que cargue esto... 00:56:04
Si yo pongo aquí... 00:56:06
¿Vale? 00:56:07
Y lo borro... 00:56:07
Lo digo para que veáis... 00:56:09
El antes y el después... 00:56:10
Si yo lo dejo así... 00:56:12
Veréis que... 00:56:14
Cambia de nivel inmediatamente... 00:56:15
Y si yo, sin embargo... 00:56:17
Lo vuelvo a introducir en esta condición... 00:56:19
Pues... 00:56:21
Ahí no... 00:56:24
Eso sí, cuando yo meta la bola... 00:56:25
La cojo aquí... 00:56:27
Cuando la meta aquí... 00:56:28
¡Apa! 00:56:29
Cambio de nivel... 00:56:30
¿Vale? 00:56:31
Entonces es importante... 00:56:32
El uso de discriminadores de objetos... 00:56:34
También se podría hacer... 00:56:37
¿Vale? 00:56:38
Yo os digo otra fórmula... 00:56:38
Voy a comentar todo esto... 00:56:40
Porque lo voy a aplicar de otra forma... 00:56:42
Voy a hacer que el trigger que está aquí... 00:56:43
En el Next Level... 00:56:45
¿Vale? 00:56:47
Esa cajita que está dentro del... 00:56:47
Circulete... 00:56:48
Solo se active... 00:56:50
Si le toca la bola... 00:56:51
¿Vale? 00:56:52
Entonces... 00:56:53
Podemos hacer esta operación... 00:56:54
En vez de Evita Trigger... 00:56:55
Le vamos a poner... 00:56:56
La etiqueta Player... 00:56:57
A la bola... 00:56:58
Es decir, vamos a decir que la bola se identifique... 00:56:58
Con la etiqueta Player... 00:57:00
¿Vale? 00:57:02
Entonces ahora lo que se puede hacer es... 00:57:02
Que este cambio de escena... 00:57:04
A la escena 2... 00:57:05
Solo se haga si... 00:57:07
El GameObject... 00:57:09
Tiene una etiqueta... 00:57:12
El GameObject que está tocando esta etiqueta... 00:57:13
Tiene una etiqueta que se llama Player... 00:57:15
Nuevamente... 00:57:17
Escrito de manera literal... 00:57:18
Y entonces sí que pasará... 00:57:20
Al nivel 2... 00:57:21
¿Esto qué... 00:57:22
Qué ayuda a hacer? 00:57:23
Que por defecto... 00:57:24
Hasta que no le toque algo que se llama... 00:57:26
Player... 00:57:28
Que ahora mismo solo lo tenemos aplicado... 00:57:29
A esta bola... 00:57:30
Pues hasta que no lo toque algo... 00:57:30
No cambia de nivel... 00:57:33
Y por eso en cuanto lo toca... 00:57:34
Cambia de nivel... 00:57:35
¿Vale? 00:57:36
Es casi más inteligente esta opción... 00:57:36
Porque en vez de discriminar todo... 00:57:38
Menos una cosa... 00:57:40
Lo que hace es... 00:57:40
Oye yo hasta que no vea... 00:57:41
Que se da esta condición... 00:57:42
No cambio de nivel... 00:57:43
¿Vale? 00:57:45
Entonces... 00:57:45
Creo que es mejor enfoque... 00:57:46
También para... 00:57:48
Por si no os acordáis alguna vez... 00:57:49
Hay otra forma de escribir esto... 00:57:50
Que es... 00:57:52
Si Other... 00:57:53
Tiene... 00:57:53
Un... 00:57:54
Con PairTag... 00:57:56
¿Vale? 00:57:56
Lo escribo y lo vuelvo a decir... 00:57:57
Que igual es más fácil... 00:57:59
El de recordar... 00:58:00
¿Vale? 00:58:01
Esto que estoy escribiendo ahora mismo... 00:58:02
Es exactamente lo mismo que esto... 00:58:03
¿Vale? 00:58:05
Hay como un método... 00:58:05
Que sirve para... 00:58:07
Dentro de un GameObject... 00:58:08
Es decir... 00:58:08
Comparar Tag... 00:58:09
Y poner aquí el nombre del... 00:58:10
De la etiqueta... 00:58:12
En realidad es lo mismo... 00:58:13
Exactamente... 00:58:14
¿Vale? 00:58:14
Que es otra forma de... 00:58:15
De escribirlo... 00:58:16
Pero igual con ComparTag... 00:58:17
No os olvidéis de que hay que poner esto del GameObject... 00:58:19
Para que salga lo de Tag... 00:58:21
Y es más fácil... 00:58:23
¿Vale? 00:58:23
Pero es otra forma de... 00:58:24
Comparar etiquetas... 00:58:25
Y las etiquetas puede haber en varios objetos... 00:58:28
Yo ahora... 00:58:30
A varios les puedo decir que sean... 00:58:30
Player... 00:58:32
Y entonces... 00:58:33
Pues ya según como estamos configurando... 00:58:33
Mirad que la cámara ya por defecto... 00:58:35
Tiene su propio Tag... 00:58:36
O reinicio que sea otro... 00:58:38
Que sea... 00:58:39
EvitaTrigger... 00:58:39
¿Vale? 00:58:41
Si os fijáis... 00:58:41
EvitaTrigger está en dos... 00:58:42
Bueno... 00:58:44
Pues eso... 00:58:45
Que sepáis que... 00:58:45
Los Tags sirven para cosas como esta... 00:58:46
Para... 00:58:48
Hacer condiciones de que toca... 00:58:49
A que toca... 00:58:50
¿Vale? 00:58:51
Y luego hay otra cosa... 00:58:52
Que es... 00:58:54
Eh... 00:58:55
Bueno... 00:58:56
¿Vale? 00:58:56
Por lo que daba problemas este... 00:58:57
Este terreno... 00:58:58
A ver... 00:58:59
Si no... 00:59:00
No daba mucho problema... 00:59:00
Esto... 00:59:01
Por lo que la bola hace estos movimientos tan erráticos... 00:59:02
Que va como... 00:59:04
Chocando y... 00:59:05
Y... 00:59:06
Botando... 00:59:06
Es... 00:59:07
Y esto es por... 00:59:08
En este caso... 00:59:09
¿Vale? 00:59:10
Pero... 00:59:11
Lo ha hecho así... 00:59:12
Es porque... 00:59:12
En el... 00:59:14
En lo que hace girar la plataforma... 00:59:15
No sé por qué ha hecho... 00:59:17
Sí que ha usado físicas... 00:59:18
¿Vale? 00:59:20
Aquí estamos viendo... 00:59:20
El actor que... 00:59:21
No sé por qué ha usado el relative... 00:59:22
Que es un poco más complejo... 00:59:24
Porque intenta como... 00:59:26
Tomar las coordenadas que ya tiene... 00:59:27
Para aplicar la fuerza de otra forma... 00:59:28
¿Vale? 00:59:30
Los suyos... 00:59:30
Sería aplicar... 00:59:30
El actor que... 00:59:31
Por defecto... 00:59:32
A no ser que lo hagamos porque queramos... 00:59:33
¿Vale? 00:59:35
Pero aparte... 00:59:35
También está haciendo operaciones de... 00:59:36
Transform... 00:59:38
Es decir... 00:59:39
Está usando... 00:59:39
Por un lado las kinemáticas... 00:59:40
Por otro lado el fix update... 00:59:42
Entiendo que sería con la intención de limitar... 00:59:44
Hasta donde se rotaba... 00:59:47
¿Vale? 00:59:48
Y para ese caso... 00:59:49
Lo mejor hubiera sido a lo mejor... 00:59:50
Incluso poner... 00:59:51
Y ojo... 00:59:53
Esto no es tontería... 00:59:53
Poner límites físicos... 00:59:54
Es decir... 00:59:56
Poner cubos... 00:59:56
Que marquen... 00:59:57
Por ejemplo... 00:59:58
Poner... 00:59:59
Esto... 01:00:00
A lo mejor es una solución menos sofisticada... 01:00:00
Pero se pueden poner cubos con sus colliders... 01:00:02
Que sirvan de límites físicos... 01:00:04
Hasta donde puede girar... 01:00:06
La plataforma... 01:00:08
¿Vale? 01:00:09
Si se pone... 01:00:09
Como poner topes... 01:00:10
En vez de por código... 01:00:11
Lo digo porque es verdad que... 01:00:13
Lo relacionado con... 01:00:14
Como ya vimos el otro día... 01:00:15
Lo relacionado con las rotaciones... 01:00:16
A veces tiene... 01:00:19
Checha... 01:00:20
Porque como usa esos... 01:00:21
Ese quaternion... 01:00:23
Que... 01:00:25
Usa las cuatro dimensiones... 01:00:25
Frente al Euler-Angels... 01:00:26
Etcétera... 01:00:28
A veces... 01:00:29
Si nosotros aquí... 01:00:29
Ponemos... 01:00:30
Un collider... 01:00:31
¿Vale? 01:00:31
Yo cuando he roto... 01:00:33
Si... 01:00:35
Le he puesto este límite... 01:00:35
¿Vale? 01:00:36
Pero nada... 01:00:37
Ahí... 01:00:38
Mirad... 01:00:39
Que yo aquí... 01:00:40
No estoy... 01:00:41
Estoy impidiendo... 01:00:42
A ver... 01:00:43
Perdón... 01:00:43
Tututu... 01:00:45
Estoy impidiendo... 01:00:46
No sé por qué no se ve... 01:00:47
A ver... 01:00:49
Estoy impidiendo... 01:00:50
¿Veis que se ha quedado ahí... 01:00:51
Atascada? 01:00:52
Bueno... 01:00:54
Ahora es porque la he situado mal... 01:00:54
Pero yo ahora... 01:00:56
Por mucho que le dé hacia arriba... 01:00:56
Voy a volver a arrancar... 01:00:58
Esperad... 01:00:59
Voy a poner aquí... 01:01:00
El tope... 01:01:01
¿Vale? 01:01:02
Y le doy al play... 01:01:03
Ahora cuando gire la plataforma... 01:01:04
¿Vale? 01:01:07
Donde esté ese tope... 01:01:08
Se queda... 01:01:10
Encajada... 01:01:12
Y ya no rota más... 01:01:13
Le he puesto un tope... 01:01:14
¿Vale? 01:01:15
Hay otra cosa importante... 01:01:16
Entiendo que me vais siguiendo... 01:01:17
Hay otra cosa importante... 01:01:19
Que es que cuando... 01:01:20
Estéis usando Rigid Bodies... 01:01:22
Para que detecte las... 01:01:24
Los movimientos... 01:01:26
¿Vale? 01:01:27
No olvidéis que el Rigid Body al final... 01:01:27
Todo lo que hagamos con... 01:01:29
Addor... 01:01:30
Add... 01:01:31
Add Force... 01:01:31
Etcétera... 01:01:33
Realmente lo que estamos haciendo... 01:01:33
Es cambiar los valores del Rigid Body... 01:01:34
Que es el gestor de las físicas del juego... 01:01:36
¿Vale? 01:01:39
Si por defecto... 01:01:39
Aunque aquí estaba cambiado... 01:01:41
Pero en la bola seguramente no lo esté... 01:01:42
¿Vale? 01:01:45
Bueno y aparte... 01:01:46
Aquí he cambiado el método de interpolación... 01:01:47
Que esto por defecto viene en known... 01:01:48
Y en este caso mejor no cambiarlo... 01:01:50
Bueno, esto es como más avanzado... 01:01:52
Pero la detección... 01:01:53
Cuando se está moviendo por físicas... 01:01:54
Si queremos que los objetos... 01:01:57
Van a estar en movimiento... 01:01:58
Y se van a colisionar... 01:01:59
Entre ellos... 01:02:00
Para que no vaya intentando hacer los cálculos... 01:02:00
En periodos de tiempo relacionados con... 01:02:04
Con el Fixed Date... 01:02:06
Que a veces... 01:02:08
Pueden hacer que la bola atraviese... 01:02:09
Digamos la geometría... 01:02:11
Y cuando ya lo calcula... 01:02:12
Digamos lo atravesado... 01:02:13
Están las opciones de Continuous... 01:02:14
¿Vale? 01:02:16
Entonces si vamos a tener elementos... 01:02:17
Que se van a ir moviendo con el Rigid Body... 01:02:18
Debería cambiarse a... 01:02:20
Algunas de las opciones de Continuous... 01:02:22
Cada una de las que tienen luego... 01:02:24
Otro apellido... 01:02:26
Tiene que ver... 01:02:27
Con que hay objetos... 01:02:28
Que se van a ir moviendo... 01:02:30
Que se mueven... 01:02:30
Y están quietos... 01:02:30
¿Vale? 01:02:33
O que se mueven ellos... 01:02:33
O están quietos ellos... 01:02:35
Pero reciben el movimiento de otro objeto... 01:02:36
Entonces... 01:02:38
Esto es la documentación... 01:02:39
Habría que mirarlo más en concreto... 01:02:40
Que es cada cosa... 01:02:42
¿Vale? 01:02:42
Que ahora más o menos... 01:02:43
No sabría decir... 01:02:44
Pero aquí... 01:02:46
Dependiendo de cómo sean los objetos... 01:02:46
Que se vayan a mover... 01:02:48
Si es el objeto que se está moviendo... 01:02:49
O está detectando la colisión de otro objeto... 01:02:51
¿Vale? 01:02:53
Hay distintos tipos de Continuous... 01:02:53
Que irán funcionando mejor o peor... 01:02:55
Para que precisamente los objetos... 01:02:57
No se atraviesen... 01:02:58
Cuando no deben... 01:02:59
¿Vale? 01:03:00
Pero es que es verdad que si... 01:03:01
Lo dejamos por defecto... 01:03:03
No usa muchos cálculos... 01:03:04
Para detectar las colisiones... 01:03:06
Y usará más si ponemos este Continuous... 01:03:08
Pero en ocasiones hay que ponerlo... 01:03:10
¿Vale? 01:03:11
Pero... 01:03:12
Por otro lado... 01:03:12
Todo lo que ha añadido aquí de... 01:03:13
Para clampear estos... 01:03:15
Los límites de rotación de la plataforma... 01:03:18
Lo que están haciendo es cambiar en todo momento... 01:03:21
La rotación de la... 01:03:23
Del Transform... 01:03:25
¿Vale? 01:03:26
En el Transform... 01:03:26
Pero aparte también está añadiendo fuerzas... 01:03:27
Esto es... 01:03:29
Añadir fuerzas y kinemáticas simultáneamente... 01:03:30
Lo único que hace es volver loca la máquina... 01:03:33
Porque tened en cuenta... 01:03:35
Que aquí está cambiando la rotación... 01:03:36
En los tiempos de ejecución... 01:03:38
¿Vale? 01:03:40
En cuanto puede... 01:03:40
Pero luego por otro lado... 01:03:41
El Fixed Update... 01:03:42
Y como recuerdo... 01:03:44
¿Vale? 01:03:45
Sé que a veces me repito... 01:03:45
Pero creo que... 01:03:46
Está bien... 01:03:48
Hay un... 01:03:49
Hay una opción de los Project Settings... 01:03:50
Que es este Fixed Time Step... 01:03:52
Que es... 01:03:53
El tiempo en el que se van calculando... 01:03:54
Los Fixed Update... 01:03:56
Si por un lado... 01:03:57
Está cambiando la rotación... 01:03:58
Cada 0,15 segundos... 01:03:59
Y luego por otro lado... 01:04:02
Cada 0,02... 01:04:03
Está añadiendo fuerzas... 01:04:05
Esto se está volviendo loco... 01:04:07
¿Vale? 01:04:08
Y aunque visualmente... 01:04:08
A lo mejor parezca que hasta funciona... 01:04:10
En décimas de segundo... 01:04:12
¿Vale? 01:04:13
Está haciendo este tipo de... 01:04:14
Operaciones en los que la bola no sabe ni para dónde se tiene que mover... 01:04:16
¿Vale? 01:04:20
Por eso... 01:04:20
Se mete dentro... 01:04:21
Se va... 01:04:21
No sólo por esto que os he dicho antes de las colisiones... 01:04:22
Sino que es que... 01:04:24
No sabe dónde está rotando... 01:04:24
Están como... 01:04:26
Asociadiéndose distintas... 01:04:27
Distintos movimientos a la vez... 01:04:29
¿Vale? 01:04:31
Por eso en este caso... 01:04:31
En realidad... 01:04:33
Hubiera sido más... 01:04:33
Fácil... 01:04:35
Poner esos... 01:04:36
Topetes al cubo de... 01:04:36
Para que lo detecte... 01:04:38
¿Vale? 01:04:39
Y... 01:04:40
Ahora la bola... 01:04:41
Sí que... 01:04:42
Debería moverse... 01:04:43
De una forma más adecuada... 01:04:44
Es verdad que como la bola también... 01:04:46
Bueno, ha ido cambiando distintos... 01:04:48
Elementos... 01:04:50
¿Vale? 01:04:51
Pero en interpolated... 01:04:51
No... 01:04:53
Continuos... 01:04:53
¿Vale? 01:04:54
Y aquí... 01:04:55
Discret... 01:04:56
¿Vale? 01:04:57
Lo ponemos en continuos también... 01:04:57
Para que lo encuentre... 01:04:59
Y con esto debería funcionar... 01:05:01
Mejor... 01:05:03
¿Vale? 01:05:04
Y de hecho... 01:05:04
Y otra vez... 01:05:05
Cuando se reinicia el nivel... 01:05:06
Como hemos puesto... 01:05:07
Que lo que se hace es... 01:05:09
Recolocar la bola... 01:05:10
En vez de reiniciarse el nivel... 01:05:10
¿Vale? 01:05:12
Que lo hizo también en este nivel... 01:05:12
Pues la... 01:05:14
La bola no se encuentra... 01:05:15
¿Vale? 01:05:17
Aquí está pasando algo más... 01:05:17
Que probablemente... 01:05:19
A quien lo hizo se lo pondría en las... 01:05:20
En la... 01:05:23
Corrección... 01:05:24
Pero bueno... 01:05:25
Que esto... 01:05:26
Este tipo de operaciones de... 01:05:26
Ampliar... 01:05:29
A ver... 01:05:30
Los dos tiempos de ejecución... 01:05:32
Para una misma operación... 01:05:34
Que en este caso es rotar... 01:05:35
Mala idea... 01:05:36
¿Vale? 01:05:37
Hasta aquí ¿Qué tal? 01:05:38
Vale... 01:05:42
Me... 01:05:43
La persona de hecho... 01:05:44
Que ha hecho esta práctica... 01:05:46
Me pone que es... 01:05:48
Que lo hizo porque quería suavizar... 01:05:49
Suavizar los movimientos de la plataforma... 01:05:50
Vale... 01:05:52
Importante... 01:05:53
Para suavizar los movimientos... 01:05:54
Aparte de... 01:05:56
Que influye bastante... 01:05:57
La masa... 01:05:58
Y el drag... 01:05:59
Y el angular drag... 01:05:59
De la... 01:06:00
De la plataforma... 01:06:01
También es importante recordar... 01:06:02
A ver... 01:06:04
Porque aquí tengo todos esos scripts... 01:06:04
Aquí... 01:06:06
Que... 01:06:07
Bueno... 01:06:08
Veo que lo jugó ya en su momento... 01:06:08
¿Vale? 01:06:10
Pero hay distintos tipos de fuerzas... 01:06:11
Y aceleración es uno... 01:06:13
Que no... 01:06:15
Si os fijáis... 01:06:16
En la descripción... 01:06:17
Cuando me pongo encima... 01:06:17
Añe una... 01:06:18
Aceleración continua al... 01:06:19
Rigid Body... 01:06:21
Ignorando su masa... 01:06:21
Eso lo que hace es precisamente... 01:06:22
Dar un acelerón... 01:06:24
Como... 01:06:25
Eh... 01:06:26
Como se diría... 01:06:27
Repentino... 01:06:29
¿Vale? 01:06:30
Hay otros tipos de fuerzas... 01:06:30
Como por ejemplo... 01:06:32
El... 01:06:34
El que viene por defecto... 01:06:34
Que es el... 01:06:36
El Force... 01:06:37
¿Vale? 01:06:38
Que ese es más... 01:06:38
Digamos... 01:06:39
Progresivo... 01:06:40
Y tú le añades la fuerza... 01:06:40
A lo mejor hay que darle mucha fuerza... 01:06:41
A la rotación... 01:06:43
Pero sí que... 01:06:44
Va a tener como... 01:06:45
Un... 01:06:47
Movimiento suavizado... 01:06:48
Porque va a ir cogiendo fuerza... 01:06:49
A medida que pulsas... 01:06:50
¿Vale? 01:06:51
En cada fixate... 01:06:51
Que estemos pulsando la tecla... 01:06:52
Se irá añadiendo esta fuerza... 01:06:54
Y tiene... 01:06:56
En cuenta su masa... 01:06:57
¿Vale? 01:06:57
Si ponemos aceleración... 01:06:57
En cambio... 01:06:59
Lo que estamos haciendo es... 01:07:00
Que da igual... 01:07:02
Cuánto le hayamos puesto... 01:07:02
De... 01:07:03
De masa... 01:07:03
Sino que va a tener una fuerza... 01:07:05
Como más repentina... 01:07:06
Y ya Velocity Change es... 01:07:07
Como que le añade la velocidad... 01:07:09
Y ignora tanto... 01:07:11
Tanto la masa... 01:07:13
Como... 01:07:14
Como la inercia que tuviera de antes... 01:07:15
Si no me equivoco... 01:07:18
¿Vale? 01:07:18
Cada uno tiene una opción... 01:07:18
El Impulse... 01:07:20
Por ejemplo... 01:07:21
Que se usa bastante... 01:07:21
Cuando hacemos saltos... 01:07:22
Con Nut Force... 01:07:24
Se usa para añadir una fuerza... 01:07:25
Y usa su masa... 01:07:27
Pero... 01:07:28
Añade la fuerza... 01:07:28
Repentinamente... 01:07:29
¿No? 01:07:30
Veis que cada uno... 01:07:30
Tiene como... 01:07:31
Un... 01:07:32
Matiz distinto... 01:07:33
Porque si al salto... 01:07:34
Le pusiéramos una fuerza... 01:07:35
En un Force Mode... 01:07:37
Tipo Force... 01:07:38
Como... 01:07:39
Lo que queremos al pulsar una tecla... 01:07:39
Es que salte... 01:07:41
Si tiene en cuenta la masa... 01:07:42
A la que coge esa aceleración... 01:07:43
Pues ya no es... 01:07:45
Un impulso... 01:07:45
¿Vale? 01:07:46
No es un salto... 01:07:47
Aquí sí que... 01:07:48
Digamos que sigue... 01:07:49
Teniendo en cuenta... 01:07:50
El peso que hayamos puesto... 01:07:50
En la masa del Rigid Body... 01:07:52
¿Vale? 01:07:53
Aquí... 01:07:53
Aparte del traje... 01:07:54
Etcétera... 01:07:55
Pero aparte... 01:07:55
Le da una fuerza... 01:07:56
Que sí que es... 01:07:57
Como... 01:07:58
Repentina... 01:07:59
No sé si me estoy explicando muy bien... 01:08:00
Porque... 01:08:02
Se me... 01:08:02
Además no sé muy bien cómo explicarlo... 01:08:03
Porque... 01:08:04
Digamos que es... 01:08:05
Probarlo... 01:08:07
Pero sí que es... 01:08:07
Tener en cuenta que... 01:08:08
Tanto aceleración... 01:08:10
Como... 01:08:11
Velocity Change... 01:08:13
¿Vale? 01:08:14
Son fuerzas que no tienen en cuenta... 01:08:15
En realidad las físicas... 01:08:16
Hacen variaciones del Velocity... 01:08:17
Que es este valor... 01:08:19
Que os dije que había aquí... 01:08:20
¿Vale? 01:08:21
Que... 01:08:22
Le añade una velocidad... 01:08:23
Como repentina... 01:08:25
Así que... 01:08:25
No tiene en cuenta las... 01:08:26
Inercias... 01:08:27
Que había previamente... 01:08:28
Etcétera... 01:08:29
¿Vale? 01:08:30
Indica que es complicado... 01:08:31
Sí, sí... 01:08:32
Es... 01:08:33
Sí... 01:08:33
Esto es mucho probar... 01:08:34
Y a veces es pegarse... 01:08:36
Y es complicado... 01:08:38
Sí... 01:08:38
Entonces... 01:08:39
Por eso yo... 01:08:39
En la mayoría de casos... 01:08:40
Que he visto que estaba... 01:08:42
Bien enfocado... 01:08:43
Pero... 01:08:44
Bueno... 01:08:45
Alguna cosa... 01:08:45
A lo mejor no está del todo bien... 01:08:46
Pues... 01:08:47
Me sirve precisamente... 01:08:47
Para en estas tutorías... 01:08:48
Ir viendo... 01:08:49
E ir puliendo... 01:08:50
E ir intentando entender... 01:08:51
Todo mejor... 01:08:53
Pero... 01:08:54
Pero por supuesto... 01:08:55
Esto es probar y probar... 01:08:55
Y... 01:08:57
Y no hay una solución... 01:08:57
No he visto la solución... 01:08:58
Etcétera... 01:08:58
De hecho una última cosa... 01:08:59
Que... 01:09:01
Que he visto en varios casos es... 01:09:02
Que he visto... 01:09:04
Varios scripts... 01:09:04
Para decir... 01:09:06
Hacia dónde... 01:09:06
Hacia qué nivel se carga... 01:09:07
Es decir... 01:09:09
Cuando se... 01:09:09
Cae la bola... 01:09:10
O cuando se toca el... 01:09:12
La meta... 01:09:13
A qué nivel vamos... 01:09:14
¿Vale? 01:09:15
Y esto realmente... 01:09:16
Se podría simplificar... 01:09:17
Para que fuera todo... 01:09:18
En un mismo script... 01:09:19
¿Vale? 01:09:21
Sin... 01:09:22
Bueno... 01:09:22
Ahora porque he cambiado... 01:09:22
Con lo de los tags y tal... 01:09:23
Pero si os fijáis en level 1... 01:09:25
Y level 2... 01:09:26
Que lo estamos viendo... 01:09:27
Aquí ¿Vale? 01:09:28
Es una forma rápida... 01:09:28
De ver los códigos... 01:09:29
Antes de meternos... 01:09:30
Lo único que cambia... 01:09:31
Es el número de escena... 01:09:32
¿Vale? 01:09:34
Fijaos... 01:09:35
Que es exactamente lo mismo... 01:09:36
Menos el número de escena... 01:09:37
Entonces... 01:09:39
En realidad... 01:09:39
Lo que podríamos hacer es... 01:09:40
En vez de poner aquí... 01:09:41
El número directamente... 01:09:42
Es... 01:09:43
Poner un int... 01:09:44
Por ejemplo... 01:09:45
¿Vale? 01:09:46
Una variable int... 01:09:46
Que sea la escena... 01:09:48
Para poder aplicarlo... 01:09:50
En todos los... 01:09:51
Todos los momentos... 01:09:53
Que haya que usar este código... 01:09:54
Porque así... 01:09:56
De este modo... 01:09:56
Si tenemos... 01:09:57
En la meta... 01:09:58
Siempre el mismo script... 01:09:59
Con este mismo script... 01:10:00
Podríamos ir pasando... 01:10:00
De una a otra... 01:10:01
¿Cómo podríamos hacer esto? 01:10:02
Pues por ejemplo... 01:10:04
Si en el... 01:10:05
Scene Manager... 01:10:06
Si le decimos... 01:10:07
Oye... 01:10:07
Scene Manager... 01:10:08
Que es... 01:10:10
Que es la clase... 01:10:10
Que activamos... 01:10:11
Recordad... 01:10:12
Con esta librería... 01:10:13
Que hay que meter... 01:10:14
Siempre que hagamos gestión de... 01:10:14
De escenas... 01:10:16
Scene Manager... 01:10:17
Cógeme... 01:10:19
El... 01:10:19
El index... 01:10:20
De esta escena... 01:10:22
En la que estoy ahora mismo... 01:10:23
¿Vale? 01:10:24
Y me devuelves... 01:10:24
Ese index... 01:10:25
¿Vale? 01:10:26
Esto... 01:10:27
Es básicamente... 01:10:27
Gestor de... 01:10:28
A ver... 01:10:30
No sé por qué me está dando fallo... 01:10:30
Vale... 01:10:33
Sí... 01:10:37
Porque hay que guardarlo... 01:10:37
En una escena... 01:10:38
Básicamente... 01:10:39
Vale... 01:10:41
A ver... 01:10:42
¿Por qué no... 01:10:45
Tiene así... 01:10:46
Ah, no... 01:10:48
Vale... 01:10:48
Que esto... 01:10:49
No estoy poniendo el método... 01:10:49
Que hay que poner... 01:10:50
Aquí estábamos diciendo... 01:10:51
Que cogiera una escena por... 01:10:52
Como que cargara una escena... 01:10:54
Por el número de index... 01:10:55
Y entonces le teníamos que dar... 01:10:56
Ese número de index... 01:10:57
Pero lo que queremos es... 01:10:58
Otra... 01:10:59
Otro método que es... 01:11:00
Get... 01:11:01
Active scene... 01:11:02
Es decir... 01:11:03
Coge... 01:11:04
La escena en la que estoy... 01:11:05
Y me devuelves el... 01:11:06
Index... 01:11:08
Del build... 01:11:09
Settings... 01:11:10
¿No? 01:11:10
Ahora qué es lo que estamos haciendo... 01:11:11
Que en... 01:11:13
El nivel que estemos... 01:11:13
Va a guardar... 01:11:15
El número del build index... 01:11:16
¿Vale? 01:11:18
Si por ejemplo estamos en este nivel... 01:11:18
Pues lo que cogería sería... 01:11:20
El build index... 01:11:22
Número... 01:11:25
Como estamos en el nivel 2... 01:11:26
Número 1... 01:11:27
¿Vale? 01:11:28
Y si estuviera en la escena 0... 01:11:29
Cogería... 01:11:30
Guardaría dentro de este número in... 01:11:31
El valor del index... 01:11:33
Que cogiera de la escena activa... 01:11:35
¿Vale? 01:11:37
Entonces yo cuando... 01:11:37
Cargara la escena... 01:11:39
Si digo... 01:11:40
Vale, yo estoy ahora mismo... 01:11:41
En la escena 1... 01:11:42
Pues quiero pasar a la siguiente... 01:11:43
Pues le pongo más 1... 01:11:44
Ahora mismo... 01:11:45
Si esto... 01:11:46
Si lo pusiéramos a la... 01:11:46
A ese box collider o... 01:11:47
O a ese elemento que sirve de meta... 01:11:49
¿Vale? 01:11:51
Para el siguiente nivel... 01:11:51
En todos los niveles puede tener... 01:11:52
Exactamente el mismo script... 01:11:54
Que lo que va a hacer es... 01:11:55
Coger la escena en la que estamos... 01:11:56
Y... 01:11:57
Le añade 1... 01:11:58
Es decir... 01:11:59
Siempre va a ir... 01:11:59
Si este es el index de esta escena... 01:12:00
Pues a la del siguiente... 01:12:02
¿Vale? 01:12:03
Es verdad que cuando llegara a esta escena... 01:12:03
Habría que decirle... 01:12:05
Pues si el... 01:12:05
Si la escena es... 01:12:06
Eh... 01:12:08
Mayor que 2... 01:12:09
Pues ve a la 0... 01:12:10
¿Vale? 01:12:11
Pero que... 01:12:11
Lo que quiero deciros es que... 01:12:12
Esto se puede hacer de esta forma... 01:12:14
Para que sea más dinámico... 01:12:16
Me refiero a que... 01:12:18
No haya que escribir un script... 01:12:18
Por cada nivel... 01:12:20
Y ojo... 01:12:21
Esta... 01:12:22
Digamos a lo mejor es la parte difícil... 01:12:22
Pero recordad que también... 01:12:24
Lo que podríamos hacer es... 01:12:25
Un serialize field... 01:12:27
¿Vale? 01:12:27
No... 01:12:31
Poner nada... 01:12:31
Tenerlo como estaba más o menos... 01:12:33
Al principio y decir... 01:12:35
Oye... 01:12:36
Con este mismo script... 01:12:37
Yo lo voy arrastrando a todos los niveles... 01:12:38
Porque yo ya... 01:12:40
Esto si hay que hacerlo en el inspector... 01:12:41
Donde tenga... 01:12:43
Ese... 01:12:45
A ver... 01:12:46
Porque no sé si es que no... 01:12:46
Ah bueno... 01:12:47
Es que lo he hecho en el nivel 1... 01:12:47
¿Vale? 01:12:48
Imaginaos que le pongo este script genérico... 01:12:49
De todos los... 01:12:51
Lo muevo... 01:12:52
¿Vale? 01:12:53
Este script genérico de... 01:12:53
Que pone level 1... 01:12:55
Pero lo he hecho genérico... 01:12:56
Aquí ahora podría decir... 01:12:57
¿Vale? 01:12:58
La escena a la que tiene que ir es... 01:12:59
3... 01:13:01
¿Vale? 01:13:01
O 2... 01:13:02
Ahora desde el inspector... 01:13:03
Pero en vez de tener que ir haciendo script... 01:13:05
Por cada uno de los niveles... 01:13:07
Desde el inspector... 01:13:09
Pues aquí he puesto que este vaya al 2... 01:13:10
Y ahora voy al nivel 1... 01:13:11
Por ejemplo... 01:13:13
En el cuarto... 01:13:14
Aunque no sé ya que estoy haciendo... 01:13:15
Pero... 01:13:16
Next level... 01:13:17
Digo... 01:13:18
No... 01:13:18
Yo voy a usar... 01:13:19
El script que tengo para... 01:13:20
Para... 01:13:22
Genérico... 01:13:22
Para cambiar de nivel... 01:13:23
Para cambiar de nivel al siguiente nivel... 01:13:24
Básicamente... 01:13:26
¿No? 01:13:26
Y yo... 01:13:27
Y lo voy a hacer... 01:13:27
Y lo voy a hacer en... 01:13:27
Este... 01:13:28
Tu level 1... 01:13:29
Bueno... 01:13:30
Pues le digo aquí... 01:13:30
Y le digo... 01:13:31
No... 01:13:32
Yo cuando me pase este nivel... 01:13:32
Quiero ir a la escena... 01:13:33
Del build index 1... 01:13:35
¿Vale? 01:13:37
Y vais a ver que ahora... 01:13:37
Lo que hace es... 01:13:38
Cuando toque ese... 01:13:39
Next level... 01:13:41
Ese voice collider... 01:13:41
Que es un trigger... 01:13:42
Pues paso al nivel... 01:13:43
1... 01:13:45
Que es verdad que... 01:13:46
Como antes he puesto... 01:13:47
Lo de... 01:13:49
Cargar la escena... 01:13:49
No sé si es que cambia el orden... 01:13:52
Pero... 01:13:53
A ver... 01:13:54
Me ha ido a... 01:13:55
La del build settings 2... 01:13:56
Sí... 01:13:57
Y yo quiero ir... 01:14:00
A la del 1... 01:14:01
Vale... 01:14:02
Igual... 01:14:03
También... 01:14:04
Quizás que haya otro... 01:14:05
Hay otro script para cambiar... 01:14:08
Nivel que me está sumando otro más... 01:14:11
Porque si no... 01:14:15
Debería ser a 1... 01:14:16
Sí... 01:14:17
Tu level 1... 01:14:18
Lo tenemos ahí... 01:14:19
Tu level 1... 01:14:20
Steam manager... 01:14:22
Sí... 01:14:24
Debería estar bien... 01:14:24
Es verdad... 01:14:27
Vale... 01:14:27
Y esto también es importante... 01:14:28
Vale... 01:14:29
Y que creo que es el problema... 01:14:29
Este compañero... 01:14:31
Y lo habéis hecho varios... 01:14:32
Y esto... 01:14:33
Es importante que poco a poco... 01:14:34
Vayamos intentando pensarlo de otra forma... 01:14:35
Vale... 01:14:37
En la propia... 01:14:37
Si no me equivoco... 01:14:39
En el propio movimiento... 01:14:40
No... 01:14:42
No era en este caso... 01:14:42
A ver... 01:14:43
Seguiendo en cámara... 01:14:44
Reinicio... 01:14:45
Vale... 01:14:47
El reinicio del nivel... 01:14:51
Si os fijáis... 01:14:52
Tiene aquí este... 01:14:54
GameObject... 01:14:56
GameObject con un collider... 01:14:57
Que cuando la bola... 01:14:59
A ver... 01:15:00
En cuál lo tenía... 01:15:00
Si es que lo tiene que tener aquí... 01:15:01
Cuando la bola colisione... 01:15:02
Si se llama... 01:15:04
Reinicio... 01:15:05
Lo que habíamos visto antes... 01:15:06
Vale... 01:15:07
Pues ya... 01:15:08
Re... 01:15:08
Re coloca la bola... 01:15:09
Pero no es mejor... 01:15:10
Vale... 01:15:12
Y esto lo había puesto en una script que se llama reinicia... 01:15:12
Pero os sugiero que... 01:15:14
Es mejor... 01:15:15
Lo que es... 01:15:17
Lo relativo al reinicio... 01:15:18
Es script... 01:15:19
Ponerlo en ese GameObject... 01:15:20
Me explico... 01:15:22
En vez de poner todo en la bola... 01:15:23
Vale... 01:15:25
Probablemente... 01:15:26
Sería más sencillo... 01:15:27
Si yo me cargo de aquí el componente... 01:15:28
Vale... 01:15:30
Y en el reinicio... 01:15:30
Es en el que pongo las acciones propias... 01:15:31
Del reinicio... 01:15:33
Vale... 01:15:35
Entonces... 01:15:35
Habrá que adaptar y pensar... 01:15:36
Oye... 01:15:37
Si... 01:15:38
En este nivel... 01:15:39
Si el collider... 01:15:41
Reinicio es el que hace... 01:15:42
Que cuando lo toque... 01:15:44
Me vuelva a colocar... 01:15:45
Que ojo... 01:15:46
Aquí habría que hacer... 01:15:46
Reiniciar la escena... 01:15:47
Preferiblemente... 01:15:49
Pero si lo que hace es... 01:15:50
Recolocar la bola... 01:15:51
Para entre comillas... 01:15:52
Reiniciar el nivel... 01:15:53
Vale... 01:15:55
Pues lo que habrá que decirle... 01:15:55
Es que el collider... 01:15:56
Es el que hace... 01:15:57
Que sea el de la bola... 01:15:57
Pero ahora... 01:15:58
Cuando busquemos... 01:15:58
Que hace que... 01:16:00
Sabemos que el objeto... 01:16:01
Que tiene la función de reiniciar... 01:16:02
Es la que tiene... 01:16:03
El script de reinicio... 01:16:04
Y va a funcionar igual... 01:16:06
Porque... 01:16:07
Básicamente... 01:16:07
Lo que hago ahora... 01:16:08
Cuando lo tiro... 01:16:09
Se cae... 01:16:10
Y... 01:16:11
No hace nada... 01:16:12
Vamos a ver... 01:16:13
Porque... 01:16:14
Aquí... 01:16:15
Como ya estoy tocando tantas cosas... 01:16:15
Me estoy perdiendo... 01:16:17
Pero... 01:16:17
Básicamente... 01:16:18
Vale... 01:16:19
Cuando toque... 01:16:19
Ese collider... 01:16:20
De lo que yo he llamado reinicio... 01:16:21
Y aquí... 01:16:23
Debería estar en reinicio... 01:16:24
Cuando toque... 01:16:26
La bola sphere... 01:16:27
Sphere collider... 01:16:29
Sí... 01:16:30
Pues... 01:16:31
Debería... 01:16:31
Resetear... 01:16:33
La posición de la bola... 01:16:34
Aquí... 01:16:35
Cuando la otra bola... 01:16:37
Que toque... 01:16:39
Sea... 01:16:41
Su collider... 01:16:42
Reinicio... 01:16:43
Que es esto que me guarda aquí... 01:16:44
Muevo la bola ahí... 01:16:46
Vale... 01:16:47
Problema... 01:16:48
Sí que es verdad... 01:16:48
Ahora... 01:16:49
Lo que estamos haciendo es... 01:16:50
Que cuando la bola se... 01:16:52
Está aludiendo a este reinicio... 01:16:53
El transform... 01:16:55
De este objeto... 01:16:56
Es decir... 01:16:58
De reinicio... 01:16:58
Cambia de ubicación... 01:16:59
¿Vale? 01:17:01
Es decir... 01:17:02
Es lo que se está moviendo... 01:17:02
¿Qué habría que hacer aquí? 01:17:03
Sé que es enrevesado... 01:17:04
Pero aquí habría que decirle... 01:17:05
No... 01:17:06
Lo que tiene que cambiar de sitio es... 01:17:07
Lo que tenga... 01:17:09
Lo que haya chocado con ello... 01:17:10
Que en este caso es la bola... 01:17:12
¿No? 01:17:13
Entonces aquí habría que decirle que... 01:17:13
Lo que se haya guardado... 01:17:15
En esta colisión... 01:17:17
¿Vale? 01:17:18
Que su transform... 01:17:19
Vuelva a su... 01:17:20
A su posición... 01:17:22
¿Vale? 01:17:23
Por eso no funcionaba... 01:17:23
Ahora vais a ver... 01:17:25
Que ya en este momento... 01:17:26
En reinicio... 01:17:26
Yo cuando la bola se caiga... 01:17:27
Choca... 01:17:29
Y debería... 01:17:31
Volver a la posición inicial... 01:17:31
Que... 01:17:34
Ojo... 01:17:34
Otra vez el problema está... 01:17:35
En que... 01:17:36
Cuando... 01:17:37
Empieza el juego... 01:17:38
Estamos guardando la posición... 01:17:39
De este GameObject... 01:17:41
Como al que le hemos puesto el script... 01:17:43
Es NextLevel... 01:17:45
Está guardando estas coordenadas... 01:17:46
Entonces... 01:17:47
¿Qué hace? 01:17:48
Que sí... 01:17:49
Que... 01:17:50
Cuando la bola toque... 01:17:50
Ese objeto... 01:17:52
Me ponga... 01:17:53
InitPost... 01:17:53
Pero es que en InitPost... 01:17:54
Estamos guardando la posición... 01:17:55
De... 01:17:56
De... 01:17:58
Del propio Collider... 01:18:00
Entonces la bola se está colocando... 01:18:03
Donde está el precipicio... 01:18:04
¿Vale? 01:18:06
Pues aquí por ejemplo... 01:18:06
Tendríamos que hacer un NewVector3... 01:18:07
Voy a hacer uno a ojo... 01:18:09
Porque no sé qué coordenadas... 01:18:10
Pero voy a ponerle... 01:18:11
0, 0, 0... 01:18:12
Para que se mueva al origen... 01:18:13
Entonces... 01:18:15
Ahora... 01:18:16
Sí que vamos a ver la reacción... 01:18:17
Esto lo estoy haciendo un poco... 01:18:18
Para que veáis... 01:18:19
Cómo pensar... 01:18:20
¿Ves? 01:18:22
Bueno... 01:18:22
Habría que haberlo puesto un poco más arriba... 01:18:23
Pero veis que está recolocando la bola... 01:18:25
¿Vale? 01:18:26
Esto lo digo... 01:18:28
Eso... 01:18:29
Para que veáis... 01:18:29
O penséis que... 01:18:30
Lo suyo es... 01:18:31
El script que hace las labores de reiniciar... 01:18:32
Que esté en el GameObject de reiniciar... 01:18:34
Porque si empezamos a sumar muchas... 01:18:36
Acciones en la bola... 01:18:38
¿Vale? 01:18:39
Igual que el seguimiento de la cámara... 01:18:39
Este script de seguimiento de la cámara... 01:18:42
Realmente debería estar... 01:18:43
En la cámara... 01:18:44
Y de hecho aquí está en todos lados... 01:18:46
Y no sé por qué... 01:18:48
Pero aquí seguramente está habiendo algún tipo de conflicto... 01:18:49
Pero este seguimiento de la cámara... 01:18:51
No debería funcionar... 01:18:53
La que tiene que seguir... 01:18:54
A la bola... 01:18:56
Es la cámara... 01:18:56
Entonces... 01:18:57
Intentemos siempre que esté... 01:18:58
Donde debe de estar... 01:19:00
¿Vale? 01:19:01
De hecho antes... 01:19:02
Estaba viendo más hacia abajo... 01:19:02
Creo porque se estaban sumando dos offsets... 01:19:04
Si no me equivoco... 01:19:06
¿Vale? 01:19:07
Y ahora cuando me meto... 01:19:07
No sé por qué todavía está... 01:19:09
Yendo al nivel... 01:19:10
Uno seguramente... 01:19:12
Porque tengo que guardar el juego... 01:19:13
Y tengo que guardar varios scripts... 01:19:14
Que tengo por aquí... 01:19:16
Sin guardar... 01:19:17
Y yo ya no sé que he tocado... 01:19:17
Pero... 01:19:19
A ver... 01:19:20
Por el modo... 01:19:21
No contiene... 01:19:22
Vale... 01:19:23
Sí que hay... 01:19:23
El lector que... 01:19:24
Ahora he dejado a escribir... 01:19:24
Bueno... 01:19:26
Aquí ya hay más cosas... 01:19:26
Que se podrían... 01:19:28
Ir viendo... 01:19:29
Pero... 01:19:30
Vamos a seguir dando vueltas... 01:19:31
La tarea tres... 01:19:33
Más o menos... 01:19:34
Creo que... 01:19:35
Ya que entre lo que habéis entregado... 01:19:37
Y las dudas... 01:19:38
Que hayáis tenido... 01:19:39
No sé si os queda alguna duda pendiente... 01:19:41
Sé que esto son muchas cosas... 01:19:43
Y es practicarlo... 01:19:44
Y para eso están las tareas... 01:19:45
Yo cuando corrijo las tareas... 01:19:46
Ya os digo... 01:19:47
Intento... 01:19:48
Ponerme en vuestra cabeza... 01:19:49
También en el nivel... 01:19:50
En el sentido de... 01:19:50
Joder... 01:19:52
Sé que lo está intentando... 01:19:52
No lo está consiguiendo... 01:19:53
Ahí lo suyo sería que me... 01:19:54
Preguntar ahí... 01:19:56
En el foro... 01:19:56
Pero... 01:19:57
Básicamente... 01:19:58
Lo que valoro sobre todo... 01:20:00
Es el intento... 01:20:02
Y ver que va bien enfocado... 01:20:02
¿Vale? 01:20:03
Sí que es verdad... 01:20:04
Que si esperáis... 01:20:05
A la entrega de la tarea... 01:20:06
Para plantearme las dudas... 01:20:08
O que yo las vea... 01:20:09
A lo mejor es lo menos... 01:20:10
Es lo menos óptimo... 01:20:12
¿Vale? 01:20:13
Porque ya... 01:20:14
Es como corregir... 01:20:15
Lo que ya habéis visto... 01:20:16
Si me planteé la tarea... 01:20:17
La duda antes... 01:20:18
Si lo podemos ver... 01:20:19
En la... 01:20:20
Digamos... 01:20:21
En la tutoría previa... 01:20:21
Que suelo poner una... 01:20:22
Unos días antes... 01:20:23
Del límite de entrega... 01:20:24
Pues ya me lo podéis entregar bien... 01:20:25
Y ya da pie... 01:20:26
También a que lo vean los compañeros... 01:20:27
Y a resolverlo antes... 01:20:29
Vale... 01:20:30
Dice el compañero... 01:20:31
Que seguirá trabajando en esta tarea... 01:20:31
Aprovechando que es la siguiente... 01:20:32
Eh... 01:20:34
Está relacionada... 01:20:36
Sí que es verdad... 01:20:37
Que la siguiente tarea... 01:20:38
Y la voy a abrir... 01:20:38
¿Verdad? 01:20:40
Voy a abrir... 01:20:40
Digamos... 01:20:41
La tarea 4... 01:20:43
¿Vale? 01:20:44
Que no es por desanimaros... 01:20:45
Para nada... 01:20:47
De verdad... 01:20:47
Lo que quiero es que aprendáis... 01:20:48
Es compleja... 01:20:49
¿Vale? 01:20:50
Y... 01:20:51
En siguientes tutoriales... 01:20:51
Seguiremos viendo... 01:20:52
Y de hecho en esta... 01:20:53
Ya quería... 01:20:53
Verlo un poco... 01:20:54
¿Vale? 01:20:55
Pero era preferible... 01:20:55
Presentar... 01:20:56
Eh... 01:20:57
Conocimientos... 01:20:57
Mmm... 01:20:58
Porque... 01:20:59
Esta tarea... 01:21:00
Digamos... 01:21:00
Igual que de la 1 a la 2... 01:21:01
Había relación... 01:21:02
Entre la 3 y la 4... 01:21:02
También hay relación... 01:21:04
¿Vale? 01:21:04
Realmente... 01:21:06
No... 01:21:06
Aunque el juego... 01:21:07
Me refiero a lo que ya hemos hecho... 01:21:08
En este juego... 01:21:09
Correspondiente a mover la bola... 01:21:10
A cambiar de nivel... 01:21:12
Aunque no funcione del todo bien... 01:21:12
Esta tarea... 01:21:13
Yo lo que voy a evaluar son... 01:21:14
Sobre todo... 01:21:16
Lo relacionado con el menú de inicio... 01:21:17
El menú de configuración... 01:21:18
Y el HUD... 01:21:20
Que hay... 01:21:21
Mientras jugamos en los niveles... 01:21:22
¿Vale? 01:21:24
Quien ya haya leído la tarea... 01:21:24
Pues ya sabrá de lo que hablo... 01:21:26
Que no sé si lo habéis hecho... 01:21:27
Pero bueno... 01:21:29
Hay que poner también un... 01:21:29
Un HUD... 01:21:31
Un HUD... 01:21:31
No sé... 01:21:32
Un HUD... 01:21:32
Un HUD... 01:21:32
Un HUD... 01:21:33
Un HUD... 01:21:33
Un HUD... 01:21:33
Un HUD... 01:21:33
Un HUD... 01:21:33
Display... 01:21:33
Para ir mostrando... 01:21:34
Pues las vidas que le quedan al personaje... 01:21:35
Etcétera... 01:21:37
¿Vale? 01:21:38
Que... 01:21:39
Que más o menos... 01:21:39
Quite las vidas o no... 01:21:41
Es lo que me importa... 01:21:42
Luego ya que... 01:21:42
Cambie bien de nivel... 01:21:43
O... 01:21:44
O... 01:21:45
O la plataforma oscile mejor o peor... 01:21:45
Eso ya se veía en esta tarea... 01:21:48
¿Vale? 01:21:49
Lo que me importa es la siguiente... 01:21:49
Lo relacionado con esto... 01:21:50
Voy a... 01:21:52
Así muy rápidamente... 01:21:53
Enseñar... 01:21:54
Qué es lo que hay que hacer... 01:21:55
Y un poco para... 01:21:56
Hacer la cabeza... 01:21:57
En esta tarea... 01:21:58
¿Vale? 01:21:59
Pero bueno... 01:22:00
Lo importante es que leáis el tema... 01:22:00
Veáis los vídeos de... 01:22:02
De... 01:22:03
Que hay... 01:22:04
En el tema... 01:22:05
¿Vale? 01:22:06
Para ir haciendo la cabeza... 01:22:06
Y que lo vayáis intentando... 01:22:08
Sobre todo a nivel visual... 01:22:09
Y ir resolviendo... 01:22:10
A nivel visual... 01:22:11
Nivel visual... 01:22:12
Cómo se va... 01:22:12
Desplegando este juego... 01:22:13
Porque luego las interacciones... 01:22:15
Ya son más complicadas... 01:22:16
Y os animo a que lo intentéis también... 01:22:17
Pero... 01:22:19
Bueno... 01:22:19
Una vez tengáis ya planteado lo visual... 01:22:20
Ya... 01:22:23
A partir de ahí podemos ir trabajando en lo... 01:22:23
En lo específico de código... 01:22:25
Pero básicamente este... 01:22:27
Esto... 01:22:28
Lo que vamos a hacer es... 01:22:29
Que va a haber... 01:22:30
En esta tarea... 01:22:31
Un... 01:22:32
Menú de inicio... 01:22:32
Con tres botones... 01:22:34
¿Vale? 01:22:35
Uno que sirve para empezar a jugar... 01:22:35
Otro para configurar... 01:22:38
No estoy pulsando nada... 01:22:39
¿Vale? 01:22:40
Para configurar distintas opciones... 01:22:40
Los settings del juego... 01:22:41
Y otro para salir... 01:22:43
Que ese... 01:22:44
Ese lo pone... 01:22:45
Lo pone... 01:22:46
Creo claramente en las instrucciones... 01:22:46
Va a estar configurado... 01:22:48
Pero hay... 01:22:50
Opciones... 01:22:51
Como este... 01:22:52
Bueno... 01:22:54
Os lo enseño aquí... 01:22:54
Porque lo tengo... 01:22:55
En el enunciado... 01:22:56
Esta tarea... 01:22:59
¿Vale? 01:23:00
Hay acciones... 01:23:00
Simplemente para que sepáis que existen también... 01:23:01
Como este... 01:23:04
Application Quit... 01:23:04
¿Vale? 01:23:05
Que es un método... 01:23:05
Que se refiere a... 01:23:06
A la aplicación... 01:23:07
Al ejecutable... 01:23:08
Que sirve para que cuando... 01:23:10
Por ejemplo... 01:23:11
Le demos al botón de salir... 01:23:11
Se salga del juego... 01:23:13
¿Vale? 01:23:14
Se... 01:23:15
Pues si estamos jugando al ordenador... 01:23:15
Pues se salga... 01:23:16
Se deje de ejecutar... 01:23:17
Y salgamos a... 01:23:18
A Windows... 01:23:19
Normal... 01:23:20
¿No? 01:23:21
Eh... 01:23:22
Pero... 01:23:22
Esto... 01:23:23
Aunque lo configuremos correctamente... 01:23:23
Hasta que no se haga el ejecutable... 01:23:25
Que esto ya lo veremos en el último tema... 01:23:26
No se va a ver... 01:23:28
Reflejado... 01:23:29
En el editor... 01:23:30
De Unity... 01:23:31
No funciona... 01:23:31
¿Vale? 01:23:32
Pero... 01:23:33
Lo que quiero decir es que... 01:23:34
Aún así... 01:23:36
Me interesa... 01:23:36
Que ya vais conociendo... 01:23:37
Que hay... 01:23:38
Eh... 01:23:39
Pues acciones... 01:23:41
Que... 01:23:42
Aunque le demos aquí 80 veces... 01:23:42
Realmente está haciendo algo... 01:23:44
Pero... 01:23:45
No lo lanza... 01:23:46
Porque no... 01:23:47
No está en el momento de lanzarlo... 01:23:47
Que es cuando... 01:23:49
Está buscando... 01:23:50
Digamos el runner... 01:23:51
El runner... 01:23:52
El ejecutor... 01:23:52
El... 01:23:53
Del juego... 01:23:53
¿Vale? 01:23:54
Entonces... 01:23:55
En la configuración... 01:23:55
Va a haber un slider... 01:23:57
¿Vale? 01:23:58
Para definir el nivel del juego... 01:23:59
Otro para introducir el nombre... 01:24:01
Pues por ejemplo... 01:24:02
Daniel... 01:24:03
¿Vale? 01:24:04
Y esto va a ir cambiando... 01:24:04
Las... 01:24:06
Eh... 01:24:07
Características del juego... 01:24:08
Dependiendo de la dificultad... 01:24:09
La bola tendrá más o menos masa... 01:24:11
Y más o menos drag... 01:24:13
Se moverá más o menos rápido... 01:24:13
Por ejemplo... 01:24:15
Cuando oscile la plataforma... 01:24:15
Y con el nombre... 01:24:17
Pues por ejemplo... 01:24:18
Podemos hacer que al dar a jugar... 01:24:19
Pues aquí... 01:24:21
Se vea... 01:24:22
Reflejado... 01:24:22
El nombre... 01:24:22
Que se haya guardado... 01:24:23
Para eso hay que usar... 01:24:24
Las variables estáticas... 01:24:26
Se explican en el tema... 01:24:27
Eh... 01:24:28
Algún array... 01:24:29
Para mostrar estas imágenes... 01:24:29
¿Vale? 01:24:31
Pero... 01:24:31
Prefiero que os... 01:24:32
Intentéis primero... 01:24:33
Configurar... 01:24:34
Todo lo que son estos dos... 01:24:35
Menús... 01:24:37
Menús de configuración... 01:24:37
Con sus botones... 01:24:39
¿Vale? 01:24:39
El canvas... 01:24:40
Etcétera... 01:24:40
Y a partir de ahí... 01:24:41
Vamos viendo dudas... 01:24:42
¿Vale? 01:24:43
Pero básicamente... 01:24:44
Consiste en eso... 01:24:45
Un botón que no hará nada... 01:24:46
Pero que debería estar configurado... 01:24:47
Para cerrar la aplicación... 01:24:48
Otro que sirve... 01:24:50
Para... 01:24:51
Estos dos elementos... 01:24:52
De configuración... 01:24:53
¿Vale? 01:24:54
Meter el nombre... 01:24:54
O definir una dificultad... 01:24:55
Que se guardarán... 01:24:56
Al dar al botón... 01:24:57
A volver... 01:24:58
Y cuando ejecutemos... 01:24:59
¿Veis? 01:25:00
Si no ponemos nada... 01:25:00
A poner desconocido... 01:25:01
Si hubiéramos puesto un nombre... 01:25:02
Pues pondría el nombre... 01:25:03
¿Vale? 01:25:04
Y... 01:25:05
Al jugar... 01:25:06
Habrá un HUD... 01:25:06
Que nos vaya dando información... 01:25:07
Pues por ejemplo... 01:25:09
Para que... 01:25:10
Nos quite vidas... 01:25:11
Y veréis que... 01:25:12
Aparte de irnos marcando las vidas... 01:25:13
Pues... 01:25:15
Cuando ya agotemos las vidas... 01:25:16
Volvemos a este menú inicial... 01:25:17
Y cuando volvamos a jugar... 01:25:18
Pues otra vez están las vidas... 01:25:19
¿Vale? 01:25:21
Eh... 01:25:23
Yo os digo... 01:25:24
Esta tarea... 01:25:25
Es compleja... 01:25:26
Pero... 01:25:27
Intentad ir resolviéndola... 01:25:28
Y... 01:25:29
Y veremos los... 01:25:29
Problemas que puedan ir surgiendo... 01:25:31
¿De acuerdo? 01:25:32
Sobre todo leos el tema... 01:25:33
Y más o menos... 01:25:34
Tener claro cómo funciona el canvas... 01:25:35
Los elementos de UI... 01:25:37
Qué librería hay que incluir en el código... 01:25:38
Igual que hacíamos en el Scene Manager... 01:25:40
Hay que incluir en... 01:25:43
Cuando hagamos elementos de UI... 01:25:44
También... 01:25:45
Al final... 01:25:46
Importante... 01:25:47
Cuando demos a estos botones... 01:25:48
Lo que vamos a hacer es... 01:25:49
Cargar otro nivel... 01:25:50
En el Bill Index... 01:25:51
Aquí va a haber aún más... 01:25:52
Escenas... 01:25:54
Con sus Settings... 01:25:56
¿Vale? 01:25:57
Con su Index... 01:25:57
Perdón... 01:25:58
Para cargar... 01:25:59
Oye... 01:26:00
Que yo le doy a este botón... 01:26:00
Pues me cargas... 01:26:01
El nivel de Menú Config... 01:26:02
¿Vale? 01:26:04
Que es este... 01:26:04
Y pasas de un a otro... 01:26:05
¿Vale? 01:26:07
No sé si habéis ya comenzado... 01:26:07
Un poco con la tarea... 01:26:09
O... 01:26:11
Estáis todavía en... 01:26:11
Pase en Brionaria... 01:26:13
Entiendo que... 01:26:14
Sobre todo será esto... 01:26:14
Pero... 01:26:16
Leed el tema porfa... 01:26:17
Y... 01:26:18
Y ya intentad... 01:26:18
Ir haciendo la tarea... 01:26:20
Para ir viendo los problemas... 01:26:21
¿Vale? 01:26:23
Por mi parte... 01:26:24
No quiero... 01:26:25
Ponerme mucho más con ello... 01:26:26
Lo que os digo... 01:26:28
Hay una previsión de entregas... 01:26:29
¿Vale? 01:26:30
De fechas me refiero... 01:26:31
Que me gustaría que intentárais cumplir... 01:26:32
Si vais a ir haciendo las tareas... 01:26:34
Para no ir dejándola... 01:26:36
Para que... 01:26:38
Se vayan haciendo las de todo el curso... 01:26:39
Porque es verdad... 01:26:41
Que la del último tema... 01:26:42
Habrá... 01:26:43
Tres semanas... 01:26:44
Según la planificación que hay... 01:26:46
Para realizarla... 01:26:48
Pero si claro... 01:26:49
Si se va arrastrando... 01:26:50
A los años anteriores... 01:26:51
Pues no va a dar tiempo... 01:26:51
Bueno... 01:26:53
El objetivo tampoco es que hagáis... 01:26:53
Todas las tareas al completo... 01:26:54
De hecho las dos últimas... 01:26:56
Son bastante complejas... 01:26:57
Y va a haber... 01:26:58
Varios apartados opcionales... 01:26:59
¿Vale? 01:27:01
Pero... 01:27:02
Cuanto más... 01:27:02
Practiquéis... 01:27:03
Sobre todo si os interesa el desarrollo de videojuegos... 01:27:04
Pues... 01:27:06
Mejor... 01:27:06
Claro... 01:27:07
Pues nada... 01:27:08
Muchas gracias y... 01:27:08
Nada... 01:27:09
Hasta la próxima... 01:27:09
Subido por:
Daniel M.
Licencia:
Todos los derechos reservados
Visualizaciones:
11
Fecha:
20 de febrero de 2024 - 21:05
Visibilidad:
Clave
Centro:
IES CIFP a Distancia Ignacio Ellacuría
Duración:
1h′ 27′ 15″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
677.74 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid