1 00:00:01,800 --> 00:00:05,099 Bienvenidos a esta tutoría número 11 de DAME. 2 00:00:05,700 --> 00:00:06,219 Bienvenidos. 3 00:00:07,360 --> 00:00:10,339 No he visto ninguna duda planteada en los foros, 4 00:00:10,740 --> 00:00:12,419 por lo que no sé... 5 00:00:12,419 --> 00:00:15,800 Bueno, si me queréis comentar alguna duda que tengáis del tema, 6 00:00:16,480 --> 00:00:17,559 de la UT7, 7 00:00:18,500 --> 00:00:21,500 o sobre la tarea, quienes estéis haciéndola, 8 00:00:22,399 --> 00:00:24,179 que espero que seáis varios, 9 00:00:24,280 --> 00:00:27,280 porque es una tarea con la que se ponen en práctica muchas cuestiones, 10 00:00:27,579 --> 00:00:29,519 en esta ocasión más que referidas a código, 11 00:00:29,519 --> 00:00:36,200 que también más referidas a la interfaz de Unity y cómo funciona este motor de render en concreto, 12 00:00:37,219 --> 00:00:42,179 que es análogo a cómo se haría con otros softwares, con otros motores, por ejemplo Unreal, 13 00:00:42,560 --> 00:00:47,119 que evidentemente cambian mucho sus configuraciones y dónde está en la interfaz cada cosa, 14 00:00:47,240 --> 00:00:53,679 pero bueno, tiene siempre una equivalencia, una aproximación, que cada software tiene sus peculiaridades, por supuesto, 15 00:00:53,679 --> 00:00:58,640 pero un poco la base parten de los mismos aspectos. 16 00:00:59,520 --> 00:01:05,299 Lo dicho, no sé si hay alguna duda que queráis. He visto que se acaban de conectar un par de compañeros. 17 00:01:08,120 --> 00:01:16,120 Vale, también como puse en el planteamiento de la tutoría, mi idea era hacer un repaso ágil de los distintos temas. 18 00:01:16,260 --> 00:01:18,780 También si tenéis alguna duda la podemos ver. 19 00:01:19,700 --> 00:01:27,099 Un poco, bueno, pues enfatizando aspectos de cara al examen que considero relevantes. 20 00:01:27,359 --> 00:01:30,840 Eso no significa nunca que vaya a ser una pregunta de examen ni nada. 21 00:01:30,840 --> 00:01:47,280 Pero bueno, ni que debáis de dejar de estudiar el resto de temario, por supuesto, pero bueno, un poco poniendo énfasis en algunos aspectos que en realidad ya en las propias tareas que se han ido planteando y en las distintas tutorías ya se ha hecho, ¿vale? Pero bueno, un poco a nivel de repaso. 22 00:01:47,280 --> 00:01:48,959 en principio 23 00:01:48,959 --> 00:01:51,519 esta tutoría está planteada 24 00:01:51,519 --> 00:01:53,819 como última tutoría, si nos da tiempo a ver 25 00:01:53,819 --> 00:01:55,459 un poco todo lo del examen 26 00:01:55,459 --> 00:01:57,780 eso no significa que no podáis 27 00:01:57,780 --> 00:01:59,459 plantear dudas 28 00:01:59,459 --> 00:02:01,659 en el foro correspondiente 29 00:02:01,659 --> 00:02:03,819 de la unidad o donde es, el punto del temario 30 00:02:03,819 --> 00:02:06,120 ¿vale? que se responderán 31 00:02:06,120 --> 00:02:07,760 incluso si es 32 00:02:07,760 --> 00:02:09,699 muy relevante 33 00:02:09,699 --> 00:02:11,539 pues bueno, se va viendo como resolverla 34 00:02:11,539 --> 00:02:13,319 pero siempre tenéis los foros 35 00:02:13,319 --> 00:02:14,520 como durante todo el curso 36 00:02:14,520 --> 00:02:39,500 Lo he dicho, ¿alguien que quiera plantear alguna duda ahora de comienzo de la tutoría? No sé, por dar un poco de peso, no sé si los que hayáis leído, que espero que seáis la mayoría, si habéis visto el tema, el contenido, dudas que os surjan, lo habéis seguido más o menos bien, algo que queráis que repasemos o veamos. 37 00:02:45,219 --> 00:02:51,879 ¿No? Vale. Entiendo entonces que está más o menos explicado y con los vídeos que están incorporados. 38 00:02:52,520 --> 00:02:58,599 Vale. En primer lugar, en este tema se habla, en el tema número 7, el último, 39 00:02:59,259 --> 00:03:04,840 bueno, veréis que hay muchos apartados especialmente referidos en su primera mitad, 40 00:03:05,400 --> 00:03:13,400 aspectos tanto de la visualización, más, pues eso, del acabado del producto a nivel visual y a nivel sonoro. 41 00:03:13,400 --> 00:03:34,020 Tenéis ahí ese apartado. Luego tenéis otra sección esencial más referidas a cómo exportar o compilar en nuestra aplicación o videojuego. Tenga en cuenta también cómo se puede optimizar al máximo herramientas para ver el coste de procesamiento que está teniendo la ejecución de nuestro juego. 42 00:03:34,020 --> 00:03:55,919 Y por último, y os lo puse cuando se abrió el tema, hice énfasis en ello, hay unos últimos apartados referidos al intercambio y uso de un motor de videojuegos, en este caso, con dispositivos externos, que como señalaba, en este caso, claro, no es obligatorio ni contáis en muchos casos seguramente con algunos de los dispositivos. 43 00:03:55,919 --> 00:04:16,399 Por ejemplo, la gafa de realidad virtual, algunos las podéis tener, pero no se espera que las tengáis. Igual que, bueno, móvil sí tendréis, pero a lo mejor que queráis usar para probar la realidad aumentada. Entonces, habréis visto que estas secciones son un poco introductorias, sobre todo a nivel conceptual en algunos casos, por ejemplo, en esto de qué es la realidad virtual, los distintos tipos de realidades que hay ahora. 44 00:04:16,399 --> 00:04:25,439 y aunque luego se hace una pequeña introducción, que está muy bien y si la podéis seguir porque tenéis los dispositivos correctos, 45 00:04:25,439 --> 00:04:31,139 os animo a que lo hagáis, pero no se espera de cara al examen que sepáis hacer configuraciones concretas. 46 00:04:31,579 --> 00:04:37,379 Eso no quita que no debáis conocer, por ejemplo, lo conceptual, que son estas distintas realidades, 47 00:04:38,779 --> 00:04:43,439 un poco cuál es la plataforma, en el caso de MetaQuest, que se usaría para configurar, 48 00:04:43,439 --> 00:04:50,139 cuando se diseña para móviles pues lo mismo que entornos de desarrollo para exportar esto sí esto 49 00:04:50,139 --> 00:04:55,600 sí que puede ser material examen pues que hay distintas distintos módulos o plataformas de 50 00:04:55,600 --> 00:05:02,199 exportación no dependiendo de qué tipo de dispositivo se va a exportar y bueno pues 51 00:05:02,199 --> 00:05:06,680 por ejemplo aquí hay distintos dependiendo de la versión de unity que estáis usando por eso 52 00:05:06,680 --> 00:05:11,579 también aquí se os anima a ir cambiando de versión para que recordéis cómo se instalan distintas 53 00:05:11,579 --> 00:05:16,019 versiones porque a veces podéis estar trabajando en un proyecto y paradójicamente tengáis que 54 00:05:16,019 --> 00:05:21,399 volver a una a una versión anterior porque tiene una herramienta que en ese momento tenía cierta 55 00:05:21,399 --> 00:05:26,199 configuración de cierto dispositivo en concreto que a lo mejor en la siguiente lo han quitado o 56 00:05:26,199 --> 00:05:32,839 algo más lógico al contrario tener que aumentar de versión buscando nuevas capacidades nuevas 57 00:05:32,839 --> 00:05:40,579 funcionalidades por ejemplo aunque no lo uséis que se deja documentación y se dejan vídeos etcétera 58 00:05:40,579 --> 00:05:56,399 pues saber que si quisiéramos probar un juego que hace uso de inputs físicos o incluso probarlo directamente viendo en un móvil, pues existen aplicaciones como este Unity Remote para hacer un testeo sin necesidad de exportar por completo el juego, 59 00:05:56,399 --> 00:06:07,220 sino hacer lo que se llama un build and run, que aquí lo indica, que no es necesario hacer la compilación del juego 60 00:06:07,220 --> 00:06:14,399 y poder probar el juego directamente en vuestro móvil para poder usarlo. 61 00:06:16,439 --> 00:06:23,319 Lo dicho, creo que todas las secciones, aparte de los vídeos de los profesores, de Álvaro Holguera en este caso 62 00:06:23,319 --> 00:06:28,120 y otros que se van incorporando. Más o menos creo que hay una introducción. 63 00:06:28,439 --> 00:06:35,120 Este módulo tampoco busca profundizar mucho en los aspectos de este tema, sobre todo en los últimos. 64 00:06:35,379 --> 00:06:44,019 Como os comenté, hay un curso de especialidad posterior que se centra más en los motores de videojuegos a nivel global, 65 00:06:44,300 --> 00:06:49,000 también en lo que se refiere a realidad virtual. De hecho, realidad virtual es parte del nombre de ese curso. 66 00:06:49,000 --> 00:07:07,240 Y bueno, esto es una introducción. Igual que se habla de los GPS, están aplicados siempre a dispositivos móviles, se habla un poco de cómo se podría usar o aplicaciones que hay. Todo un poco introductorio, pero eso no significa que esto no lo podáis conocer a nivel conceptual y se os pueda preguntar en el examen. 67 00:07:07,240 --> 00:07:35,480 Lo mismo sucede con los sistemas de captación de vídeo. Aquí si tenéis una webcam, por ejemplo, podéis probar este código. Aquí se habla un poco conceptualmente de qué uso puede tener el vídeo, qué es un QR y dónde se podría usar, un poco en qué consiste este código visual basado, en el caso de los QR en dos dimensiones, en un plano de puntos que va generando códigos que cuando es leído por un dispositivo con cámara, 68 00:07:35,480 --> 00:07:46,500 nos permite enlazar con elementos de otra web, otra URL, para así incluso en el mundo físico poder conectar directamente al mundo virtual. 69 00:07:48,019 --> 00:07:59,199 Eso también a nivel conceptual lo debéis saber de cara al examen, que es un QR o un código de barra, los códigos visuales y un poco lo que aquí se cuenta. 70 00:08:00,139 --> 00:08:02,040 Más allá de aplicarlo, pues saber qué es. 71 00:08:03,740 --> 00:08:11,199 La tarea, alguno no sé si la ha comenzado y tiene dudas, pero entiendo que sí, se entrega este domingo, si no me equivoco. 72 00:08:13,019 --> 00:08:14,060 Dudas que os surjan. 73 00:08:18,550 --> 00:08:28,350 Hay un aspecto importante, que también por eso se aplica en esta tarea, que es que a diferencia del resto de tareas del curso, se emplea un render pipeline distinto. 74 00:08:28,350 --> 00:08:49,649 De hecho, cuando creáis, voy a sacar aquí Unity Hub, cuando creáis un nuevo proyecto en Unity Hub, a ver si quiere abrírmelo, dependiendo de la versión, ya lo vimos al comienzo del curso, hay distintos tipos de plantillas y de sistemas. 75 00:08:49,649 --> 00:09:01,289 Al final estas plantillas o estos tipos Core, cuando ponéis All Templates aparecen todos los tipos de proyectos que se pueden crear optimizados ya para un uso u otro. 76 00:09:01,509 --> 00:09:15,309 Al final en lo que consisten, y aquí vemos por ejemplo este Universal 3D, referido al Universal Render Pipeline o URP, se habla del tema, que es uno que tiene un mejor rendimiento físico, 77 00:09:15,309 --> 00:09:18,750 pero está optimizado para dispositivos móviles 78 00:09:18,750 --> 00:09:20,710 y que no son de altísimas prestaciones 79 00:09:20,710 --> 00:09:24,950 pero sí que tiene un acabado mejor que el del Build-in Render Pipeline 80 00:09:24,950 --> 00:09:27,950 y luego cuando ya, si se quisiera hacer un videojuego 81 00:09:27,950 --> 00:09:31,870 de altas prestaciones, por ejemplo para consolas de última generación 82 00:09:31,870 --> 00:09:34,629 en plan Playstation 5, por ejemplo 83 00:09:34,629 --> 00:09:39,549 el que habría que escoger es este High Definition Render Pipeline 84 00:09:39,549 --> 00:09:41,009 o HDRP 85 00:09:41,009 --> 00:09:55,750 Al final, en lo que varían a nivel creación de proyecto es que cuando vais escogiendo cada uno, si le dais al Read More, aquí os va a poner, aparte de una descripción, os va a indicar qué paquetes están incluidos. 86 00:09:55,750 --> 00:10:18,190 Es decir, si crearais un proyecto que no fuera Universal Render Pipeline, como se indica en el tema también, y es un Building Render Pipeline, el básico que hemos usado hasta ahora, que venimos usando sobre todo porque es el más eficiente, es el que menos consumo va a hacer a nivel gráfico y por tanto el que menos problemas os va a suponer para trabajar y por eso para aprender las herramientas es el que se emplea. 87 00:10:18,190 --> 00:10:33,009 Pero incluso creando este Building Render Pipeline, si luego quisierais actualizarlo al Universal, se podría hacer siempre mirando qué paquetes tiene instalados. Aquí la clave, por ejemplo, es que está instalado este paquete de Universal Render Pipeline. 88 00:10:33,009 --> 00:11:01,409 ¿Vale? Recordemos que en Window Package Manager está el gestor de instalación de paquetes donde se pueden ir instalando distintos paquetes. Si este paquete que aquí ya está instalado al hacer un proyecto de Universal Render Pipeline, si no lo tuviéramos siempre se puede buscar. ¿Vale? En Unity Registry, pues sabiendo que se llama Universal Pipeline, aquí os saldrá este paquete. Aquí, en caso de que no estuviera, os permitiría instalarlo. 89 00:11:01,409 --> 00:11:17,250 Como indica el tema y la tarea también, cuando se instala un nuevo motor de render, mejor dicho, otro render pipeline, aparte de que puede surgir alguna opción añadida o más funcionalidades, 90 00:11:17,250 --> 00:11:44,950 Lo que puede ocurrir es que, si hemos estado trabajando en otro de los render pipelines, aparezcan materiales con este color. En el tema había un ejemplo, por ejemplo, en materiales, cuando se habla de URP y HDRP, esta descripción que acabamos de hacer, pueden aparecer materiales con este rosa, más bien magenta, que significa que el motor de render no está leyendo ese material. 91 00:11:44,950 --> 00:12:06,610 Para hacer una actualización de esos materiales hay que usar esta opción, Edit Render Pipeline, Universal Render Pipeline. Aquí lo tenemos, en Edit Render Pipeline habrá una opción, si hubiera sido el HDRP tendría las correspondientes y con esta opción se puede actualizar todos los materiales. 92 00:12:06,610 --> 00:12:08,909 ¿Qué ocurre? Que como se habla en el tema 93 00:12:08,909 --> 00:12:10,289 También puede haber materiales 94 00:12:10,289 --> 00:12:12,549 Que hagan uso de otro tipo de shaders 95 00:12:12,549 --> 00:12:14,889 ¿Vale? Normalmente los que se crean 96 00:12:14,889 --> 00:12:17,029 Con el shader graph, que no lo reconozcan 97 00:12:17,029 --> 00:12:18,250 Por defecto, en ese caso 98 00:12:18,250 --> 00:12:20,850 Claro, si vamos a querer 99 00:12:20,850 --> 00:12:22,230 Usar un 100 00:12:22,230 --> 00:12:24,730 Material de ese tipo 101 00:12:24,730 --> 00:12:26,389 ¿Vale? O creado con ese tipo 102 00:12:26,389 --> 00:12:28,389 Pues porque nos lo ha pasado un tercero, etc 103 00:12:28,389 --> 00:12:31,389 En el proyecto anterior 104 00:12:31,389 --> 00:12:32,750 No se debería estar viendo bien 105 00:12:32,750 --> 00:12:34,570 En el que se hizo con el 106 00:12:34,570 --> 00:12:35,950 Build in render pipeline 107 00:12:35,950 --> 00:12:59,950 Porque no es nativo de ese motor de render. Pero cuando estamos usando materiales de este estilo, que al final son materiales que hacen uso de un shader creado en Shader Graph, si os fijáis este Water Shader que tenemos aquí configurado, que os lo paso también en la tarea, esto es bastante avanzado, sería más incluso referido a módulos como color, etc. 108 00:12:59,950 --> 00:13:18,029 a la creación de shaders, aquí, bueno, es un poco por mencionarlo, pero los shaders creados con esta herramienta, cuando usamos este motor de shader, nos permite, este motor de render, perdón, de este URP, nos permite usar estos shader graphs que vayamos creando, ¿vale? 109 00:13:18,029 --> 00:13:37,409 Aquí hay varios y este es uno, por ejemplo, que se ha creado aquí, si os fijáis en el nombre, que se ha creado aquí con este nombre y que luego podremos ir configurando, ¿vale? En el tema hay una introducción, se os dejan vídeos bastante más, vamos, tiene un sinfín de aspectos, un campo muy amplio. 110 00:13:37,409 --> 00:14:05,909 De hecho, cuando se desarrolla un videojuego, igual que cuando se hace una película, hay profesionales simplemente dedicados al texturizado o al desarrollo de shaders. Que sepáis que existe. Y este Render Pipeline cuenta con herramientas propias que no teníamos en el otro Render Pipeline, en el que podíamos crear, como también se habla en el tema, distintos materiales con distintos mapas. 111 00:14:05,909 --> 00:14:29,649 Se pone el ejemplo del Standard Surface del Building Renderer, del que hemos estado usando hasta ahora, pero bueno, cada shader al final, aquí lo tenemos, distintos mapas que puede haber en un shader, pero dependerá de ese shader y dependerá del motor de renderer. 112 00:14:29,649 --> 00:14:54,190 Entonces, sobre todo es conocer un poco, que suelen tener esta nomenclatura, qué es cada mapa para ir preparando los materiales o configurarlos, para que se vean de un modo u otro, cambiar el color desde el albedo, darle metalicidad, relieves, un poco en semejanza a lo que ya habréis hecho en otros softwares de 3D, en otros módulos que tenéis más dedicados a esto. 113 00:14:54,190 --> 00:15:00,809 Además en esta tarea también se pone en juego lo que es el tema del sonido 114 00:15:00,809 --> 00:15:05,690 Y para ello hay un par de componentes fundamentales 115 00:15:05,690 --> 00:15:10,769 Uno, que siempre ha estado ahí, lo hayáis visto, que es que cuando se crea una cámara 116 00:15:10,769 --> 00:15:17,210 A no ser que la hayáis borrado de manera activa, se genera o viene mejor dicho con este componente llamado audio listener 117 00:15:17,210 --> 00:15:23,070 Y por eso es por lo que vamos a poder escuchar durante el juego los sonidos que se vayan incorporando 118 00:15:23,070 --> 00:15:38,269 Al final el audio listener se tiene que entender como los oídos de nuestro juego. Igual que la cámara en sí es lo que estamos visualizando, dependiendo de dónde la ubiquemos, se verá una cosa u otra hacia donde esté mirando, también viene ya con un audio listener. 119 00:15:38,269 --> 00:16:06,909 Este AudioListener tiene una pega que es que si vamos creando varias cámaras o vamos incorporando más AudioListeners en una misma escena, va a generar conflicto en general. Por tanto, la opción es ir activando o desactivando, se puede hacer por código, ya sabéis cómo se puede llegar a un componente, creando una variable de ese tipo llamada como el componente y capturándolo, pues se tendría que ir activando o desactivando esa escucha para que no haya varias. 120 00:16:06,909 --> 00:16:29,389 Es decir, es extraño tener varios oídos a la vez en una misma escena. Entonces, este audio listener sirve para escuchar los sonidos que luego se pueden ir incorporando con este componente de audio source, que por un lado tiene un montón de opciones referidas a cuál es el volumen de ese audio que vamos a incorporar y a cuánta distancia. 121 00:16:29,389 --> 00:16:56,889 Si nos fijamos aquí, al añadir este objeto y al poner que es de tipo 3D, en este espacio, bueno, este justo no es, pero el de la balsa que tiene un altavoz, si os fijáis, este altavoz que tiene un audio source, su forma de trabajar es en base a un espacio 3D. 122 00:16:56,889 --> 00:17:01,149 ¿Por qué? Los Audiosource pueden trabajar de dos modos, 2D o 3D. 123 00:17:01,549 --> 00:17:08,589 2D, imaginaos que tenéis una música, que es independiente de que la cámara esté en una ubicación o esté en otra. 124 00:17:08,670 --> 00:17:11,569 Es una música que queremos que se oiga en todo el juego. 125 00:17:11,650 --> 00:17:14,329 Por ejemplo, voy a dar play. Entiendo que vais a escuchar ahora un audio, ¿vale? 126 00:17:14,329 --> 00:17:15,910 Si no, decídmelo, porque lo estoy compartiendo. 127 00:17:19,400 --> 00:17:24,960 Ahora mismo, si os fijáis, se están escuchando los ruidos de un ambiente de fondo. 128 00:17:24,960 --> 00:17:28,339 Y quiero que independientemente de donde esté, se estén escuchando. 129 00:17:28,460 --> 00:17:33,839 Eso se debe a que es un ambiente que está configurado como 2D 130 00:17:33,839 --> 00:17:36,900 Se va a oír siempre, no depende de dónde esté ubicado 131 00:17:36,900 --> 00:17:38,660 Pero si me voy acercando 132 00:17:38,660 --> 00:17:40,480 Lo voy a quitar aquí un segundo 133 00:17:40,480 --> 00:17:43,660 Si me voy acercando a ese altavoz que veis ahí, pequeñito 134 00:17:43,660 --> 00:17:48,160 A medida que me vaya acercando vais a ver que hay una música 135 00:17:48,160 --> 00:17:57,039 Lo percibís, entiendo 136 00:17:57,039 --> 00:18:17,880 Eso se debe a que ese objeto del altavoz sí está configurado como un objeto que tiene el Spatial Blend en 3D y si vamos y lo vemos vais a ver que hay aquí una esfera que se refiere a hasta dónde llega esa audición. 137 00:18:17,880 --> 00:18:45,559 Si se quisiera cambiar, se puede ir modificando en estos valores que tenemos aquí abajo en 3D Sound Settings. Cuando es 3D, esto sí que funciona. ¿Qué significa esto? Que cuando vayamos decidiendo la distancia, fijaos que hay ahí una esfera que se puede ir variando la distancia y también cómo a medida que nos vamos alejando con esta curva se va captando este audio o no en el espacio 3D. 138 00:18:45,559 --> 00:19:04,099 Este audio source viene con dos tipos también de asset, uno es el audio clip, que se refiere al clip de audio que se va a reproducir, que podemos importar aquí dentro, MP3, WAVs, distintos tipos de archivo de audio, 139 00:19:04,099 --> 00:19:21,460 Como podéis ver aquí, es un archivo de audio que hemos incorporado al audio source. Por lo que ese audio source, que está como componente de ese elemento, está emitiendo sonido es porque lo estamos aquí vinculando como audio clip. 140 00:19:21,460 --> 00:19:37,640 Por código, evidentemente, estos audio clips también se pueden ir, aquí lo tengo, esos audio clips, y aquí vamos viendo lo que os comentaba de que se puede referenciar cada uno de los componentes y tipos de archivo que vamos a ir usando. 141 00:19:37,640 --> 00:19:48,420 si tenemos un audio clip aquí con un serialized fill, ¿vale? Desde el propio código, si vamos a ese código que estamos aplicando a sonidos, ¿vale? 142 00:19:48,579 --> 00:19:57,500 Podemos arrastrar sonidos también, ¿vale? Es decir, podemos por un lado incorporar clips de audio que luego vamos a referenciar en nuestro código 143 00:19:57,500 --> 00:20:05,299 con este nombre de variable. Audio source, ¿vale? Y veis que el iconito cambia. Cuando es un clip de audio salen estas corcheas. 144 00:20:05,299 --> 00:20:11,339 cuando es el audio source, es decir, el emisor de audio, el altavoz, va a salir esta bocinilla, 145 00:20:12,059 --> 00:20:15,099 vamos a poder referirlo y cambiar por aspectos como el volumen. 146 00:20:16,900 --> 00:20:23,019 Si vamos, por ejemplo, remitiendo el audio clip con el código, 147 00:20:23,019 --> 00:20:32,099 si en algún momento decimos que al empezar el juego el Thunder se ejecute, 148 00:20:32,099 --> 00:20:54,799 A ver, audio source, que ejecute el audio que tenemos aquí previsto, ¿vale? Pues con este tipo de método podemos hacer que sea un play, ¿vale? También se puede decir en este paréntesis de play, pues que el sonido que se reproduzca sea el de Thunder. 149 00:20:54,799 --> 00:21:20,380 Como aquí hemos capturado un clip concreto de audio, aunque yo aquí no hubiera puesto nada, aunque me refiero a este sonido que tenemos aquí, cuando vayamos incorporando los audios con el audio clip, 150 00:21:20,380 --> 00:21:39,099 Si hacemos referencia a ese audio source, que en este caso es el de trueno, si aquí no hay ningún clip de audio, si os fijáis, con código yo le estoy vinculando que se reproduzca el del trueno, que es el que luego he vinculado aquí, el Thunderclap. 151 00:21:39,099 --> 00:21:59,130 Esto que hace que cuando yo, por ejemplo, haga play, vais a ver que el clip que va a coger es este que tenemos aquí, ¿vale? Lo estamos haciendo en este que tenemos aquí. 152 00:21:59,130 --> 00:22:09,869 Vale, hemos creado en este caso por ejemplo una corrutina que al final lo que dice es 153 00:22:09,869 --> 00:22:16,170 reproduce el sonido del trueno con este volumen y en ese momento lo que va a ir haciendo es 154 00:22:16,170 --> 00:22:24,809 reproducir en ese audio source ese clip de audio que tenemos vinculado y con un volumen 155 00:22:24,809 --> 00:22:34,710 Que le digamos, ¿vale? El primer parámetro se refiere al clip de audio que hemos incluido con el serialized fill y el segundo es el volumen al que queremos que se escuche. 156 00:22:34,710 --> 00:22:45,029 Que el volumen, nuevamente, se puede referir a un float, que nosotros digamos que sea aleatorio o definirlo nosotros con el valor que creamos conveniente, ¿vale? 157 00:22:45,029 --> 00:23:03,029 Por último, además, vais a ver que la salida de ese audio source, por defecto, si yo en otro elemento añado un audio source, por defecto va a venir vacío y se puede incorporar un clip de audio y se va a escuchar. 158 00:23:03,029 --> 00:23:18,470 Pero es verdad que si queremos tener un control más avanzado, voy a borrarlo para que no se confunda, un control más avanzado de cómo se gestiona ese audio source, se puede crear lo que es un audio mixer. 159 00:23:18,470 --> 00:23:31,450 ¿Vale? Eso sí, damos aquí a los assets, al panel de proyecto y creamos un asset de tipo audio mixer, que lo tenemos por aquí, se generará este tipo de icono, ¿vale? Que es prueba audio mixer. 160 00:23:31,450 --> 00:23:51,940 Si nos metemos aquí, lo que vamos a poder hacer es que dentro de los paneles que tenemos en Unity hay uno dentro de la sección de audio, que es este audio mixer, en el que vamos a poder controlar distintos sonidos que vayamos teniendo. 161 00:23:51,940 --> 00:24:04,700 Lo vamos incorporando y de este modo vamos a poder ir añadiendo nuevos audios que tengamos en la escena. 162 00:24:07,539 --> 00:24:13,480 Por ejemplo, con este audio mixer lo que vamos a poder ir controlando es, dentro de sonidos en el que estamos accediendo a ese mixer, 163 00:24:13,980 --> 00:24:19,680 poder ir controlando los distintos niveles de distintos sonidos que hemos ido incorporando dentro de los grupos. 164 00:24:19,680 --> 00:24:41,750 Por eso, vais a ir viendo que cada uno de estos mixers, si aquí vinculamos el nuevo mixer que hemos creado, si vamos añadiendo en el mixer los distintos sonidos, pues se irán escuchando allí. 165 00:24:41,750 --> 00:24:50,529 ¿Vale? ¿Qué tal hasta aquí? Más o menos me vais siguiendo 166 00:24:50,529 --> 00:24:55,269 Esto está explicado en el tema y se puede ir, vamos, es irlo siguiendo 167 00:24:55,269 --> 00:25:01,089 Pero básicamente es un poco en lo que consistiría el tema del sonido 168 00:25:01,089 --> 00:25:06,609 Luego se habla, por ejemplo, de la diferencia entre el método play y el método play once 169 00:25:06,609 --> 00:25:09,230 ¿Vale? Aquí por ejemplo el play one shot 170 00:25:09,230 --> 00:25:21,789 Que la diferencia que tiene es que con el de play, si vinculamos un sonido, un audio, un clip de audio, se reproducirá hasta el final y no se puede interrumpir, digamos. 171 00:25:21,789 --> 00:25:38,869 Cuando decimos el play in one shot, como sucede en este caso, por ejemplo en este código, si pulsamos la tecla espacio, se ejecuta este método de play thunder, que es que se ejecuta, vamos a decir que se reproduzca ese audio. 172 00:25:39,230 --> 00:25:58,500 Si damos varias veces al intro, a la barra espaciadora, fijaos, se ha oído varias veces ese trueno y le he dado varias veces a la barra espaciadora. 173 00:25:59,019 --> 00:26:10,559 Eso permite que ese reproductor, ese audio source, reproduzca un sonido o el que vayamos haciendo, porque podríamos hacer también un array de distintos clips de audio, se puedan reproducir uno tras otro desde ese altavoz. 174 00:26:10,559 --> 00:26:32,519 Si solo usáramos el método play, ¿vale? Hasta que no. A ver, play once va a ser. Vale, sí, lo que pasa es que play solo va a permitir el primer método, el primer parámetro. Ah, bueno, y si lo escribo entero, claro. 175 00:26:32,519 --> 00:26:44,019 y aquí lo que va a hacer es reproducir directamente el audio que tengamos aquí incorporado 176 00:26:44,019 --> 00:26:51,119 como en el componente introducido y lo reproducirá solo una vez 177 00:26:51,119 --> 00:26:54,460 hasta que no acaba ese clip de audio, no se puede reproducir más veces 178 00:26:54,460 --> 00:26:58,460 por eso es normalmente mucho más eficiente usar este play one shot 179 00:26:58,460 --> 00:27:00,839 y lo tenemos 180 00:27:00,839 --> 00:27:03,059 que nos permite ir cambiando 181 00:27:03,059 --> 00:27:04,559 en vivo cuál es el clip 182 00:27:04,559 --> 00:27:06,299 que tenemos 183 00:27:06,299 --> 00:27:09,079 que estamos incorporando 184 00:27:09,079 --> 00:27:10,740 a este componente de Audiosource 185 00:27:10,740 --> 00:27:19,119 dudas hasta aquí 186 00:27:19,119 --> 00:27:21,480 eso es 187 00:27:21,480 --> 00:27:22,279 un poco en el tema 188 00:27:22,279 --> 00:27:25,759 se va explicando todo esto 189 00:27:25,759 --> 00:27:28,569 ¿vale? 190 00:27:30,349 --> 00:27:30,950 hola 191 00:27:30,950 --> 00:27:32,490 bueno, se oye por ahí un audio 192 00:27:32,490 --> 00:27:34,029 no sé si alguno sea 193 00:27:34,029 --> 00:27:36,970 Oye, perdona, la parte de estar one shot 194 00:27:36,970 --> 00:27:38,930 entiendo que es solo un evento 195 00:27:38,930 --> 00:27:40,930 programas una acción y 196 00:27:40,930 --> 00:27:42,529 solo cuando se ejecuta esa acción 197 00:27:42,529 --> 00:27:45,230 Sí, es decir, mira, si veis el tema 198 00:27:45,230 --> 00:27:46,690 al final lo que se puede hacer 199 00:27:46,690 --> 00:27:49,029 y aquí es el ejemplo de que se pueden incorporar 200 00:27:49,029 --> 00:27:50,190 distintos audio clips 201 00:27:50,190 --> 00:27:52,789 y meterlo en otra variable de un array y que sea 202 00:27:52,789 --> 00:27:54,930 esa la que llama, pero sí, es un evento 203 00:27:54,930 --> 00:27:56,130 está pensado para que 204 00:27:56,130 --> 00:27:58,690 cuando pulses una tecla, por ejemplo 205 00:27:58,690 --> 00:28:00,470 como lo que acabo de comentaros de 206 00:28:00,470 --> 00:28:02,730 dar a la barra espaciadora, se lance 207 00:28:02,730 --> 00:28:04,190 ese clip de audio, que puede ser el que sea 208 00:28:04,190 --> 00:28:05,329 y con un volumen concreto 209 00:28:05,329 --> 00:28:08,589 es independiente de que se haya 210 00:28:08,589 --> 00:28:09,789 ejecutado en otro momento 211 00:28:09,789 --> 00:28:11,509 cada vez que le des 212 00:28:11,509 --> 00:28:13,829 permite ejecutar dos o más clips 213 00:28:13,829 --> 00:28:15,390 incluso de forma simultánea 214 00:28:15,390 --> 00:28:17,930 no se anulan, es decir, en el de play 215 00:28:17,930 --> 00:28:19,710 tú le das 216 00:28:19,710 --> 00:28:21,710 y no se van a reproducir a la vez 217 00:28:21,710 --> 00:28:23,210 sino que uno va a pisar al otro 218 00:28:23,210 --> 00:28:25,869 digamos que el audio source, cuando usas play 219 00:28:25,869 --> 00:28:28,150 usa en exclusiva el audio que está lanzando 220 00:28:28,150 --> 00:28:29,789 y en el 221 00:28:29,789 --> 00:28:31,410 play one shot lo que haces es 222 00:28:31,410 --> 00:28:33,730 que puede ir lanzando distintos eventos 223 00:28:33,730 --> 00:28:34,650 como tú has indicado 224 00:28:34,650 --> 00:28:36,190 de ese audio 225 00:28:36,190 --> 00:28:39,109 la diferencia es con lo que sea simultáneo 226 00:28:39,109 --> 00:28:41,470 eso es, sí, y bueno también 227 00:28:41,470 --> 00:28:44,029 que es más sencillo incluso de configurar 228 00:28:44,029 --> 00:28:45,849 porque el play como puedes ver 229 00:28:45,849 --> 00:28:47,609 aquí al final lo que dice es 230 00:28:47,609 --> 00:28:49,269 vale, tú lanzas el sonido 231 00:28:49,269 --> 00:28:51,670 y ese sonido ya tiene que estar colocado de algún modo 232 00:28:51,670 --> 00:28:53,829 previamente en este 233 00:28:53,829 --> 00:28:55,750 campo de audio clip del audio source 234 00:28:55,750 --> 00:28:56,809 sin embargo 235 00:28:56,809 --> 00:29:00,230 como puedes ver aquí en el de play one shot 236 00:29:00,230 --> 00:29:02,750 puedes remitir directamente, incluso con el volumen, 237 00:29:03,329 --> 00:29:04,890 cuál es ese clip que quieres que se lance. 238 00:29:05,410 --> 00:29:09,250 Entonces, sin tener que tener preconfigurado el componente en Unity 239 00:29:09,250 --> 00:29:12,630 ni por código introducirlo de formas más enrevesadas, 240 00:29:12,990 --> 00:29:14,650 aquí directamente, mira, cuando hagas esto, 241 00:29:15,170 --> 00:29:18,190 que este audio source ejecute tal audio y a este volumen. 242 00:29:18,470 --> 00:29:18,849 Y ya está. 243 00:29:19,369 --> 00:29:21,150 Entonces es más eficiente. 244 00:29:22,410 --> 00:29:23,730 Más directo, vaya. 245 00:29:23,730 --> 00:29:29,430 lo he dicho, el audio mixer también está 246 00:29:29,430 --> 00:29:33,150 mezclado aquí 247 00:29:33,150 --> 00:29:37,390 y bueno, pues al final lo que se puede 248 00:29:37,390 --> 00:29:41,890 ir haciendo es que incluso por código se puede acceder 249 00:29:41,890 --> 00:29:44,130 con métodos que están aquí 250 00:29:44,130 --> 00:29:49,390 remitidos en el audio mixer, igual que había por ejemplo en los 251 00:29:49,390 --> 00:29:52,329 aquí está, en los animators 252 00:29:52,329 --> 00:29:53,750 en las animaciones de los animators 253 00:29:53,750 --> 00:29:55,329 pues hay un setfloat, un getfloat 254 00:29:55,329 --> 00:29:57,029 por si nos interesa en el getfloat 255 00:29:57,029 --> 00:29:59,150 saber que volumen por ejemplo tiene 256 00:29:59,150 --> 00:30:01,990 tal elemento 257 00:30:01,990 --> 00:30:03,849 del mixer, tal canal 258 00:30:03,849 --> 00:30:05,910 del mixer, para eso hay que usar 259 00:30:05,910 --> 00:30:07,309 la opción de expose 260 00:30:07,309 --> 00:30:09,470 parameters que tenemos aquí 261 00:30:09,470 --> 00:30:11,069 y si se crea un nuevo 262 00:30:11,069 --> 00:30:13,589 un nuevo 263 00:30:13,589 --> 00:30:15,930 esto se 264 00:30:15,930 --> 00:30:19,319 espera 265 00:30:19,319 --> 00:30:42,839 Perdón, que esto se me acaba de... Ah, bueno, sí. Hay que ir a uno de los canales y si le dais a clic derecho se puede hacer que se vea. Por ejemplo, el volumen no deja, pero si vamos a Low Pass y queremos exponer alguno de estos parámetros, por ejemplo, en un filtro paso bajo, por ejemplo, en el módulo de RMPA se habla de ello, 266 00:30:42,839 --> 00:31:07,960 Si los ponéis, aparecerá aquí junto a un nombre que se puede cambiar de esa exposición, ¿no? Entonces, ya si vamos a My Exposed Parameter o le cambiamos el nombre, si aquí ponemos 14, por ejemplo, nosotros luego vamos a poder, a través del mixer, ¿vale? Poder acceder a ese parámetro en concreto y ponerle un valor. 267 00:31:07,960 --> 00:31:23,319 Entonces gracias a los parámetros expuestos podemos acceder por código. Siempre a través de declarar la variable de tipo mixer vamos a poder ir cambiando los valores. 268 00:31:23,319 --> 00:31:38,019 Por ejemplo, en este caso, yo he configurado que cuando se mueva la ruleta del ratón, en el enunciado viene cómo definir los valores para que tengan en niveles de decibelios un volumen concreto. 269 00:31:38,720 --> 00:31:47,400 Los decibelios es un valor logarítmico y hay que hacer una pequeña fórmula para que al final transforme el valor que nosotros introduzcamos en decibelios. 270 00:31:47,400 --> 00:32:02,339 Pero en esencia lo que podemos decirle es Mixer a Music Volume, que es el volumen de música que tiene en el Mixer, en el Audio Mixer, que tiene el Master, el volumen que tenemos aquí. 271 00:32:02,339 --> 00:32:07,099 ¿Vale? Pues, bueno, no, aquí, este 272 00:32:07,099 --> 00:32:09,619 ¿Veis que tiene esta flechita, eso que está expuesto? 273 00:32:09,960 --> 00:32:12,759 Pues el volumen de esa música yo lo voy a cambiar 274 00:32:12,759 --> 00:32:16,240 Con esta segunda variable, que son los decibelios 275 00:32:16,240 --> 00:32:19,359 ¿Vale? Que en este caso estarán cogiendo el volumen sonido 276 00:32:19,359 --> 00:32:21,720 Que yo he capturado antes de un slider, ¿vale? 277 00:32:21,740 --> 00:32:23,319 Que es este slider que tengo aquí 278 00:32:23,319 --> 00:32:25,759 Entonces, con este slider 279 00:32:25,759 --> 00:32:31,089 Fijaos aquí 280 00:32:35,950 --> 00:32:39,529 He conectado el valor de una cosa con la otra a través de código. 281 00:32:46,940 --> 00:32:57,940 Sobre el audio es un poco eso, ir siguiendo las instrucciones e ir incorporando distintos elementos. 282 00:32:59,279 --> 00:33:01,640 A ver, una cosilla que os quería comentar. 283 00:33:04,319 --> 00:33:04,799 Vale. 284 00:33:04,799 --> 00:33:19,349 Pues sobre sonido eso es lo principal, la diferencia entre el audio listener, el audio source, que es un audio clip, que existe el audio mixer y desde ahí se pueden incorporar distintos efectos de sonido. 285 00:33:19,349 --> 00:33:25,269 Con este app hay distintos efectos de sonido que se van a ir incorporando. 286 00:33:25,269 --> 00:33:38,569 Otro aspecto importantísimo de este tema es el panel de Build Settings que ya vimos para ir navegando, para ir cambiando entre diferentes escenas de nuestro proyecto 287 00:33:38,569 --> 00:33:46,490 que también sirve aparte de para esa organización de eventos con el índex de las distintas escenas que podemos ir incorporando 288 00:33:46,490 --> 00:33:53,309 Entiendo que eso todo lo recordamos desde la unidad 4 principalmente, aunque ya se adelantó en la tarea de la unidad 3 289 00:33:53,309 --> 00:34:09,130 Pero hay otro aspecto importante que es que en nuestro juego vamos a poder querer que salga por defecto para ordenador, que sea un ejecutable de ordenador, pero también nos puede interesar que salga como en una exportación para subir a una página web. 290 00:34:09,130 --> 00:34:35,510 Si os fijáis aquí, HTML5 hace mención al lenguaje de Internet, que se usa en Internet, el lenguaje de marcado, el HTML, y se puede sacar el juego para que a través de, esto lo tenemos aquí, archivos que son exportar para web, que básicamente consiste en un HTML, archivo de Javascript y distintas carpetas, se puedan subir a páginas web y ejecuten nuestro juego. 291 00:34:35,510 --> 00:34:53,110 Es lo que, por ejemplo, ocurre o lo que os va a pedir cuando os metáis en Unity Play y queráis subir un juego. Aquí no os va a pedir un ejecutable, os va a pedir una estructura web para que el juego se pueda reproducir. 292 00:34:53,110 --> 00:35:09,250 Lo mismo ocurre en otras plataformas como por ejemplo itch.io. Aquí no os va a pedir subir un ejecutable, os va a pedir, como se reproduce en el web, que se ejecute mediante instrucciones escritas en HTML y otras carpetas que genera. 293 00:35:09,250 --> 00:35:25,929 Para ello, cuando exportemos el juego, tendremos que seleccionar la plataforma que queramos y darle a cambiar plataforma. Si os fijáis, aquí sale un iconito de cuál es la que está seleccionada y en base a la cual se va a construir el ejecutable o el compilado que tengamos. 294 00:35:25,929 --> 00:35:28,909 este botón de build cuando se pulse 295 00:35:28,909 --> 00:35:30,969 se va a básicamente 296 00:35:30,969 --> 00:35:32,849 entre comillas exportar 297 00:35:32,849 --> 00:35:33,989 nuestro juego, se va a hacer 298 00:35:33,989 --> 00:35:36,809 esa compilación, si queremos que 299 00:35:36,809 --> 00:35:38,550 ese juego salga para WebGL 300 00:35:38,550 --> 00:35:40,670 habrá que dar a switch platform, pensará 301 00:35:40,670 --> 00:35:42,989 un poquillo y aquí arriba 302 00:35:42,989 --> 00:35:44,849 que antes ponía esto de PC, Mac 303 00:35:44,849 --> 00:35:46,989 y Linux, ahora pasa a poner WebGL 304 00:35:46,989 --> 00:35:48,829 y vais a ver que pasa 305 00:35:48,829 --> 00:35:51,070 también a tener el iconillo que representa 306 00:35:51,070 --> 00:35:52,789 que es WebGL la que 307 00:35:52,789 --> 00:35:55,130 la que va a exportar 308 00:35:55,130 --> 00:36:04,530 cuando vemos al build. Lo mismo hay para Android, si quisiéramos exportar nuestro juego para móviles, para iOS y luego para otras plataformas, 309 00:36:04,590 --> 00:36:13,369 por ejemplo, PS5, bueno, algunas más avanzadas. A ver cuando acabe yo os enseño. En este momento, cuando acabe esto, vais a ver que el icono se va a poner aquí. 310 00:36:13,369 --> 00:36:52,539 Venga, ya queda poco. Bueno, ahí está, ¿vale? Y puede, bueno, veis que está aquí el botón Z y cuando diéramos a build se construiría este build. No obstante, os pueden ocurrir, oye, para poder construir la build, para poder hacer el compilado, ve a player settings, que de hecho son los mismos player settings que tenemos en edit, project settings y player, que ahora hablamos un poco de ello, ¿vale? 311 00:36:52,539 --> 00:37:05,519 Pero bueno, aquí da un botón directamente para ir a ello y dice hay una incompatibilidad con el espacio de color. Si le dais lo que os va a pedir es, bueno, pues si vais a exportar para ese tipo de dispositivo, os va a pedir que lo cambiéis a gama. 312 00:37:05,719 --> 00:37:20,380 Entonces, esto ya dependiendo de cuál es la plataforma, pues tendréis que ir viendo qué obstáculos os pone, que os lo irá avisando y vais a ver que cuando se hace este cambio sí que os lo va a permitir. 313 00:37:20,380 --> 00:37:28,119 vale mientras se hace eso estos estas plataformas de exportación si no se aparece por defecto puede 314 00:37:28,119 --> 00:37:33,699 deberse a que no esté instalado el módulo que permite esa exportación si recordáis de los 315 00:37:33,699 --> 00:37:39,159 primeros momentos que dimos clase al instalar las distintas versiones de unity también se pueden 316 00:37:39,159 --> 00:37:44,139 instalar lo que se llaman los módulos vale con esta tuerquecilla si damos a add módulos salían 317 00:37:44,139 --> 00:37:50,679 distintos módulos que en algunos casos como el visual estudio instalábamos siempre pero luego 318 00:37:50,679 --> 00:37:55,239 hay otros como este de android que para que se pueda exportar en android es decir para que 319 00:37:55,239 --> 00:38:02,139 aparezca aquí seleccionable hay que añadir si no habrá otros como veis estos dos que no están 320 00:38:02,139 --> 00:38:08,219 incorporados vale y algunos os dirá instalado desde unity hub esto de tv o ese si vamos a 321 00:38:08,219 --> 00:38:10,800 a Unity Hub, habrá que instalar 322 00:38:10,800 --> 00:38:12,440 este tvOS 323 00:38:12,440 --> 00:38:14,639 build support, incluso el de IOS 324 00:38:14,639 --> 00:38:16,940 tampoco está incluido 325 00:38:16,940 --> 00:38:18,880 bueno, pues habrá que instalarlo y una vez se instale 326 00:38:18,880 --> 00:38:20,760 pues permitirá 327 00:38:20,760 --> 00:38:22,840 hacer el compilado 328 00:38:22,840 --> 00:38:23,960 de nuestro juego 329 00:38:23,960 --> 00:38:26,699 el de Android 330 00:38:26,699 --> 00:38:28,679 está instalado y por eso se ve, el de IOS 331 00:38:28,679 --> 00:38:30,579 no está instalado el módulo de IOS 332 00:38:30,579 --> 00:38:32,300 instalado con Unity Hub 333 00:38:32,300 --> 00:38:34,539 os lo abre directamente, marcado 334 00:38:34,539 --> 00:38:36,500 para que lo instaléis, cuanto más instaléis 335 00:38:36,500 --> 00:38:41,360 lo de siempre más peso va a tener el proyecto vuestro ordenador más espacio va a tener que 336 00:38:41,360 --> 00:38:46,440 ocupar para instalar estos módulos por eso si no lo vais a usar pues no se selecciona veis ahora 337 00:38:46,440 --> 00:38:51,920 que en web gl ya podría exportar va a tardar bastante pero al final lo que genera web gl es 338 00:38:51,920 --> 00:38:57,199 una estructura de carpetas con html un índice de html y distintas carpetas que contienen el 339 00:38:57,199 --> 00:39:02,179 juego gestionados gestionados desde html por tanto si queréis exportar para subirla a una 340 00:39:02,179 --> 00:39:09,239 plataforma que corre en web sería esta la forma de exportar si bueno luego hay otros como la de 341 00:39:09,239 --> 00:39:15,559 playstation 5 que directamente piden no que instale y sólo un módulo sino que tenéis que contar con 342 00:39:15,559 --> 00:39:22,920 unas credenciales que orden los desarrolladores son y en este caso para poder exportar que no se 343 00:39:22,920 --> 00:39:28,000 la dan a todo el mundo hay que seguir unos procedimientos y bueno aquí os si le dais a 344 00:39:28,000 --> 00:39:30,340 ese botón que hay ahí, pues aquí os da la documentación 345 00:39:30,340 --> 00:39:33,940 de cómo conseguir el módulo de compilado 346 00:39:33,940 --> 00:39:36,880 para distintas consolas, ¿no? 347 00:39:36,880 --> 00:39:37,239 Por ejemplo. 348 00:39:40,059 --> 00:39:41,059 Cuando, ¿vale? 349 00:39:41,400 --> 00:39:43,619 Aquí hay distintas opciones que en principio no hay que tocar, 350 00:39:43,760 --> 00:39:46,159 excepto, por ejemplo, si estamos trabajando en Mac, 351 00:39:46,480 --> 00:39:49,179 a veces nos puede permitir cambiar de plataforma. 352 00:39:49,760 --> 00:39:52,420 Si trabajamos en Windows, solo nos deja en Windows, ¿vale? 353 00:39:52,440 --> 00:39:54,480 Y hay otras más relacionadas con desarrollo. 354 00:39:55,159 --> 00:39:57,219 Lo importante es que cuando demos a ese build, 355 00:39:57,219 --> 00:39:59,380 se va a generar, en el caso de PC 356 00:39:59,380 --> 00:40:00,320 un ejecutable 357 00:40:00,320 --> 00:40:03,500 y os enseño por ejemplo este 358 00:40:03,500 --> 00:40:05,539 este es el ejecutable de cuando 359 00:40:05,539 --> 00:40:06,980 he exportado el juego 360 00:40:06,980 --> 00:40:09,079 con esta opción marcada 361 00:40:09,079 --> 00:40:11,739 no lo voy a cambiar otra vez pero tal y como está 362 00:40:11,739 --> 00:40:12,840 dándole 363 00:40:12,840 --> 00:40:15,119 se crea esta estructura de carpetas 364 00:40:15,119 --> 00:40:17,480 en los cuales lo más importante va a ser 365 00:40:17,480 --> 00:40:19,460 este .exe, esta es la forma 366 00:40:19,460 --> 00:40:21,260 en la que tendríais que exportar vuestro videojuego 367 00:40:21,260 --> 00:40:23,260 o proyecto cuando está finalizado 368 00:40:23,260 --> 00:40:24,659 si lo que queréis es que sea 369 00:40:24,659 --> 00:40:28,059 un ejecutable de Windows, ¿vale? 370 00:40:28,159 --> 00:40:30,559 Si queréis que sea para subirlo a plataformas de Android, 371 00:40:30,699 --> 00:40:31,880 pues habrá que sacarlo para Android. 372 00:40:32,039 --> 00:40:34,519 Si os fijáis en esas carpetas de ejecutables, 373 00:40:34,880 --> 00:40:37,559 aparecen más archivos que se deben compartir, ¿vale? 374 00:40:37,559 --> 00:40:39,579 No se deberían borrar porque tienen información 375 00:40:39,579 --> 00:40:41,380 vinculada a este ejecutable. 376 00:40:41,860 --> 00:40:44,099 Y veréis que tiene como un iconito propio 377 00:40:44,099 --> 00:40:46,320 que he incorporado yo, que pone Tarea de M7. 378 00:40:46,739 --> 00:40:50,039 Todo eso se configura desde los Player Settings 379 00:40:50,039 --> 00:40:51,559 que hemos dicho antes que estaban en Edit, 380 00:40:51,940 --> 00:40:54,059 Project Settings y Player, ¿vale? 381 00:40:54,059 --> 00:41:01,699 Aquí os deja cambiar desde el nombre del compilado, incorporar una miniatura, ¿vale? 382 00:41:01,699 --> 00:41:07,300 Y dependiendo de las distintas plataformas, veis que este iconito de HTML5 se refiere a exportación a WGL. 383 00:41:07,840 --> 00:41:11,139 Si me pongo encima, este es el de Android, ¿vale? Este es el de PC. 384 00:41:11,920 --> 00:41:16,960 Os puede pedir distintas versiones según el dispositivo de vuestro, por ejemplo, para Android, 385 00:41:17,079 --> 00:41:20,260 pues el que se vería en una pantalla de tales dimensiones. 386 00:41:20,260 --> 00:41:41,760 Y se pueden ir incorporando distintos assets, distintas imágenes 2D para ir, digamos, adaptándose a las diferentes necesidades de distintos dispositivos. Por defecto, si no se van seleccionando una a una, por defecto se puede incorporar una general. Igual que también se puede incorporar el cursor de juego. 387 00:41:41,760 --> 00:41:56,659 Veis que yo cuando me voy moviendo en game, ahora nos sale la cruceta, el cursor, perdón, del ratón habitual. Eso es porque he incorporado una textura 2D, pues en este caso, por lo que he dicho, con una forma de diana, esto es para enseñaroslo, que es la que se verá. 388 00:41:56,659 --> 00:42:06,599 Entonces, se puede cambiar también el cursor desde ese punto, ¿vale? Y el nombre también que tendrá nuestro proyecto al exportarlo, pues, está relacionado con este product name. 389 00:42:06,739 --> 00:42:17,440 Aparte de otra información relevante, si lo vamos a subir, por ejemplo, a plataformas como Google Play, etcétera, según cómo se haga el compilado, pues, información casi como metadata, ¿no? 390 00:42:17,440 --> 00:42:30,380 Que se va a usar, pues, para tener un seguimiento de versiones, para que quede claro también cuál es la compañía o si somos nosotros el desarrollador, pues, quiénes somos y etcétera, ¿vale? 391 00:42:30,380 --> 00:42:56,679 Todo eso se gestiona desde el Player Settings, que es una de las secciones de Unity bastante relevante cuando se va cambiando de plataforma para, por ejemplo, configurar un código de publicación que piden si, por ejemplo, se va a subir a un archivo Android a Google Play, a la Asset Store, vamos a decir, a la plataforma de venta de aplicaciones que tiene Google. 392 00:42:56,679 --> 00:43:08,679 Os puede pedir distintas configuraciones aquí para validar de seguridad y también para validar que sois vosotros el desarrollador, etc. En estas secciones es donde se encuentra este tipo de cosas. 393 00:43:08,679 --> 00:43:17,619 Por mi parte de esta tarea, a no ser que tengáis dudas, más o menos era el repaso que quería que viéramos 394 00:43:17,619 --> 00:43:28,420 En el tema también se habla de los tipos de iluminación, se habla de la iluminación en tiempo real y la paqueada o la precocinada 395 00:43:28,699 --> 00:43:34,480 Pero eso se habla en el tema y en algunos de los vídeos también se trata, no quiero ser redundante 396 00:43:34,480 --> 00:43:54,739 Y al menos que me planteéis dudas o que os surjan, paso a ese repaso que os indicaba de los temas. Así rápido, pero espero que conveniente lo que me digáis. Las tutorías, como ya sabéis, es un poco para que me planteéis dudas, sobre todo. 397 00:43:55,940 --> 00:43:57,400 Yo por mí no como a repaso. 398 00:43:57,400 --> 00:44:17,659 Sí, ¿alguien quiere ver algo de esta unidad 7? Luego volvemos a la unidad 7, pero como este repaso que os digo, pero si queréis ver algo en concreto de la unidad, es el momento. Vale, pues vamos a ello. 399 00:44:17,659 --> 00:44:39,579 Vale, pues aquí tenemos el aula virtual. Vamos a ir por temas. En el primer tema, de los contenidos del primer tema, el primer tema es un poco, y por eso se llama cero, es el tema transversal en el sentido de que se aporta la introducción a la programación que muchos de vosotros no tendríais. 400 00:44:39,579 --> 00:44:54,159 Porque algunos compañeros si venís sois informáticos y este tema pues más o menos lo conocéis ya. Pero bueno, es la base desde la que aprendemos a programar en este módulo, en este curso. 401 00:44:54,159 --> 00:45:14,480 De este tema, cosas importantes. Es importante saber un poco qué es programar, qué son los lenguajes de programación. Puede haber alguna pregunta conceptual. Tampoco sé lo que más me centraría, pero hay que saber, por supuesto, que hay distintos lenguajes de programación. 402 00:45:14,480 --> 00:45:23,599 un poco qué es el lenguaje de alto nivel o de bajo nivel, qué son los IDEs y qué es lo que, bueno, para lo que sirven, 403 00:45:23,699 --> 00:45:30,619 que es esta ayuda para depurar y ayudarnos a programar, que en nuestro caso el que usamos es el de Visual Studio, 404 00:45:30,880 --> 00:45:39,460 que es el más compatible o al menos el que está más asociado desde Unity, dado que, por ejemplo, permite instalarlo como módulo, 405 00:45:39,460 --> 00:45:44,800 como hemos visto antes, ¿vale? Y, bueno, un poco esta teoría es importante conocerla. 406 00:45:46,139 --> 00:45:52,460 Una vez pasamos, aquí ya empieza lo que me importa aún más, que es saber qué son cada uno de estos cuatro conceptos, 407 00:45:53,199 --> 00:45:56,940 las variables, pues saber qué es una variable, cómo se declara, cómo se inicializa. 408 00:45:57,139 --> 00:46:04,440 Bueno, a esta altura del curso creo que deberíais saber bastante bien ya qué es una variable, para qué se usa, 409 00:46:04,440 --> 00:46:11,179 que facilita, ¿no?, que es este reempleo a través de una palabra que designamos, pues poder guardar valores, etc. 410 00:46:11,179 --> 00:46:19,559 Bueno, pues cómo se declaran, por supuesto, los tipos de variables que hemos estado usando, principalmente, pues eso, los int, los flow, los strings. 411 00:46:20,019 --> 00:46:29,179 También que hay tipos de variables que hacen referencia a componentes, ¿vale?, que es como nosotros por código nos podemos conectar con los componentes 412 00:46:29,179 --> 00:46:31,599 que tenemos, que vamos incorporando 413 00:46:31,599 --> 00:46:33,519 a nuestros GameObjects, ¿vale? Pues 414 00:46:33,519 --> 00:46:35,800 saber los tipos de variables, 415 00:46:36,000 --> 00:46:37,500 lo que es lo booleano, que es un array, 416 00:46:37,880 --> 00:46:39,659 cómo se declara, eso es importante, 417 00:46:39,860 --> 00:46:41,659 ¿vale? Entiendo que en este momento 418 00:46:41,659 --> 00:46:43,719 del curso entendemos que esto es básico 419 00:46:43,719 --> 00:46:45,719 y espero que, bueno, pues 420 00:46:45,719 --> 00:46:47,699 que en el examen va a haber preguntas 421 00:46:47,699 --> 00:46:49,900 referidas a ello. Igual que va a haber preguntas 422 00:46:49,900 --> 00:46:51,460 a sintaxis, me refiero, 423 00:46:51,920 --> 00:46:53,739 por ejemplo, ya no sólo a cómo 424 00:46:53,739 --> 00:46:55,159 se declara, realmente, 425 00:46:55,739 --> 00:46:57,699 vamos, de forma que no de 426 00:46:57,699 --> 00:47:01,480 error que sea la correcta en cesar que es el programa que hemos usado durante 427 00:47:01,480 --> 00:47:05,500 todo el curso y también atajos como estos que tenemos aquí es muy muy muy 428 00:47:05,500 --> 00:47:11,340 probable que haya una pregunta que haga mención bueno pues un pequeño 429 00:47:11,340 --> 00:47:16,920 un pequeño código que diga si tenemos este número guardado en una int y le 430 00:47:16,920 --> 00:47:20,679 ponemos este más más y luego me lo muestras en consola cuál es el resultado 431 00:47:20,679 --> 00:47:26,099 o cuando operan dos variables cuál es el resultado preguntas de ese tipo va a 432 00:47:26,099 --> 00:47:32,039 ver seguro vale aquí por ejemplo lo que os hablaba que no sólo son las variables más básicas sino que 433 00:47:32,039 --> 00:47:38,539 también hay de tipo game object la del componente los vectores transform etcétera los arrays igual 434 00:47:38,539 --> 00:47:45,460 es algo un poco básico pues saber qué son y cómo se declaran eso es importante eso operaciones pues 435 00:47:45,460 --> 00:47:50,159 operaciones va a haber alguna pregunta de cómo operar vale pues qué resultado daría esta suma 436 00:47:50,159 --> 00:47:55,219 no que entiendo por ejemplo si os preguntara si es muestra en consola en leer este código en este 437 00:47:55,219 --> 00:48:03,070 punto hago un debate de resultado cuál sería el resultado esa pregunta por 438 00:48:03,070 --> 00:48:06,710 ejemplo de ese estilo con los operadores que antes os indicó del más más el menos 439 00:48:06,710 --> 00:48:12,190 menos el incremento decremento etcétera o multiplicaciones etcétera bueno por si 440 00:48:12,190 --> 00:48:16,329 alguien no bueno aunque lo pone aquí el resultado sería 7 pues eso puede ser 441 00:48:16,329 --> 00:48:21,309 perfectamente una pregunta vale saber cómo se opera estos los primeros vídeos 442 00:48:21,309 --> 00:48:25,909 del curso de las tutorías grabadas que os dejé al principio de curso se habla 443 00:48:25,909 --> 00:48:35,389 de ello, ¿vale? Lo he dicho. Y se recuerda aquí. Estos operadores son importantes. También la inversión en las booleanas de lo que vale una booleana, ¿vale? 444 00:48:35,389 --> 00:48:44,289 Para que pase de true a false o de false a true. Eso es muy importante. Del mismo modo, bueno, pues, ¿qué son las estructuras SILF? ¿Cómo se usan? ¿Vale? 445 00:48:45,050 --> 00:48:55,130 En el propio... déjame un segundo, me quedo aquí. En el propio simulacro de examen ya se os ponía algunas preguntas y lo voy a abrir ya que lo tengo por aquí. 446 00:48:55,130 --> 00:49:12,170 En recursos generales, bueno, ya hace mucho os dejamos los profesores estos simulacros donde se ven algunas preguntas. Bueno, pues algunas de ejemplo, tampoco. Pues eso, cómo se declararía bien una RAI, los tiempos de ejecución, etc. Bueno, esto lo podéis ver. 447 00:49:12,170 --> 00:49:28,750 Una, por ejemplo, de una corrutina. También se va a hablar de corrutinas. Va a haber alguna pregunta que haga mención a una corrutina, un poco como, por ejemplo, hace aquí. Pero va a haber una pregunta 100% de desarrollo de este tipo. 448 00:49:28,750 --> 00:49:51,929 Que va a haber unas líneas de código, ¿vale? Un código, un script básicamente, en la que se os va a pedir que digáis con respecto a alguna línea qué es esa línea, es decir, qué hace esta línea, con qué se conecta para explicar que, por ejemplo, esta variable anim en esta línea está cogiendo un componente, está capturando un componente de tipo animator, ¿vale? 449 00:49:51,929 --> 00:49:55,530 Que se había declarado como variable global al comienzo de la clase, ¿vale? 450 00:49:55,550 --> 00:50:03,710 Y que en el GameObject que tenga aplicado este script tendrá que haber un componente animator aplicado 451 00:50:03,710 --> 00:50:06,449 para que se pueda guardar esta variable y luego se pueda ir usando. 452 00:50:06,769 --> 00:50:10,969 Por ejemplo, aquí, esta línea más adelante que hace uso de ese anim, ¿vale? 453 00:50:10,969 --> 00:50:18,849 De esa variable anim, si no estuviera bien capturada no funcionaría, no estaría aplicándose a ningún componente, ¿vale? 454 00:50:18,849 --> 00:50:40,030 Pues un poco este tipo de, o aquí, este tipo de axis, pues que es la clase input para que se usa, ¿no? Que es para las interacciones que hacemos. Pues un axis que es, ¿no? Que son ese tipo de captura que se basan en un eje que puede ir de un valor 1 a un menos 1 con valores intermedios y, bueno, pues que en este caso se ha llamado en el Axis Manager horizontal, ¿vale? 455 00:50:40,030 --> 00:51:00,449 Pues a través de esta captura de un eje, por ejemplo en un mando con dos teclas opuestas, esta variable x-axis, que es de tipo float, pues irá capturando previsiblemente los valores de movimiento en x que vayamos introduciendo en nuestro mando o en nuestro teclado, ¿vale? 456 00:51:00,449 --> 00:51:26,489 Aquí igual con el AdForce, hablando del RigidBody, una pregunta de este estilo va a haber, porque es una pregunta que lo que busca es saber o ver que habéis entendido, que tenéis el criterio suficiente para escribir vosotros el código, como no vamos a hacerlo en ordenador, saber interpretar y saber qué es lo que se está realizando en un conjunto de líneas con instrucciones. 457 00:51:26,489 --> 00:51:39,670 Y bueno, pues saber que conocéis la sintaxis y también el sentido de distintos métodos, propiedades, códigos en César aplicados a Unity. Entonces, preguntas de este estilo va a haber seguro. 458 00:51:40,329 --> 00:51:47,050 Pero nada, te interrumpo. La idea es más analizar un código escrito que andar escribiendo nosotros código. 459 00:51:47,750 --> 00:51:48,750 ¿Puede haber alguna pregunta? 460 00:51:48,829 --> 00:51:54,070 No, ya, eso. No, ya, desarrollame, no sé, cuatro procedimientos para hacer X. 461 00:51:54,070 --> 00:52:13,750 Se os puede preguntar en otra de las preguntas de desarrollo, pues por ejemplo, yo que sé, ¿para qué se usa el onCollisionEnter y qué diferencia hay con el onTriggerEnter? Por ejemplo, ¿vale? Y que expliquéis y que pongáis un pequeño ejemplo. En ningún caso va a haber que escribir mucho código. 462 00:52:13,750 --> 00:52:33,690 ¿Vale? Sí que a lo mejor alguna línea concreta o explicar para qué sirve y poner la línea, eso a lo mejor sí podría haber, ¿vale? Pero lo que seguro que sí que va a haber es analizar código, ¿vale? Porque al final es de la forma que más veo yo que entendéis que hacen los códigos y cómo se interrelacionan las distintas líneas. 463 00:52:33,690 --> 00:52:36,190 puede haber en alguna pregunta de desarrollo 464 00:52:36,190 --> 00:52:38,050 en las de tipo test son cerradas 465 00:52:38,050 --> 00:52:40,090 son escoger entre opciones, ahí no vais a 466 00:52:40,090 --> 00:52:41,949 tener que escribirlo, en las de desarrollo 467 00:52:41,949 --> 00:52:43,750 que tenéis, podría haber 468 00:52:43,750 --> 00:52:46,050 aunque ya os digo que no va a ser 469 00:52:46,050 --> 00:52:47,449 lo prioritario, lo adelanto 470 00:52:47,449 --> 00:52:50,110 eso no quita que se os pueda pedir, oye, ¿cómo sería 471 00:52:50,110 --> 00:52:52,090 la línea para que eso, para que funcionara 472 00:52:52,090 --> 00:52:53,889 un collision enter o explícame 473 00:52:53,889 --> 00:52:55,829 cómo se aplica 474 00:52:55,829 --> 00:52:57,230 un collision enter, ¿vale? 475 00:52:57,949 --> 00:52:59,869 eso sí puede ser, igual que pueda haber 476 00:52:59,869 --> 00:53:01,969 eso también, por ejemplo, un ejemplo 477 00:53:01,969 --> 00:53:03,909 de código con una parte subrayada 478 00:53:03,909 --> 00:53:05,530 en rojo de que está dando error 479 00:53:05,530 --> 00:53:07,929 ¿cómo habría 480 00:53:07,929 --> 00:53:10,090 que reescribirla para que no dé ese error? 481 00:53:10,530 --> 00:53:11,909 Eso sí podría haber. Serán 482 00:53:11,909 --> 00:53:12,989 cosas concretas, pero no 483 00:53:12,989 --> 00:53:15,769 va a ser un... Escríbeme el 484 00:53:15,769 --> 00:53:17,130 script completo de 485 00:53:17,130 --> 00:53:19,809 cómo hacer que con un RigidBody 486 00:53:19,809 --> 00:53:21,329 aplicando fuerzas se mueva 487 00:53:21,329 --> 00:53:23,849 una pelota. No va a ser algo 488 00:53:23,849 --> 00:53:25,590 tan complejo, sino cosas concretas. 489 00:53:26,230 --> 00:53:26,889 Eso sí puede haber. 490 00:53:27,550 --> 00:53:28,949 No sé si te resultó la verdad. 491 00:53:29,650 --> 00:53:30,369 Sí, sí, perfecto. 492 00:53:31,969 --> 00:53:48,610 Pues eso, de análisis de un error y ver cómo se soluciona, también puede haber alguna pregunta de desarrollo o alguna pregunta de tipo test. También puede haber un código mal escrito y decir, oye, ¿por qué esto da error? Da ese error. Y bueno, pues hay opciones y tengáis que escoger o el art de desarrollo, escribirlo. 493 00:53:49,210 --> 00:53:52,730 Importante, esto se dijo y aparecen estas instrucciones. 494 00:53:53,929 --> 00:53:58,449 La segunda parte, lo que se llama ejercicio 2, que son las preguntas que no son de tipo test 495 00:53:58,449 --> 00:54:03,170 y que valen tres puntos en total, el cómputo total de esa parte, 496 00:54:03,789 --> 00:54:07,909 para poder aprobar el examen, aunque el test esté perfecto, tenéis que sacar un mínimo de un punto. 497 00:54:09,110 --> 00:54:15,050 Y esto lo digo porque en otras ocasiones hacéis el test que, aunque resta, 498 00:54:15,050 --> 00:54:30,630 No deja a veces de ser un poco descartar, evidentemente, por eso suma nota y por eso está, pero en estas preguntas muchas veces las dejabais en blanco. Y a mí estas preguntas me parecen esenciales, porque es donde se ve que de verdad estáis aplicando lo aprendido, ¿vale? 499 00:54:30,630 --> 00:54:34,710 estas no restan como tal 500 00:54:34,710 --> 00:54:36,929 es decir, si esta pregunta vale un punto 501 00:54:36,929 --> 00:54:38,489 ¿vale? máximo, pues hombre 502 00:54:38,489 --> 00:54:40,250 si no decís nada correcto no va a sumar 503 00:54:40,250 --> 00:54:42,090 pero no restan como las de tipo test 504 00:54:42,090 --> 00:54:43,489 entonces, queremos 505 00:54:43,489 --> 00:54:46,110 es decir, hemos puesto este tipo de preguntas 506 00:54:46,110 --> 00:54:47,250 porque queremos ver primero 507 00:54:47,250 --> 00:54:49,610 cómo escribís, si entendéis 508 00:54:49,610 --> 00:54:52,170 cómo os expresáis y si de verdad habéis asimilado 509 00:54:52,170 --> 00:54:52,929 los conceptos 510 00:54:52,929 --> 00:54:54,929 escribiéndolo vosotros 511 00:54:54,929 --> 00:54:57,610 si lo dejáis en blanco, no vais a aprobar el SAT 512 00:54:57,610 --> 00:54:59,809 entonces, siempre, vamos 513 00:54:59,809 --> 00:55:14,449 Me extraña que el que haya seguido el curso no sepa decir nada de estas líneas, ¿vale? Pues intentad, evidentemente con criterio, intentando hablar de lo que es la respuesta, ¿vale? Pero aún así no la dejéis en blanco e intentad desarrollar un poco qué es cada cosa. 514 00:55:14,449 --> 00:55:16,869 si os vais por los cerros de V, aunque habléis del animator 515 00:55:16,869 --> 00:55:18,409 no tiene nada que ver con lo que se os pregunta 516 00:55:18,409 --> 00:55:20,570 probablemente no puntúe nada 517 00:55:20,570 --> 00:55:22,590 pero lo que os quiero transmitir es 518 00:55:22,590 --> 00:55:24,710 que es preferible 519 00:55:24,710 --> 00:55:26,690 que escribáis intentando 520 00:55:26,690 --> 00:55:28,210 el sentido, que a lo mejor 521 00:55:28,210 --> 00:55:30,769 no sabéis que es el getComponent, pero sí que 522 00:55:30,769 --> 00:55:32,550 este anim viene de que lo hemos declarado 523 00:55:32,550 --> 00:55:34,190 como variable global en la clase 524 00:55:34,190 --> 00:55:36,650 bueno, no vais a tener la parte 525 00:55:36,650 --> 00:55:38,809 correspondiente, es decir, toda la nota 526 00:55:38,809 --> 00:55:40,829 pero algo sí se puede valorar 527 00:55:40,829 --> 00:55:42,469 igual que en las que haya 528 00:55:42,469 --> 00:55:44,429 a lo mejor hay alguna teoría también de desarrollo 529 00:55:44,429 --> 00:55:46,369 por ejemplo, explícame 530 00:55:46,369 --> 00:55:48,210 qué es un código QR y para qué se usa 531 00:55:48,210 --> 00:55:50,610 y dos ejemplos, si no escribís nada 532 00:55:50,610 --> 00:55:52,389 es cero, escribid 533 00:55:52,389 --> 00:55:54,530 porque por ejemplo en esa pregunta me extraña que nadie 534 00:55:54,530 --> 00:55:55,730 sepa nada de un QR 535 00:55:55,730 --> 00:55:58,090 evidentemente no es solo un QR, es 536 00:55:58,090 --> 00:55:59,710 unos cuadraditos que he visto alguna vez 537 00:55:59,710 --> 00:56:02,070 hay que desarrollarlo más, pero bueno 538 00:56:02,070 --> 00:56:04,590 que de verdad 539 00:56:04,590 --> 00:56:05,989 que a veces, esto para quien 540 00:56:05,989 --> 00:56:08,329 corresponda por supuesto, que por pereza 541 00:56:08,329 --> 00:56:10,369 de escribir o no sé qué bloqueos 542 00:56:10,369 --> 00:56:12,230 a veces gente que no me ha escrito 543 00:56:12,230 --> 00:56:14,190 nada del examen, luego ha hablado y sí 544 00:56:14,190 --> 00:56:16,269 sabía algo. Y es por, como, no sé si es 545 00:56:16,269 --> 00:56:18,130 por pereza, no sé si es por 546 00:56:18,130 --> 00:56:19,710 vergüenza, no lo sé. 547 00:56:20,110 --> 00:56:22,150 No la dejéis en blanco si tenéis algo que 548 00:56:22,150 --> 00:56:24,349 contar sobre ello, ¿vale? Porque ya os digo, 549 00:56:24,469 --> 00:56:24,969 si en estos 550 00:56:24,969 --> 00:56:28,289 total de tres puntos no se saca un uno, 551 00:56:29,130 --> 00:56:30,389 no se aprueba el examen. 552 00:56:30,650 --> 00:56:31,730 ¿Vale? Pues son preguntas 553 00:56:31,730 --> 00:56:34,070 que dan fe, que consideramos, 554 00:56:34,150 --> 00:56:36,449 o considero yo en este caso, que mezclan 555 00:56:36,449 --> 00:56:38,250 un poco todo el temario 556 00:56:38,250 --> 00:56:40,309 para tener una perspectiva de que entendéis. 557 00:56:41,289 --> 00:56:42,210 Bueno, pues que 558 00:56:42,210 --> 00:56:50,150 Que se cumple un poco lo que se busca. No se busca la perfección, pero al menos un 1 de 3 es un 3,33. Pues un mínimo tiene que haber, ¿vale? 559 00:56:50,250 --> 00:56:59,570 Luego, aparte de, por supuesto, lo que sume, que aquí, atención, que sí que las respuestas incorrectas en el tipo test restan un cuarto de lo que vale cada pregunta, ¿vale? 560 00:56:59,570 --> 00:57:09,150 Eso es para que no se convierta esto en probar, ¿vale? En una suerte de lotería. Bueno, pues por eso ponemos una pequeña penalización en las que no sean correctas. 561 00:57:09,150 --> 00:57:11,289 correctas. Sí, no sé si hay dudas con esto 562 00:57:11,289 --> 00:57:11,969 o dudas 563 00:57:11,969 --> 00:57:16,559 y si no, sigo. ¿Dudas? 564 00:57:17,199 --> 00:57:18,920 Ya os digo, pregunta de este estilo 565 00:57:18,920 --> 00:57:20,719 con otro código, evidentemente, y que 566 00:57:20,719 --> 00:57:22,920 no sean exactamente los mismos conceptos 567 00:57:22,920 --> 00:57:24,360 y yo que sé 568 00:57:24,360 --> 00:57:26,920 pues que en vez del getAxis 569 00:57:26,920 --> 00:57:28,320 pues se hable del 570 00:57:28,320 --> 00:57:30,840 mouseButton o otro tipo 571 00:57:30,840 --> 00:57:32,340 de axis o por ejemplo 572 00:57:32,340 --> 00:57:33,360 que 573 00:57:33,360 --> 00:57:36,840 el setTrigger que tenemos aquí 574 00:57:36,840 --> 00:57:38,860 pues que sea esta la línea 575 00:57:38,860 --> 00:57:40,719 ¿vale? Y de lo que hablé de cómo 576 00:57:40,719 --> 00:57:43,280 se puede afectar a un parámetro de animación 577 00:57:43,280 --> 00:57:44,840 que es de tipo trigger 578 00:57:44,840 --> 00:57:46,960 y con esta línea estamos afectando 579 00:57:46,960 --> 00:57:49,059 a que el animator cambie su parámetro 580 00:57:49,059 --> 00:57:50,880 para que luego se pueda ejecutar 581 00:57:50,880 --> 00:57:52,719 una transición entre los distintos 582 00:57:52,719 --> 00:57:54,460 estados de animación del animator 583 00:57:54,460 --> 00:57:57,039 controller, vale, pues eso podría ser 584 00:57:57,039 --> 00:58:00,699 o yo que sé 585 00:58:00,699 --> 00:58:02,539 por deciros más 586 00:58:02,539 --> 00:58:04,900 cosas, pues eso puede ser una 587 00:58:04,900 --> 00:58:05,679 en el que de pronto 588 00:58:05,679 --> 00:58:09,280 esta fuerza salto aparece con una línea roja 589 00:58:09,280 --> 00:58:13,099 de error y es porque a lo mejor la variable 590 00:58:13,099 --> 00:58:15,719 ha sido declarada dentro del update 591 00:58:15,719 --> 00:58:19,000 y no es una variable global, sino que es una variable local encapsulada 592 00:58:19,000 --> 00:58:22,079 en el update. Entonces aquí daría error. Pues decir 593 00:58:22,079 --> 00:58:24,880 oye, ¿y por qué da este error y qué habría que hacer para solucionarlo? 594 00:58:25,219 --> 00:58:28,139 Pues habría que decir, claro, esa variable ha sido declarada 595 00:58:28,139 --> 00:58:31,260 como local dentro de otra 596 00:58:31,260 --> 00:58:33,719 cápsula, que no es la global, habría que 597 00:58:33,719 --> 00:58:36,659 declarar esa variable fuera de los distintos 598 00:58:36,659 --> 00:58:39,219 métodos de ejecución, por ejemplo, métodos que tengamos 599 00:58:39,219 --> 00:58:40,880 como variable global. 600 00:58:41,119 --> 00:58:44,840 Y entonces ya se podrá llamar a esa variable 601 00:58:44,840 --> 00:58:50,019 desde los distintos métodos que sean jerárquicamente inferiores. 602 00:58:50,920 --> 00:58:50,980 ¿Sí? 603 00:58:51,860 --> 00:58:54,440 O ese tipo de cosas son importantes. 604 00:58:55,340 --> 00:58:57,139 ¿O qué es una variable destroy? 605 00:58:57,239 --> 00:58:59,300 Aquí pone un destroy, destroyGameObject, 606 00:58:59,599 --> 00:59:01,119 que es el método destroy que, por ejemplo, 607 00:59:01,119 --> 00:59:07,119 en la tarea de la unidad 2 se usó para ir eliminando 608 00:59:07,679 --> 00:59:08,619 los distintos pivotes. 609 00:59:08,619 --> 00:59:27,820 Tiene una sección también en el tema. ¿Qué es Destroy? Entre paréntesis, el método Destroy. Bueno, pues un poco contar qué es lo que hace. Entiendo que son muchas cosas, pero se busca que siempre sean, no ni las más complejas posibles, sino las que se han ido viendo las tareas. 610 00:59:27,820 --> 00:59:43,500 Y bueno, que tampoco... Vamos, al menos mi intención no es ir a pillar, es que de verdad ver, pues oye, que tenéis un cierto conocimiento de... Por ejemplo, este código no es especialmente avanzado, con lo que hemos visto en los últimos temas, por ejemplo, es bastante asequible. 611 00:59:43,500 --> 01:00:00,920 Pues un poco saber, leyendo este código, qué es lo que hace cada cosa o inferirlo al menos. Esto lo digo también porque llegará un punto, ya está empezando, que cuando se programe muchas veces el código te lo dé una inteligencia artificial. 612 01:00:00,920 --> 01:00:16,179 Le digas, oye, quiero un código que lo que haga es que cuando pulse la barra espaciadora salte y que al saltar se reduzca aunque haya un parámetro del controller que se cambie y se aplica una fuerza hacia arriba y te dará este código. 613 01:00:16,400 --> 01:00:23,900 Pero claro, lo que tendrán que hacer los programadores es entender un poco ese código y decir, oye, esta línea no está bien, ¿por qué tal? Cámbiamela e interpretarla. 614 01:00:24,179 --> 01:00:28,500 Más que escribirla, interpretarla, que evidentemente luego hay que escribir porque hay que adaptarlo a nuestro proyecto. 615 01:00:28,500 --> 01:00:39,320 Pues es un poco el problema que va a surgir cuando además no somos programadores súper avanzados, pues que vamos a recurrir también a ayudas que nos da la tecnología. 616 01:00:39,320 --> 01:00:55,260 Bueno, pues esta forma digamos que es una en la que se pondría en, vamos que se aplicaría como trabajar en ese flujo de trabajo, aunque hable redundantemente. 617 01:00:55,260 --> 01:01:15,940 O por ejemplo, la línea puede ser, ¿qué tiempo de ejecución? Aquí hay una flecha y pone esta línea y pone fix update. Pues ahí habrá que decir, es un método de tiempo de ejecución que a diferencia del update que reproducirá el código, lo que haya en su interior, en cada fotograma que pueda reproducir el ordenador, lo va a hacer en periodos fijos. 618 01:01:15,940 --> 01:01:28,599 Esto, por ejemplo, se podría explicar aquí, porque aunque sea esta la línea, está dentro de este método, pues se ejecuta en el Fixed Update porque es el método de tiempo de ejecución idóneo para el motor de físicas. 619 01:01:28,599 --> 01:01:46,639 Aquí estamos usando el Reboot y el AddForce, ¿vale? Pues como se dice en el tema en varios puntos, el FixUpdate es el que tiene un tiempo de ejecución estable, es decir, nosotros señalamos qué lapso hay entre cada, digamos, llamada de ejecución de lo que hay en el interior del FixUpdate. 620 01:01:47,760 --> 01:01:58,699 Bueno, ¿vale? No sé si hay alguna duda más del simulacro o sigo con los temas. Si no, bueno, voy abriéndolo aquí por donde nos hemos quedado. 621 01:01:59,980 --> 01:02:16,699 ¿Qué tal hasta aquí? ¿Me vais? Sí, ¿no? Digo, no va a haber... Vale, perfecto. Estructura de control, pues cómo funciona un if, un else if, un else, bueno, qué cosas, las condicionales. Esto lo hemos usado durante todo el curso. 622 01:02:16,699 --> 01:02:20,179 bucles, igual, bueno, un poco entender 623 01:02:20,179 --> 01:02:21,800 que son los while, los for 624 01:02:21,800 --> 01:02:23,679 me interesan menos que las estructuras de control 625 01:02:23,679 --> 01:02:25,840 pero también, en algún momento los hemos visto 626 01:02:25,840 --> 01:02:27,320 en los temas, también podría ser 627 01:02:27,320 --> 01:02:29,639 también ponen en juego, por ejemplo, los operadores 628 01:02:29,639 --> 01:02:31,340 de incremento o decremento 629 01:02:31,340 --> 01:02:33,300 el for each, podría ser 630 01:02:33,300 --> 01:02:35,539 es menos probable que os pregunte por un for each 631 01:02:35,539 --> 01:02:37,300 que es un poco más avanzado 632 01:02:37,300 --> 01:02:39,599 pero bueno, también es parte del temario 633 01:02:39,599 --> 01:02:41,099 que es una función 634 01:02:41,099 --> 01:02:43,699 cómo se declara 635 01:02:43,699 --> 01:02:44,199 y cómo se 636 01:02:44,199 --> 01:02:46,579 luego se llaman 637 01:02:46,579 --> 01:02:52,320 dentro del código, que son los distintos parámetros y argumentos 638 01:02:52,320 --> 01:02:52,900 que pueden tener. 639 01:02:53,599 --> 01:02:55,960 Eso también hay que saber lo que es. 640 01:02:57,039 --> 01:02:59,719 El ámbito de las variables, pues importantísimo. 641 01:02:59,840 --> 01:03:01,599 Aparte de lo que os he dicho, que puede salir un error 642 01:03:01,599 --> 01:03:04,699 y que resulte que el error es porque se ha declarado 643 01:03:04,699 --> 01:03:09,659 sin ser una variable global, pues ese tipo de preguntas de ámbito, 644 01:03:09,659 --> 01:03:12,480 que es un ámbito privado, que es un ámbito público, 645 01:03:12,900 --> 01:03:16,420 para qué sirve el serialized field, que tantas veces hemos usado, 646 01:03:16,579 --> 01:03:24,440 Pues ese tipo de aspectos es muy importante. Entiendo que lo entendéis. Si tenéis dudas, me lo preguntáis. 647 01:03:24,440 --> 01:03:51,860 Pues aquí volvemos a hablar del ámbito de las variables, que son las privadas, que son las públicas, cuál es la estática, recordad que por ejemplo en la tarea 4 cuando había que guardar el nombre del jugador en las distintas escenas, pues se recurría a una variable estática que es de un nivel superior en el sentido de que guarda en todo momento durante la ejecución del juego el resultado de una variable 648 01:03:51,860 --> 01:04:09,380 Y no la va reiniciando cuando se va cambiando de escena. Por ejemplo, que es una variable estática también puede ser importante. Bueno, esto es la estructura de cómo se declaran las clases, un poco que es la programación orientada a objetos. 649 01:04:09,380 --> 01:04:31,030 Bueno, pues este tipo de cosas. Esto es más avanzado, por ejemplo, la instanciación podría entrar y la herencia, pero bueno, no lo hemos visto mucho en el curso, aunque lo usamos siempre porque cuando tenemos una clase aquí hay una herencia con estos dos puntos, pero bueno, no lo hemos visto tampoco creo que se os pregunte de eso. 650 01:04:31,030 --> 01:04:54,510 ¿Vale? Importante, esto sí, no solo en este punto, sino en los distintos temas. Las distintas librerías que hay que incorporar según lo que vayamos a usar. Por ejemplo, recordad que si vamos a recurrir a un slider o a un text, ¿vale? Si yo no he añadido esta línea, da error, ¿vale? Hay que ir añadiendo librerías según, por ejemplo, en audio sucede lo mismo. 651 01:04:54,510 --> 01:05:07,510 Pues en cada tema ha habido, por ejemplo, si es cinemachine hay que usar un using cinemachine. Si se usan elementos de user interface, como esta DOI, como este slider, si recordáis del tema 4, pues hay que tener esta línea. 652 01:05:07,510 --> 01:05:34,570 Es muy fácil que salga una pregunta en la que salga esto y diga por qué este error. Y sea porque se está declarando una variable de tipo slider, que es uno de los componentes de User Interface, y hasta que no se añada una línea que aumente las funcionalidades o que añada esas funcionalidades mediante una librería, como en este caso, pues el código no va a saber a qué se refiere. 653 01:05:34,570 --> 01:05:45,429 No existe como tipo de variable, ¿vale? Eso, el serializeField también es importante que es y que no es lo mismo privado que público que serializeField. 654 01:05:45,869 --> 01:05:55,230 Que el serializeField, independientemente de que sea público o privado, perdón, que estoy aquí buscando el tema, ¿vale? Independientemente de que sea público o privado, ¿vale? 655 01:05:55,230 --> 01:06:15,070 Se puede hacer serialize fill y el serialize fill es para que aparezca en el editor, ¿vale? Pues como por ejemplo en este código, ¿vale? Para que aparezca aquí. Si la variable es pública también va a aparecer aquí, pero público y privado se refieren a que se pueda acceder y modificar ese código desde otras clases o otros códigos, ¿vale? 656 01:06:15,070 --> 01:06:29,769 Pero puede ser perfectamente privada y ser serialized field para poder nosotros manipular o incorporar assets en estos campos, pero que sea privada y no se pueda acceder a esa variable desde otras clases o desde otros scripts. 657 01:06:29,769 --> 01:06:53,630 ¿Vale? Entiendo que esto está claro, también lo hemos visto en otras tutorías, si no me equivoco, ¿vale? Y cómo se usa. Entonces, bueno, entiendo que de este tema cero, pues un poco es básico, sé que he dicho prácticamente todo es importante, pero como es de los esenciales y transversales, pues es importante conocerlo. 658 01:06:53,630 --> 01:06:57,769 Va a haber preguntas de este tema, seguro. 659 01:06:58,989 --> 01:07:00,750 Vale, vamos con el tema 1. 660 01:07:00,829 --> 01:07:06,469 El tema 1, como tal, puede haber alguna pregunta en concreto de qué es 661 01:07:06,469 --> 01:07:11,429 o cuáles son los distintos motores de videojuegos en el juego. 662 01:07:13,590 --> 01:07:16,730 Yo qué sé, son preguntas que si habéis usado el software, 663 01:07:17,110 --> 01:07:20,289 pues más o menos deberíais tener claras. 664 01:07:20,289 --> 01:07:22,369 pues yo que sé, cuáles son las primitivas 665 01:07:22,369 --> 01:07:24,690 que distintos game objects 666 01:07:24,690 --> 01:07:26,809 se pueden crear, que son los prefabs 667 01:07:26,809 --> 01:07:28,590 importante, pues este iconito azul 668 01:07:28,590 --> 01:07:30,170 es un prefab, que es un prefab 669 01:07:30,170 --> 01:07:31,510 eso es muy importante 670 01:07:31,510 --> 01:07:34,210 las jerarquías 671 01:07:34,210 --> 01:07:35,869 bueno, pues que es un componente 672 01:07:35,869 --> 01:07:37,969 lo acabamos de ver, que son las jerarquías 673 01:07:37,969 --> 01:07:39,389 que son las tags y las layers 674 01:07:39,389 --> 01:07:44,030 bueno, pues sobre todo 675 01:07:44,030 --> 01:07:45,409 un poco eso 676 01:07:45,409 --> 01:07:48,210 que son los 677 01:07:48,210 --> 01:07:49,829 módulos, pues lo que acabamos de hablar 678 01:07:49,829 --> 01:07:52,349 de los módulos referidos a los builds 679 01:07:52,349 --> 01:07:54,329 pues si queremos exportar 680 01:07:54,329 --> 01:07:55,630 para Android 681 01:07:55,630 --> 01:07:58,110 en el Unity Hub tendremos que tener 682 01:07:58,110 --> 01:08:00,429 el módulo 683 01:08:00,429 --> 01:08:02,369 de Android instalado 684 01:08:02,369 --> 01:08:03,190 del SDK 685 01:08:03,190 --> 01:08:06,110 de los distintos 686 01:08:06,110 --> 01:08:08,130 módulos de Android 687 01:08:08,130 --> 01:08:09,730 bueno, pues saber que eso existe 688 01:08:09,730 --> 01:08:11,750 y se haría a través de la Unity Hub 689 01:08:11,750 --> 01:08:16,130 por ejemplo, las jerarquías 690 01:08:16,130 --> 01:08:17,750 pues esta jerarquía, si muevo 691 01:08:17,750 --> 01:08:18,489 hijo2 692 01:08:18,489 --> 01:08:20,729 ¿qué se mueve con hijo 2? 693 01:08:20,810 --> 01:08:22,149 el nieto, el padre 694 01:08:22,149 --> 01:08:24,829 evidentemente por jerarquía pues se movería el nieto 695 01:08:24,829 --> 01:08:26,369 que es el que es hijo 696 01:08:26,369 --> 01:08:28,289 de hijo 2 697 01:08:28,289 --> 01:08:30,529 hijo 1 no se movería, bueno pues a ver un poco 698 01:08:30,529 --> 01:08:32,670 la relación de jerarquía, que son similares 699 01:08:32,670 --> 01:08:34,310 en realidad a las de otros softwares 700 01:08:34,310 --> 01:08:36,670 de 3D, pero también puede haber preguntas 701 01:08:36,670 --> 01:08:37,930 de ese estilo 702 01:08:37,930 --> 01:08:40,569 ¿cómo se añade un script y qué estructura 703 01:08:40,569 --> 01:08:41,409 tiene, etcétera? 704 01:08:42,289 --> 01:08:43,729 pues evidentemente puede entrar 705 01:08:43,729 --> 01:08:46,289 ¿vale? porque es como básico 706 01:08:46,289 --> 01:08:48,130 sí, como tal 707 01:08:48,130 --> 01:08:50,550 estudiárselo, pues se puede estudiar, por supuesto 708 01:08:50,550 --> 01:08:52,890 los tiempos de ejecución, el start, el update 709 01:08:52,890 --> 01:08:54,270 estos que tenemos aquí 710 01:08:54,270 --> 01:08:56,590 que en este primer tema se ponía así un poco 711 01:08:56,590 --> 01:08:58,470 en resumen, pero luego se han ido 712 01:08:58,470 --> 01:09:00,510 desarrollando en siguientes temas, que es el 713 01:09:00,510 --> 01:09:02,869 fix update, que es el awake 714 01:09:02,869 --> 01:09:04,289 que ya hablamos 715 01:09:04,289 --> 01:09:06,489 alguna vez, por supuesto que son el start 716 01:09:06,489 --> 01:09:08,229 el update, eso es importante 717 01:09:08,229 --> 01:09:10,810 la consola, como se llama la consola 718 01:09:10,810 --> 01:09:12,569 con este print o el debug log 719 01:09:12,569 --> 01:09:14,529 que tenemos aquí, pues esto 720 01:09:14,529 --> 01:09:16,449 es importante también, pero bueno 721 01:09:16,449 --> 01:09:17,930 son como cosas básicas 722 01:09:17,930 --> 01:09:37,710 También, pues, a lo mejor pedir, si en debug.log pongo saludo y es un string, ¿cómo se va a ver? Vale, pues, se puede poner un pantallazo de una consola y decir, vale, ¿cómo se declararía esa línea? Sería debug.log, punto, vale, y cuatro opciones en el test o pedirlo en el at de desarrollo. 723 01:09:38,529 --> 01:09:57,470 Variables públicas. Pues aquí se habla del serialized field también. Entiendo. Aquí lo tenemos. Pues un poco de lo mismo. Aquí está aplicado a Unity. El primer tema es un poco más general para distintos códigos, pero para distintos lenguajes que pueden tener cosas en común. Pero aquí ya es más aterrizado el uso en Unity. Bueno, pues esto hay que saberlo. 724 01:09:57,470 --> 01:10:15,010 Las convenciones de escritura, si se os pidiera esa línea que he dicho que se puede escribir o alguna línea, pues hay que intentar, lo que se espera es que sepáis escribirlo con la sintaxis correcta, respetando un poco las mayúsculas, el Pascal case, el camel case, pues como hemos estado haciendo durante todo el curso. 725 01:10:15,010 --> 01:10:18,510 instanciar, bueno pues es como el primer método 726 01:10:18,510 --> 01:10:20,510 que usamos, pues como se usan los métodos 727 01:10:20,510 --> 01:10:24,529 y los distintos argumentos o parámetros 728 01:10:24,529 --> 01:10:26,289 que se pueden declarar 729 01:10:26,289 --> 01:10:30,050 pues también, en un método también es importante 730 01:10:30,050 --> 01:10:35,470 bueno, aquí hay distintos ejemplos 731 01:10:35,470 --> 01:10:38,170 pues sí, principalmente eso 732 01:10:38,170 --> 01:10:41,189 package manager, pues bueno, se puede preguntar alguna cosa 733 01:10:41,189 --> 01:10:43,270 de los project settings, etcétera 734 01:10:43,270 --> 01:10:47,670 Sí, esto si lo habéis estado usando, pues más o menos, os va a sonar todo. 735 01:10:49,189 --> 01:10:53,630 Pero bueno, no es tanto aprenderse qué es cada cosa con la descripción, ¿vale? 736 01:10:55,329 --> 01:10:58,189 Porque además este tipo de preguntas serían más de tipo test. 737 01:10:58,369 --> 01:11:00,449 A lo mejor se pregunta, ¿qué es una tag? 738 01:11:00,789 --> 01:11:04,069 Y hay cuatro opciones, pues si sabéis lo que es, vais a saber responderla. 739 01:11:04,430 --> 01:11:07,390 Las tags, de esto también hemos hablado en siguientes temas. 740 01:11:07,390 --> 01:11:12,510 Entonces, bueno, las de textor, pues esto no se va a preguntar nada en principio. 741 01:11:13,270 --> 01:11:15,250 Vamos al tema 2 742 01:11:15,250 --> 01:11:23,229 Voy a ir rápido, ¿vale? 743 01:11:23,510 --> 01:11:25,890 Pero lo dicho, si hay dudas concretas 744 01:11:25,890 --> 01:11:27,630 ¿Qué son los vectores? 745 01:11:27,850 --> 01:11:29,670 ¿Para qué sirven? ¿Cómo se operan con ellos? 746 01:11:29,770 --> 01:11:31,010 Pues eso, que se pueden sumar 747 01:11:31,010 --> 01:11:34,189 Las tres posiciones que tiene un vector 3 748 01:11:34,189 --> 01:11:35,750 Se pueden sumar entre ellas 749 01:11:35,750 --> 01:11:36,930 Esto ya lo vimos también 750 01:11:36,930 --> 01:11:41,069 ¿Qué resultado daría sumar el vector 3, 5, 4, 7 751 01:11:41,069 --> 01:11:44,609 Con el vector 3, 3, 2, 4? 752 01:11:44,810 --> 01:11:46,449 Que si se hace un devalut de la suma 753 01:11:46,449 --> 01:11:47,630 Que saldría en consola 754 01:11:47,630 --> 01:12:11,689 Eso podría ser una de las preguntas. Muy importante, y seguro que hay alguna pregunta que hable de esto, los métodos simplificados de escribir vectores 3. Por ejemplo, este vector 3, 0, el app, pues cómo sería ese... Si queremos escribir vector 3, 0, 1, 0, pues se puede poner con este, entre comillas, atajo. 755 01:12:11,689 --> 01:12:35,479 Pues esos atajos, muy probable que alguna preguntilla pueda haber. Posicionar y controlar objetos, pues bueno, sí puede haber preguntas de qué es el transform translate, cómo se puede capturar un transform mediante un serialize fill, que es básicamente declarar esa variable y se arrastra al editor, como tenemos aquí. 756 01:12:35,479 --> 01:12:46,079 Pues con eso ya podemos llamar, con esa variable, a las propiedades, como la posición, rotación o escala del transform de ese objeto. 757 01:12:47,079 --> 01:12:48,840 La escala, bueno, pues sí. 758 01:12:52,039 --> 01:12:54,479 ¿Puede haber alguna pregunta relacionada con rotación? 759 01:12:55,000 --> 01:12:57,979 Bueno, tampoco creo que haya mucho de esto, pero puede haber alguna pregunta. 760 01:12:58,899 --> 01:12:59,539 ¿Crear movimiento? 761 01:12:59,539 --> 01:13:24,220 Pues es que esto lo tenemos que saber, ya de bastante comienzo del curso, pues un poco cómo funciona asignar posiciones y con el método transform y rotate, que tenemos aquí, translate y el rotate, pues cómo si lo incorporamos en un update, pues se va a ir haciendo un desplazamiento fotograma a fotograma o una rotación fotograma a fotograma. 762 01:13:24,220 --> 01:13:44,800 El look at podría entrar, tampoco es lo más esencial, pero podría entrar. El tiempo, importante, sí. Saber qué es el time scale, si queremos, por ejemplo, ejecutar, si queremos parar la velocidad de reproducción o queremos que vaya al doble de rápido, pues esto es importante. 763 01:13:44,800 --> 01:13:47,199 estos conceptos son importantes 764 01:13:47,199 --> 01:13:49,180 ¿vale? por supuesto 765 01:13:49,180 --> 01:13:50,520 que es el time delta time 766 01:13:50,520 --> 01:13:53,159 hemos hablado en más de una ocasión 767 01:13:53,159 --> 01:13:54,640 y es importante saber 768 01:13:54,640 --> 01:13:56,199 por qué se usa en un update 769 01:13:56,199 --> 01:13:58,500 ¿por qué? para compensar 770 01:13:58,500 --> 01:14:00,739 esa velocidad de ejecución y que sea estable 771 01:14:00,739 --> 01:14:02,539 porque compensa pues eso 772 01:14:02,539 --> 01:14:04,739 las variaciones de rendimiento que puede haber 773 01:14:04,739 --> 01:14:06,640 entre un dispositivo y otro para que en todo 774 01:14:06,640 --> 01:14:09,119 se reproduzca de manera equivalente 775 01:14:09,119 --> 01:14:10,619 ¿sí? esto también 776 01:14:10,619 --> 01:14:11,619 lo hemos visto 777 01:14:11,619 --> 01:14:14,560 otro uso del time delta time pues para contadores 778 01:14:14,560 --> 01:14:23,680 como lo que vamos haciendo es sumar, este operador también importante, se pueden ir sumando los lapsos de tiempo, pues se puede usar, por ejemplo, para hacer contadores 779 01:14:23,680 --> 01:14:31,140 y que esos contadores incluso sirvan para ejecutar luego condiciones con estructuras de control. 780 01:14:31,779 --> 01:14:41,420 Las corrutinas, igual, saber cómo se declaran con esa función enumerator y cómo funcionan, ese wait for seconds, ese yield return, 781 01:14:41,420 --> 01:14:46,239 y wait for seconds y poner el número de tiempo que hay, pues importante. 782 01:14:47,199 --> 01:14:49,880 Entiendo que se entiende, pero hay unos tiempos de ejecución, 783 01:14:50,039 --> 01:14:53,800 pero nosotros podemos abrir otras vías, otros tiempos de ejecución paralelos, 784 01:14:54,060 --> 01:14:58,039 por eso se llama corrutina, porque a la rutina, digamos, de ejecución habitual 785 01:14:58,039 --> 01:15:02,420 se pueden añadir otras, se abren otros, con estos start corrutins, 786 01:15:02,800 --> 01:15:06,100 se van abriendo otras líneas de ejecución, a través de este método, 787 01:15:06,100 --> 01:15:09,600 esta función de un numerator, como las declaremos, que además nos permiten 788 01:15:09,600 --> 01:15:15,840 que no sean fotograma a fotograma, por ejemplo, sino que podamos establecer lapsos de ejecución, ¿vale? 789 01:15:15,979 --> 01:15:22,960 Pues este apartado, alguna pregunta también puede haber. Vamos, la va a haber, os lo adelanto. 790 01:15:24,500 --> 01:15:33,140 Sobre el nuevo Input System, ¿no va a haber preguntas? A lo mejor existe alguna otra forma de capturar que no sea la clase Input. 791 01:15:33,140 --> 01:15:53,600 Sí, bueno, no creo que haya preguntas, pero de la clase input y estos métodos que tenemos aquí, el GetAxis, la diferencia entre el GetKeyDown, GetKeyUp, el GetKeyAsepCast, eso va a haber preguntas, tanto en lo de desarrollo como en tipo test puede haber preguntas, segurísimo, ¿vale? Porque es básico, ¿no? 792 01:15:53,600 --> 01:16:00,060 Es lo que esto cambia, que estemos en un software modelado 3D con uno de videojuegos con interacciones. 793 01:16:00,479 --> 01:16:06,979 Pues estas interacciones se capturan con este, al menos como lo hemos estudiado nosotros en este módulo, 794 01:16:07,220 --> 01:16:10,340 ya sabemos eso, que está el Input System, puede haber plugins más, 795 01:16:10,460 --> 01:16:15,659 pero la forma básica y esencial es mediante la clase Input, ¿vale? 796 01:16:15,659 --> 01:16:17,979 Que es la tradicional y la que se sigue usando, vaya. 797 01:16:18,520 --> 01:16:20,180 El GetAxis es esencial, saber por qué. 798 01:16:20,840 --> 01:16:23,500 Esto también en alguna tutoría lo hemos hablado en detalle. 799 01:16:24,539 --> 01:16:49,979 Movimiento asociado. ¿Puede haber alguna pregunta? Puede. No creo que haya mucho. También es verdad que en las tareas, por ejemplo, en el smooth down para las cámaras, también es algo que se ha hablado en alguna ocasión. Bueno, no es lo más importante, pero como siempre, no os digo que no la vaya a ver, pero no sería lo que más énfasis le pondría. Pero evidentemente, si trabajáis con Unity, son métodos muy recurrentes y que hay que conocer. 800 01:16:52,659 --> 01:16:53,500 Vale, tema 3. 801 01:16:54,600 --> 01:16:56,159 ¿Alguna duda mientras lo voy abriendo? 802 01:16:56,560 --> 01:16:58,500 Digo que yo sigo, pero que me... 803 01:16:58,500 --> 01:17:00,479 Mira, a ver, no había leído en el chat, perdón. 804 01:17:01,000 --> 01:17:01,560 Una duda, Daniel. 805 01:17:01,640 --> 01:17:05,500 Entiendo que en el ejemplo número 3 habría que indicar que se llama el método saltar, ¿no? 806 01:17:05,579 --> 01:17:06,579 Así estaría bien contestado. 807 01:17:07,779 --> 01:17:09,579 ¿Te he contestado a esa duda o no? 808 01:17:09,960 --> 01:17:12,399 Porque igual le he seguido hablando al examen tipo. 809 01:17:12,579 --> 01:17:14,119 ¿Sigue habiendo la duda o la contesté? 810 01:17:15,659 --> 01:17:18,920 Porque sí, creo que sí que lo dije. 811 01:17:19,920 --> 01:17:20,939 Vale, voy para atrás. 812 01:17:21,739 --> 01:17:43,579 Lo vuelvo a abrir. Perdona, que es que si no me interrumpís yo sigo hablando y os leo de Pascua a Sarramos. Vale, y aquí voy a ir para tener el tema 3. Vale. Me hablas de la línea 3 del ejemplo. Disculpa. Vale, dice que se ha incorporado tarde. Vale. 813 01:17:43,579 --> 01:17:56,739 En la línea 3, esta, aquí, ¿no? Saltar. A ver, espera que amplío. La línea 3, que sería esta llamada al método saltar. A ver, un segundo. Entiendo que en el ejemplo 3 habría que indicar que se llama al método saltar. 814 01:17:56,739 --> 01:18:14,039 Sí, aquí habría que decir que, aunque sea esta línea, se va a pedir el contexto. No solo saltar es un método que he declarado, llamado saltar, no. Habrá que decir que este método se va a ejecutar si pulsamos la tecla espacio, ¿vale? 815 01:18:14,039 --> 01:18:43,119 Y que además se encuentra dentro del update, hay que contextualizar todo lo posible y luego saltar lo que va a derivar es en un método que lo que hace es añadir una fuerza hacia arriba, ¿vale? Multiplicada por una fuerza de salto que es esta variable in que hemos declarado antes y aparte va a modificar un parámetro de tipo trigger que es el que se usa para acciones puntuales, estos triggers, ¿vale? Va a cambiar ese parámetro llamado jump. 816 01:18:44,039 --> 01:18:46,340 Es decir, no solo va a decir saltar y ya está. 817 01:18:46,760 --> 01:18:50,880 Evidentemente hay que decir, hay un método que hemos creado nosotros, 818 01:18:51,060 --> 01:18:54,760 porque saltar no viene por defecto y por eso aparece con este amarillito, ¿vale? 819 01:18:55,119 --> 01:19:02,039 De tipo void, por eso no se va a solicitar que retorne un resultado, ¿vale? 820 01:19:02,100 --> 01:19:04,579 Sino que va a ejecutar este código de arriba a abajo y ya está. 821 01:19:05,279 --> 01:19:06,939 Pero se ejecuta cuando se da el espacio. 822 01:19:07,659 --> 01:19:12,680 Todo lo que contextualicéis, más correcta será la duda, la respuesta. 823 01:19:12,680 --> 01:19:31,100 Se trata de decir, esta línea está aquí, ¿por qué está aquí y qué hace? Vamos, lo que va a poner, el enunciado igual cambia, pero la respuesta no se debe ceñir a la mera indicación de qué hace la línea, sino por qué lo hace en relación con el resto de líneas. Se refiere a eso. 824 01:19:31,100 --> 01:19:33,840 Más dudas de esto 825 01:19:33,840 --> 01:19:36,319 La de desarrollo va de que 826 01:19:36,319 --> 01:19:37,960 Desarrolléis y veamos 827 01:19:37,960 --> 01:19:40,760 Vea vuestra capacidad de desarrollo 828 01:19:40,760 --> 01:19:42,279 ¿Vale? No solo de decir 829 01:19:42,279 --> 01:19:43,439 A, C, D 830 01:19:43,439 --> 01:19:47,140 Es que casi eso es mejor 831 01:19:47,140 --> 01:19:48,640 Explicar el código entero, ¿no? 832 01:19:48,760 --> 01:19:49,680 Que línea por línea 833 01:19:49,680 --> 01:19:53,859 Es que si tienes que explicar todo el código 834 01:19:53,859 --> 01:19:55,100 Te tiran muchísimo tiempo 835 01:19:55,100 --> 01:19:57,220 Entonces es centrarse en tres 836 01:19:57,220 --> 01:19:58,760 Bueno, cuatro en este caso 837 01:19:58,760 --> 01:20:00,199 En cuatro puntos concretos 838 01:20:00,199 --> 01:20:01,859 Bueno, pero por ejemplo ese código 839 01:20:01,859 --> 01:20:03,760 yo creo que, a ver, no sé, a lo mejor 840 01:20:03,760 --> 01:20:05,800 el código que pones es súper largo, pero un código 841 01:20:05,800 --> 01:20:09,270 así, ¿no? Porque es que 842 01:20:09,270 --> 01:20:11,409 si, por ejemplo, yo quiero decir, ¿qué hace saltar? 843 01:20:12,350 --> 01:20:13,350 Pues sí, tengo que explicar 844 01:20:13,350 --> 01:20:15,369 qué hace el update, qué hace 845 01:20:15,369 --> 01:20:17,069 luego la función saltar. Pues lo estoy 846 01:20:17,069 --> 01:20:18,569 explicando ya casi todo. Claro. 847 01:20:18,989 --> 01:20:20,890 Pero la pregunta es, ¿qué hace esa línea? 848 01:20:21,590 --> 01:20:22,829 Hay que responder a esa pregunta. 849 01:20:23,329 --> 01:20:25,069 Digo, sí, bueno, a ver, 850 01:20:25,250 --> 01:20:27,329 os estoy diciendo ideas, que el examen 851 01:20:27,329 --> 01:20:29,229 luego será el que será. Igual hay uno 852 01:20:29,229 --> 01:20:30,970 de explícame todo el código de arriba abajo, 853 01:20:30,970 --> 01:20:33,069 pero esta pregunta en concreto lo que te está pidiendo 854 01:20:33,069 --> 01:20:35,090 es que esas cuatro líneas las expliques 855 01:20:35,090 --> 01:20:36,510 porque igual 856 01:20:36,510 --> 01:20:38,829 en estas líneas 857 01:20:38,829 --> 01:20:40,529 fuerza de desplazamiento 858 01:20:40,529 --> 01:20:43,010 igual alguno de estos elementos no está en juego 859 01:20:43,010 --> 01:20:44,470 pues ya está, ese no hay que 860 01:20:44,470 --> 01:20:46,789 por ejemplo, estas líneas de arriba 861 01:20:46,789 --> 01:20:48,710 hombre, siempre se puede hablar de ellas 862 01:20:48,710 --> 01:20:50,810 pero en este caso al menos concreto 863 01:20:50,810 --> 01:20:52,829 ninguna de las líneas dice que me expliques 864 01:20:52,829 --> 01:20:54,909 qué son las librerías, si hubiera puesto 865 01:20:54,909 --> 01:20:56,810 un slider como he dicho antes, que usa 866 01:20:56,810 --> 01:20:58,649 un unityengine.ui 867 01:20:58,649 --> 01:21:00,869 que es otro, pues ahí sí porque es relevante 868 01:21:00,869 --> 01:21:15,729 Pero esto aquí no es relevante. Y esto casi tampoco, ¿vale? Esta línea de declaración. Pues si quieres decir aquí, en el método de estar de la clase, si te quieres remontar mucho, puedes, pero aquí habla de contextualizar y hablar de estas cuatro líneas. 869 01:21:15,729 --> 01:21:17,189 ok 870 01:21:17,189 --> 01:21:19,649 la pregunta es esa 871 01:21:19,649 --> 01:21:23,050 no responded a la pregunta 872 01:21:23,050 --> 01:21:25,390 más cosas 873 01:21:25,390 --> 01:21:29,319 vale 874 01:21:29,319 --> 01:21:31,220 vamos con el tema 3, físicas 875 01:21:31,220 --> 01:21:33,579 bueno que además 876 01:21:33,579 --> 01:21:35,279 en la última unidad hice otro repaso 877 01:21:35,279 --> 01:21:36,260 ya lo vimos 878 01:21:36,260 --> 01:21:39,680 cuando vimos el carácter controller de que es kinemático 879 01:21:39,680 --> 01:21:41,699 la forma de moverse kinemática 880 01:21:41,699 --> 01:21:43,020 la forma de moverse 881 01:21:43,020 --> 01:21:45,359 en base a físicas 882 01:21:45,359 --> 01:21:47,460 y también la que añadía el carácter controller 883 01:21:47,460 --> 01:21:50,560 incluso puede haber más, pero son las tres que hemos visto 884 01:21:50,560 --> 01:21:53,279 pues que es el RigidBody 885 01:21:53,279 --> 01:21:55,460 esencial, para qué sirve 886 01:21:55,460 --> 01:21:57,979 estas propiedades, también es importante conocerlas 887 01:21:57,979 --> 01:21:59,579 que es la masa, que son el drag 888 01:21:59,579 --> 01:22:00,760 por supuesto 889 01:22:00,760 --> 01:22:03,760 pues eso 890 01:22:03,760 --> 01:22:05,619 saber que el RigidBody lo que hace es 891 01:22:05,619 --> 01:22:07,539 permitir por un lado 892 01:22:07,539 --> 01:22:09,699 que ese GameObject 893 01:22:09,699 --> 01:22:11,659 se vea sometido a las leyes físicas 894 01:22:11,659 --> 01:22:12,819 del motor de render 895 01:22:12,819 --> 01:22:15,640 por ejemplo puede, evidentemente 896 01:22:15,640 --> 01:22:17,699 luego dependerá de cómo lo vayamos configurando 897 01:22:17,699 --> 01:22:19,600 si esto está marcado o no, pero puede tener 898 01:22:19,600 --> 01:22:21,100 gravedad en base a físicas 899 01:22:21,100 --> 01:22:23,479 podemos nosotros, sin Rigidbody 900 01:22:23,479 --> 01:22:25,359 no podemos aplicar fuerzas 901 01:22:25,359 --> 01:22:27,359 podemos hacer kinemáticas 902 01:22:27,359 --> 01:22:29,520 es decir, mover el transform, pues la posición 903 01:22:29,520 --> 01:22:31,539 es decir, vete a esta coordenada tal, pero no 904 01:22:31,539 --> 01:22:33,199 aplicar fuerzas, que es con lo que 905 01:22:33,199 --> 01:22:35,560 luego vamos a ver con el AddForce y el 906 01:22:35,560 --> 01:22:37,140 AddTorque, pero 907 01:22:37,140 --> 01:22:39,460 es importante el concepto de 908 01:22:39,460 --> 01:22:40,439 Rigidbody que es un poco 909 01:22:40,439 --> 01:22:42,119 los principales 910 01:22:42,119 --> 01:22:45,520 las principales propiedades 911 01:22:45,520 --> 01:22:46,880 que hemos visto, saber qué es. 912 01:22:47,600 --> 01:22:49,140 También el getComponent para qué sirve, 913 01:22:49,340 --> 01:22:51,260 pues es muy básico. Hay que saber para qué son 914 01:22:51,260 --> 01:22:53,640 los getComponent, que es esta forma de poder 915 01:22:53,640 --> 01:22:54,380 capturar, 916 01:22:55,560 --> 01:22:57,479 a menos que lo hagamos con un serializeField, 917 01:22:57,819 --> 01:22:59,220 que directamente lo arrastramos 918 01:22:59,220 --> 01:23:01,180 en el inspector 919 01:23:01,180 --> 01:23:03,140 de Unity. Si queremos 920 01:23:03,140 --> 01:23:05,340 capturar un elemento por código 921 01:23:05,340 --> 01:23:07,300 para que esa variable guarde algo 922 01:23:07,300 --> 01:23:09,439 en su interior, hay que usar siempre el getComponent. 923 01:23:09,899 --> 01:23:11,399 ¿No? Entiendo que esto 924 01:23:11,399 --> 01:23:13,260 ya lo hemos visto más de una vez 925 01:23:13,260 --> 01:23:14,500 y es importante. 926 01:23:15,520 --> 01:23:28,220 Pues eso, hablamos un poco de serialize fill otra vez, etcétera, pues eso. El add force, el add torque, pues que son un poco los métodos que tienen, pues también son importantes. 927 01:23:28,220 --> 01:23:47,039 ¿Que la física se puede cambiar? Bueno, también saberlo. Pues aquí hablamos otra vez del fix update que os he dicho, que se pueden cambiar los lapsos de tiempo, estos steps, esos time steps, para que el tiempo de ejecución lo adaptemos a la velocidad entre comillas que nosotros queramos. 928 01:23:47,039 --> 01:23:49,039 A diferencia del update 929 01:23:49,039 --> 01:23:55,359 Tiene una frecuencia distinta 930 01:23:55,359 --> 01:23:57,239 Más 931 01:23:57,239 --> 01:23:58,899 El componente 932 01:23:58,899 --> 01:24:04,699 Aquí hay una imagen 933 01:24:04,699 --> 01:24:05,760 Que no está 934 01:24:05,760 --> 01:24:07,960 No es muy relevante 935 01:24:07,960 --> 01:24:08,960 Pero no sé por qué no se ve 936 01:24:08,960 --> 01:24:13,119 Básicamente esto dice que en otras versiones de Unity 937 01:24:13,119 --> 01:24:14,899 Había un apartado dentro del RigidBody 938 01:24:14,899 --> 01:24:15,699 Al final 939 01:24:15,699 --> 01:24:18,659 dentro del Rigipodi 940 01:24:18,659 --> 01:24:20,279 que era info y que permitía ver 941 01:24:20,279 --> 01:24:22,100 la velocity, por ejemplo, que es la velocidad 942 01:24:22,100 --> 01:24:24,159 que tiene de desplazamiento, pero se la han cargado 943 01:24:24,159 --> 01:24:26,279 la versión que estamos usando 944 01:24:26,279 --> 01:24:27,840 así que no sé por qué no se ve 945 01:24:27,840 --> 01:24:29,920 como que intento, bueno 946 01:24:29,920 --> 01:24:31,720 en algún momento sí que se ha visto, pero bueno 947 01:24:31,720 --> 01:24:34,180 no es relevante para el examen 948 01:24:34,180 --> 01:24:36,399 el velocity, pues mira, aquí habla del velocity 949 01:24:36,399 --> 01:24:38,380 es importante 950 01:24:38,380 --> 01:24:40,359 bueno, saber que existe, que se puede 951 01:24:40,359 --> 01:24:41,939 aludir a ello, pues sí 952 01:24:41,939 --> 01:24:43,579 pero tampoco es lo más importante 953 01:24:43,579 --> 01:24:45,680 el actor, que sí, sí es importante 954 01:24:45,680 --> 01:25:11,979 Luego, ¿qué son los colliders? Pues esencial, las condiciones básicas, que es que para que dos objetos se puedan detectar como físicos, es decir, como que tienen límites físicos que pueden chocar, ambos tendrán que tener algún límite marcado por esos colliders, es decir, cada objeto implicado tendrá que tener un collider y al menos uno de ellos un rigid body, porque si no, no están dentro del motor de física ninguno de los dos. 955 01:25:11,979 --> 01:25:15,159 los tipos de colisionadores 956 01:25:15,159 --> 01:25:17,020 pues sí, evidentemente 957 01:25:17,020 --> 01:25:18,659 importantísimo, que es el isTrigger 958 01:25:18,659 --> 01:25:20,859 aunque se habla después, y los métodos 959 01:25:20,859 --> 01:25:23,140 pues esto hay que saberlo, los onTrigger 960 01:25:23,140 --> 01:25:24,439 los onCollisionEnter 961 01:25:24,439 --> 01:25:27,020 que es el physicsMaterial, que se habla aquí también 962 01:25:27,020 --> 01:25:28,140 importantísimo 963 01:25:28,140 --> 01:25:30,720 bueno, pues los colliders 964 01:25:30,720 --> 01:25:32,680 es como algo bastante básico, entonces 965 01:25:32,680 --> 01:25:34,699 hay que sabérselo, que son los colliders 966 01:25:34,699 --> 01:25:35,920 que sucede 967 01:25:35,920 --> 01:25:38,500 cuando uno es de tipo isTrigger 968 01:25:38,500 --> 01:25:39,380 ¿vale? 969 01:25:39,380 --> 01:25:42,100 que es básicamente lo que cambia 970 01:25:42,100 --> 01:25:44,819 que un collider se puede usar 971 01:25:44,819 --> 01:25:47,039 para detectar límites físicos 972 01:25:47,039 --> 01:25:48,279 entre objetos y no se atraviesen 973 01:25:48,279 --> 01:25:50,880 o poder en multitud 974 01:25:50,880 --> 01:25:52,680 de ocasiones, poder mediante 975 01:25:52,680 --> 01:25:54,760 un collider establecer zonas 976 01:25:54,760 --> 01:25:57,180 de nuestro escenario 977 01:25:57,180 --> 01:25:58,659 o vinculadas a un 978 01:25:58,659 --> 01:26:00,880 gain object que aunque se pueda atravesar 979 01:26:00,880 --> 01:26:02,420 pero al atravesar esos límites 980 01:26:02,420 --> 01:26:04,399 estos límites verdes por ejemplo en este 981 01:26:04,399 --> 01:26:06,000 sphere collider pues 982 01:26:06,000 --> 01:26:08,819 que pueda servir para lanzar 983 01:26:08,819 --> 01:26:14,699 acciones que es básicamente de lo que se habla aquí vale con este nuevamente esto también puede 984 01:26:14,699 --> 01:26:26,359 ser es importante lo del istrigger básicamente estos dos métodos y sus otros vale el on collision 985 01:26:26,359 --> 01:26:32,439 enter el stay y el exit que son y cómo se usan y qué diferencias hay entre ambos y que por supuesto 986 01:26:32,439 --> 01:26:37,399 es esencial para la diferencia entre que sea con un collision o que lo detecte como un trigger es 987 01:26:37,399 --> 01:26:43,640 es que esté marcada la casilla East Trigger. Eso es muy importante, muy muy importante. 988 01:26:45,640 --> 01:26:53,300 A ver, más... Distancias y Raycast. Pues qué es un Raycast y un poco cómo funciona, también es 989 01:26:53,300 --> 01:27:00,680 importante saberlo. También está el Raycast 2D, pues es importante. Como hablamos otras veces, los 990 01:27:00,680 --> 01:27:06,359 para saber más no entran, siempre ayudan a ampliar para aquellos que queráis profundizar más, ayuda 991 01:27:06,359 --> 01:27:10,140 también a contextualizar, pero el núcleo no está en los saber más 992 01:27:10,140 --> 01:27:14,220 para el examen. Que es un check sphere, que es otra forma de 993 01:27:14,220 --> 01:27:17,800 poder revisar 994 01:27:17,800 --> 01:27:21,399 si un área está siendo atravesado por otro objeto 995 01:27:21,399 --> 01:27:26,140 para, por código, detectar si algo está ocurriendo dentro de una zona 996 01:27:26,140 --> 01:27:30,180 pues sin usar un componente como un collider, se puede hacer también 997 01:27:30,180 --> 01:27:34,000 por código. Que a partir de este punto hay una esfera de tal radio en la que si hay algo 998 01:27:34,000 --> 01:27:35,939 dentro, pues me lo des 999 01:27:35,939 --> 01:27:37,819 como que sí, como un true, la condición 1000 01:27:37,819 --> 01:27:39,520 y entonces ejecute tal cosa 1001 01:27:39,520 --> 01:27:40,560 pues importante 1002 01:27:40,560 --> 01:27:43,680 que es un poco 1003 01:27:43,680 --> 01:27:44,920 la versión 1004 01:27:44,920 --> 01:27:47,239 simple del overlap sphere 1005 01:27:47,239 --> 01:27:49,619 el overlap sphere lo que permite es un poco lo mismo 1006 01:27:49,619 --> 01:27:51,699 solo que a través 1007 01:27:51,699 --> 01:27:53,159 no solo permite 1008 01:27:53,159 --> 01:27:55,720 bueno pues 1009 01:27:55,720 --> 01:27:58,020 decir si es falso o verdadero 1010 01:27:58,020 --> 01:27:59,939 que se encuentra algo dentro de esa esfera 1011 01:27:59,939 --> 01:28:01,659 sino que dentro de una esfera, caja o cápsula 1012 01:28:01,659 --> 01:28:03,739 que creemos, pues lo que haya 1013 01:28:03,739 --> 01:28:09,819 adentro se le puede aplicar a todos los objetos que hay adentro, pues que se les añada daño. 1014 01:28:09,819 --> 01:28:14,979 Esto es más avanzado, más allá del concepto de qué es, no debería entrar. 1015 01:28:16,460 --> 01:28:23,619 ¿Y qué son los materiales físicos o physics materials? Para simular las fricciones y rebotes 1016 01:28:23,619 --> 01:28:33,539 de los objetos y que se añade en el collider, dentro de cada collider, o de muchos tipos 1017 01:28:33,539 --> 01:28:35,539 de Collider tiene este apartado de material que no 1018 01:28:35,539 --> 01:28:37,539 es el material visual, como hemos 1019 01:28:37,539 --> 01:28:39,359 hablado antes, por ejemplo, el Shader Graph o 1020 01:28:39,359 --> 01:28:41,359 un material para que algo se vea azul. Aquí 1021 01:28:41,359 --> 01:28:43,300 en el Collider el material se refiere a un 1022 01:28:43,300 --> 01:28:45,180 Physics Material que permite 1023 01:28:45,180 --> 01:28:47,500 dar propiedades de fricción, 1024 01:28:47,619 --> 01:28:48,920 de bote, etc. ¿Vale? 1025 01:28:52,430 --> 01:28:56,260 Siguiente tema. Voy así, que voy 1026 01:28:56,260 --> 01:28:57,760 más rápido que así, que yendo 1027 01:28:57,760 --> 01:29:00,039 aquí. Tema 4. 1028 01:29:01,500 --> 01:29:01,699 Y 1029 01:29:01,699 --> 01:29:04,319 aquí está. Tema 4. 1030 01:29:05,579 --> 01:29:05,920 ¿Qué tal? 1031 01:29:09,500 --> 01:29:11,140 Venga, lo abro en otra pestaña que es lo suyo. 1032 01:29:11,319 --> 01:29:16,420 ¿Qué es un HAT? También puede ser una pregunta como introducción. 1033 01:29:16,899 --> 01:29:18,979 Este tema es sobre User Interface. 1034 01:29:19,399 --> 01:29:26,439 Una cosa importantísima es que hay que añadir ese namespace o esa línea que habíamos indicado antes, 1035 01:29:26,439 --> 01:29:32,779 porque si no, muchas de las variables que se pueden usar no funcionarán. 1036 01:29:33,859 --> 01:29:41,020 Gestión de escenas, que se empieza a hablar aquí y cómo se puede ir navegando entre ellas, 1037 01:29:41,020 --> 01:29:58,359 ¿Qué es el build index? ¿Para qué sirven las escenas? A lo mejor algún ejemplo como este de si tenemos, estamos en la escena 3 y ponemos este código, como tiene este getScene aplicado, ¿a qué escena se pasaría cuando se ejecute el código? 1038 01:29:58,359 --> 01:30:15,239 Pues si estuviéramos en la escena 3, en este caso pasaríamos a la 4, ¿vale? Pues hay que decir a la 4. Este tipo de preguntas también puede haber, ¿vale? Igualmente tiene su propia librería, pues a ver que si vamos a usar gestión de escenas hay que añadir este Scene Management. 1039 01:30:15,239 --> 01:30:17,699 ¿Carga sícrona y aditiva? 1040 01:30:18,920 --> 01:30:19,880 Podría entrar, pero 1041 01:30:19,880 --> 01:30:22,380 más avanzado probablemente 1042 01:30:22,380 --> 01:30:24,380 no haya preguntas de esto. Es súper interesante 1043 01:30:24,380 --> 01:30:26,159 se añade aquí para que lo 1044 01:30:26,159 --> 01:30:28,140 conozcáis, pero bueno, no creo que haya 1045 01:30:28,140 --> 01:30:30,220 preguntas referidas a esto 1046 01:30:30,220 --> 01:30:32,359 porque me 1047 01:30:32,359 --> 01:30:33,939 centraría más en lo que son las escenas 1048 01:30:33,939 --> 01:30:36,260 básicas y la gestión 1049 01:30:36,260 --> 01:30:38,220 de ellas. ¿Variables estáticas? 1050 01:30:38,359 --> 01:30:40,140 Pues un poco saber qué es, sí que podría haber 1051 01:30:40,140 --> 01:30:42,359 alguna pregunta y que se pregunte por ello 1052 01:30:42,359 --> 01:30:44,460 pues si habéis hecho por ejemplo 1053 01:30:44,460 --> 01:30:50,300 la unidad en la tarea 4 lo habéis usado y bueno que es una variable de tipo pública que tiene 1054 01:30:50,300 --> 01:30:56,460 otro otro comando en otra otra palabra que añade más informas 1055 01:30:59,640 --> 01:31:05,020 propiedades vamos a decir cambia un poco el sentido de esa variable para que bueno pues 1056 01:31:05,020 --> 01:31:09,800 los valores que vayan ahí no se pierdan al recargarse escenas etcétera se queda como 1057 01:31:09,800 --> 01:31:14,159 una variable suspendida, digamos, para poder usarla a lo largo del juego. 1058 01:31:15,279 --> 01:31:20,439 El canvas, pues que es el canvas y que es, digamos, el padre de los elementos de User Interface 1059 01:31:20,439 --> 01:31:24,159 que vayamos incorporando junto al event system que siempre tiene que estar cuando hay un canvas, 1060 01:31:24,659 --> 01:31:29,619 del que se habla aquí, pues importante saber lo que es y saber, pues eso, que va a ser el padre 1061 01:31:29,619 --> 01:31:34,560 y de dónde se gestionan estas dos otras opciones que tenemos aquí, que ahora vamos. 1062 01:31:34,560 --> 01:31:35,979 pues eso 1063 01:31:35,979 --> 01:31:38,560 de este tema un poco 1064 01:31:38,560 --> 01:31:40,920 pues los distintos render modes 1065 01:31:40,920 --> 01:31:42,779 y canvas scalers, pues saber 1066 01:31:42,779 --> 01:31:44,319 qué es y para qué son 1067 01:31:44,319 --> 01:31:46,140 eso puede haber preguntas de ello 1068 01:31:46,140 --> 01:31:48,720 y los distintos 1069 01:31:48,720 --> 01:31:49,880 un poco 1070 01:31:49,880 --> 01:31:53,060 qué es un canvas, se puede preguntar 1071 01:31:53,060 --> 01:31:54,920 a lo mejor se puede 1072 01:31:54,920 --> 01:31:56,760 hablar un poco de esto, tampoco creo 1073 01:31:56,760 --> 01:31:58,659 me centre mucho porque esto sin tener el ordenador 1074 01:31:58,659 --> 01:32:00,699 delante, mucho lío de pues el 1075 01:32:00,699 --> 01:32:02,039 pivote se pone aquí, etc. 1076 01:32:02,039 --> 01:32:14,479 Bueno, tampoco es lo que más me interesaría de cara al examen. Evidentemente, si estáis creando un canvas en vuestra aplicación, pues hay que un poco saber trastear con estas opciones que da el Red Transform, ¿vale? 1077 01:32:14,479 --> 01:32:32,220 Y el Event System, que es básicamente el que permite el GameObject barra componente, que permite que con teclas o con un input nosotros podamos irnos moviendo por las distintas opciones o que directamente cuando clicamos sobre un botón, pues lo detecte, ¿vale? 1078 01:32:32,220 --> 01:32:34,399 básicamente es el gestor de 1079 01:32:34,399 --> 01:32:36,720 que esa user interface pueda 1080 01:32:36,720 --> 01:32:38,359 detectar interacciones 1081 01:32:38,359 --> 01:32:40,779 y por eso tiene que estar siempre 1082 01:32:40,779 --> 01:32:42,600 porque si no un botón, por mucho que cliquemos 1083 01:32:42,600 --> 01:32:43,939 no va a hacer nada 1084 01:32:43,939 --> 01:32:45,039 ¿vale? 1085 01:32:46,800 --> 01:32:48,140 elementos de la UI, pues 1086 01:32:48,140 --> 01:32:50,800 los distintos elementos, a ver qué es y un poco 1087 01:32:50,800 --> 01:32:52,220 cómo se configuran 1088 01:32:52,220 --> 01:32:54,520 sí que puede haber alguna pregunta, yo que sé 1089 01:32:54,520 --> 01:32:56,720 en un slider, ¿qué es el handle? 1090 01:32:56,819 --> 01:32:58,640 por ejemplo, si quisiéramos cambiar el iconito 1091 01:32:58,640 --> 01:33:00,840 del círculo que aparece 1092 01:33:00,840 --> 01:33:01,539 para que sea 1093 01:33:01,539 --> 01:33:04,460 un pivote o una bola de pinball 1094 01:33:04,460 --> 01:33:05,539 como la tarea 4 1095 01:33:05,539 --> 01:33:08,000 pues lo que habría que tocar es el handle 1096 01:33:08,000 --> 01:33:09,520 o el fill area, pues el handle 1097 01:33:09,520 --> 01:33:10,939 un poco saber que es esto 1098 01:33:10,939 --> 01:33:13,460 de estos pues es que es importante 1099 01:33:13,460 --> 01:33:16,319 al menos que os suene que son cada cosa 1100 01:33:16,319 --> 01:33:18,140 o los distintos tipos de elementos 1101 01:33:18,140 --> 01:33:18,979 que hay 1102 01:33:18,979 --> 01:33:21,819 de las player prefs, importante 1103 01:33:21,819 --> 01:33:23,060 puede haber alguna pregunta 1104 01:33:23,060 --> 01:33:25,539 también en el tema 4 que es 1105 01:33:25,539 --> 01:33:27,539 si hablamos de las variables estáticas 1106 01:33:27,539 --> 01:33:29,439 para que mientras estamos reproduciendo el juego 1107 01:33:29,439 --> 01:33:32,020 se puedan guardar variables y se almacenen 1108 01:33:32,020 --> 01:33:33,720 durante la reproducción, con esto 1109 01:33:33,720 --> 01:33:36,119 con estas player prefs lo que conseguimos 1110 01:33:36,119 --> 01:33:37,779 es poder guardar en 1111 01:33:37,779 --> 01:33:40,039 otra parte del ordenador o dispositivo en el que 1112 01:33:40,039 --> 01:33:41,859 estemos jugando una memoria 1113 01:33:41,859 --> 01:33:43,800 de datos o claves como se llaman 1114 01:33:43,800 --> 01:33:45,979 ¿vale? como podemos ir guardando ahí 1115 01:33:45,979 --> 01:33:47,819 aunque cerremos el juego 1116 01:33:47,819 --> 01:33:49,640 y lo arranquemos otro día, datos 1117 01:33:49,640 --> 01:33:51,779 por ejemplo como el ranking de mejores puntuaciones 1118 01:33:51,779 --> 01:33:54,000 pues en estas claves de los player prefs 1119 01:33:54,000 --> 01:33:55,960 vamos a poder ir guardando 1120 01:33:55,960 --> 01:33:58,079 y luego recuperando 1121 01:33:58,079 --> 01:34:05,220 esos datos para que, aunque quitemos el juego, pues siga habiendo un histórico, una memoria, digamos, de datos. 1122 01:34:05,859 --> 01:34:11,460 Luego aquí más abajo se habla de otros sistemas más elaborados y más escalables que se pueden subir a Internet 1123 01:34:11,460 --> 01:34:15,920 con datos, pues por ejemplo estos archivos JSON, son para saber más, de esto no va a haber preguntas, 1124 01:34:15,920 --> 01:34:24,220 pero de cómo funcionan estos player prefs y cómo se puede recuperar, incluso comprobar si existe una de estas claves 1125 01:34:24,220 --> 01:34:28,319 y fijar y recuperar estos datos, sí puede haber alguna pregunta. 1126 01:34:29,199 --> 01:34:32,159 Cuando digo preguntas, pueden ser tipo test o de desarrollo. 1127 01:34:32,460 --> 01:34:34,760 Esto, por ejemplo, es más tipo test seguramente. 1128 01:34:35,119 --> 01:34:39,079 Si aparece esta línea, ¿cómo estamos recuperando o qué está haciendo? 1129 01:34:39,619 --> 01:34:45,779 ¿Qué método de los player prefs habría que usar para fijar en una clave llamada GameVolume 1130 01:34:45,779 --> 01:34:48,239 un dato de tipo float? 1131 01:34:48,539 --> 01:34:52,100 Sería con el setFloat, que es la que sirve para establecer valores. 1132 01:34:52,100 --> 01:35:10,140 En este caso, float, porque es un valor de float. Si fuera un int, sería un int, un stint, ¿vale? Vale, pues, siguiente tema, si no hay más. Si no queréis comentar algo. Dame un segundillo, a ver, vale. 1133 01:35:10,140 --> 01:35:13,619 Tema 5 1134 01:35:13,619 --> 01:35:15,920 Dame un segundito 1135 01:35:15,920 --> 01:35:18,579 Vale, este tema 1136 01:35:18,579 --> 01:35:20,199 Bastante importante también 1137 01:35:20,199 --> 01:35:22,960 Porque es el que gestiona las animaciones 1138 01:35:22,960 --> 01:35:24,720 En este tema sobre todo 1139 01:35:24,720 --> 01:35:26,180 Se centra en 1140 01:35:26,180 --> 01:35:27,800 Animaciones 2D 1141 01:35:27,800 --> 01:35:30,020 Lo que son basadas en sprites 1142 01:35:30,020 --> 01:35:32,119 Que la diferencia, y esto es importante 1143 01:35:32,119 --> 01:35:34,579 Aunque es un poco de cajón si se piensa 1144 01:35:34,579 --> 01:35:36,680 No es lo mismo las animaciones basadas 1145 01:35:36,680 --> 01:35:38,619 En distintos fotogramas que cuando tenemos 1146 01:35:38,619 --> 01:35:40,640 una animación de un clip de animación 3D 1147 01:35:40,640 --> 01:35:42,800 que lo que hace es interpolar valores 1148 01:35:42,800 --> 01:35:44,359 ¿vale? cuando es fotograma a fotograma 1149 01:35:44,359 --> 01:35:46,000 no dejan de ser imágenes una tras otra 1150 01:35:46,000 --> 01:35:48,600 pues mostrará primero un fotograma 1151 01:35:48,600 --> 01:35:50,720 y luego otro ¿vale? cuando son animaciones 1152 01:35:50,720 --> 01:35:52,279 3D y lo metemos en un 1153 01:35:52,279 --> 01:35:53,819 personaje bípedo, en una persona 1154 01:35:53,819 --> 01:35:55,520 pues cuando levanta el brazo 1155 01:35:55,520 --> 01:35:57,539 no están dibujados 1156 01:35:57,539 --> 01:36:00,319 los distintos cambios de posición 1157 01:36:00,319 --> 01:36:02,260 sino que es, ve de este punto de la mano 1158 01:36:02,260 --> 01:36:04,539 en el rig, el punto que tenga 1159 01:36:04,539 --> 01:36:06,840 marcado como mano 1160 01:36:06,840 --> 01:36:08,579 que vaya de este punto a este otro 1161 01:36:08,579 --> 01:36:32,600 Y en medio irá interpolando, ¿vale? Entonces, bueno, el panel de animation, pues a ver un poco cómo funciona, bueno, pues un poco de manera similar a lo que sucede en otros softwares de 3D o incluso de edición de vídeo, pues que tienen una línea de tiempo y se pueden ir fijando fotogramas, ¿vale? 1162 01:36:32,600 --> 01:36:56,039 Vale, bueno, aquí habla un poco de qué es cada panel, introductorio, ya vamos a la chicha. Que existe este componente animator, que luego para acceder a él, pues habrá que, no sé si ya está aquí, cuando vaya práctica guiada, pues cuando queramos acceder al animator, ¿vale? A una variable animator, primero habrá que capturarla. 1163 01:36:56,039 --> 01:37:09,960 capturarla? Pues en el animator controller, pues primero habrá que de alguna forma capturar 1164 01:37:09,960 --> 01:37:14,880 ese componente animator, que es en el que tenemos ese animator controller que asignamos 1165 01:37:14,880 --> 01:37:22,180 al animator. En el panel de animación, pues bueno, un poco saber, yo que sé, esto es 1166 01:37:22,180 --> 01:37:26,600 importante que lo conozcáis. Bueno, sí, saber que se pueden crear por cada GameObject 1167 01:37:26,600 --> 01:37:30,420 dentro de cada animator los distintos 1168 01:37:30,420 --> 01:37:34,340 clips de animación que se corresponderán con los estados 1169 01:37:34,340 --> 01:37:37,539 del animator controller, ¿vale? Estos distintos estados, cada uno es 1170 01:37:37,539 --> 01:37:42,319 en esencia un clip de animación, ¿vale? Pues luego podemos meternos en ese clip 1171 01:37:42,319 --> 01:37:45,539 de animación que en el animation, en el panel de animation, podemos 1172 01:37:45,539 --> 01:37:50,199 ajustar, depurar o hacer lo que queramos. Del animator controller, pues 1173 01:37:50,199 --> 01:38:05,439 Por ejemplo, saber por qué hay uno en naranja. Pues ese naranja será el que por defecto está fijado como estado por defecto. Si no hay ninguna transición, al arrancar ese nivel, pues se irá a este estado, el personaje hará lo que esté en ese estado, hasta que haya transiciones que lo cambien. 1174 01:38:05,439 --> 01:38:12,739 Por eso aparece naranja y con esta conexión naranja automática cuando lo marcamos como layer default state. 1175 01:38:13,600 --> 01:38:15,140 Bueno, pues eso es importante también saberlo. 1176 01:38:15,279 --> 01:38:21,520 Un poco cómo se figuran las transiciones, que son los parámetros, cómo se cambian por código, 1177 01:38:21,979 --> 01:38:25,979 por qué a veces pueden aparecer estas conexiones con más de una flecha, 1178 01:38:26,079 --> 01:38:29,500 que es que hay más de una posible condición para que se dé la transición. 1179 01:38:30,520 --> 01:38:33,279 Pues eso sí que puede ser importante. 1180 01:38:33,279 --> 01:38:44,859 que es el hasExitTime, que es que aunque estemos ejecutando la acción run02, si queremos ir a run02 y se cumple la condición, 1181 01:38:45,399 --> 01:38:56,960 si hasExitTime tiene que acabar primero toda la animación y luego ya ir a la siguiente, o si automáticamente cuando se cumpla la condición, pasa al siguiente estado. 1182 01:38:58,100 --> 01:39:00,319 Vale, pues también es relevante conocerlo. 1183 01:39:00,319 --> 01:39:02,300 lanzar transiciones 1184 01:39:02,300 --> 01:39:03,979 bueno, pues aquí habla de los parámetros 1185 01:39:03,979 --> 01:39:06,319 que hay de varios tipos, trigger, bool 1186 01:39:06,319 --> 01:39:08,399 int 1187 01:39:08,399 --> 01:39:10,439 float, pues a ver que 1188 01:39:10,439 --> 01:39:11,920 que son 1189 01:39:11,920 --> 01:39:13,819 y como se cambian, que básicamente 1190 01:39:13,819 --> 01:39:16,159 bueno, y las condiciones que son, y como se cambian 1191 01:39:16,159 --> 01:39:18,020 por código, que básicamente se 1192 01:39:18,020 --> 01:39:19,460 explica aquí con los set 1193 01:39:19,460 --> 01:39:21,880 de los distintos tipos, pues eso 1194 01:39:21,880 --> 01:39:24,119 primero, dependiendo de si es set trigger 1195 01:39:24,119 --> 01:39:25,680 solo habrá que poner el nombre del parámetro 1196 01:39:25,680 --> 01:39:27,399 si es de otro 1197 01:39:27,399 --> 01:39:29,859 tipo, pues permitirá en el 1198 01:39:29,859 --> 01:39:33,340 en el segundo parámetro, pues cuál es el valor. 1199 01:39:33,779 --> 01:39:39,000 Si tenemos un parámetro de tipo booleano, puede ser verdadero o falso. 1200 01:39:39,199 --> 01:39:42,180 O si es de tipo int, pues habrá que darle un número. 1201 01:39:42,539 --> 01:39:47,340 Pues aquí primero se apela a qué tipo de variable va a ser la de ese parámetro. 1202 01:39:47,899 --> 01:39:51,260 Mejor dicho, qué tipo de dato guarda el parámetro. 1203 01:39:51,840 --> 01:39:54,520 Se dice el nombre y luego cuál es el valor que tiene que tener. 1204 01:39:55,020 --> 01:39:58,659 Y que ese valor, como podéis ver en un setFloat, aparte del nombre de ese parámetro, 1205 01:39:58,659 --> 01:40:01,359 pues lo podemos conectar con un axis 1206 01:40:01,359 --> 01:40:03,479 por ejemplo, o con lo que queramos, no deja de ser 1207 01:40:03,479 --> 01:40:05,399 un valor que mientras en este caso 1208 01:40:05,399 --> 01:40:06,340 sea de tipo float 1209 01:40:06,340 --> 01:40:09,119 va a estar modificando 1210 01:40:09,119 --> 01:40:11,159 el valor de ese parámetro para luego 1211 01:40:11,159 --> 01:40:13,279 nuevamente que la condición 1212 01:40:13,279 --> 01:40:15,140 se dé o no, que es lo que nos permite 1213 01:40:15,140 --> 01:40:17,380 que a nivel visual nuestro personaje 1214 01:40:17,380 --> 01:40:18,500 o el elemento que sea 1215 01:40:18,500 --> 01:40:20,640 reproduzca una animación 1216 01:40:20,640 --> 01:40:21,579 u otra 1217 01:40:21,579 --> 01:40:25,300 bueno, en la práctica guiada 1218 01:40:25,300 --> 01:40:27,060 aquí se os dejaba un ejemplo 1219 01:40:27,060 --> 01:40:31,739 cómo se aplica, si además habéis hecho las tareas 1220 01:40:31,739 --> 01:40:35,180 pues lo habéis puesto en práctica y si no, pues revisadlo 1221 01:40:35,180 --> 01:40:36,760 para entender cómo funciona 1222 01:40:36,760 --> 01:40:40,300 el 2D en Unity, pues 1223 01:40:40,300 --> 01:40:44,720 saber que hay un paquete que hay que instalar 1224 01:40:44,720 --> 01:40:49,460 y un, digamos, una de las plantillas 1225 01:40:49,460 --> 01:40:52,779 de creación de proyectos que es específico de 2D y que incorpora 1226 01:40:52,779 --> 01:40:56,119 algunos de estos paquetes, como hemos dicho al principio de la sesión 1227 01:40:56,119 --> 01:41:04,239 que, bueno, dependiendo de qué plantilla usemos, pues tendrá unos paquetes u otros que siempre podremos luego instalar desde el Package Manager. 1228 01:41:04,720 --> 01:41:14,359 ¿Vale? Físicas en 2D. Bueno, pues a ver que existen métodos que son análogos o similares a los de 3D, pero que tienen su versión para 2D. 1229 01:41:14,359 --> 01:41:23,819 Porque, bueno, como se mueven en otras dimensiones y tienen ciertas limitaciones, pues no son exactamente igual y por eso hay que usar ese tipo de métodos cuando corresponda. 1230 01:41:23,819 --> 01:41:26,020 que existe el Rigipodi 2D 1231 01:41:26,020 --> 01:41:31,279 del animation por cierto 1232 01:41:31,279 --> 01:41:32,239 me salto una cosa 1233 01:41:32,239 --> 01:41:35,340 importante es también saber que son los eventos 1234 01:41:35,340 --> 01:41:37,279 de animación, que son que dentro de 1235 01:41:37,279 --> 01:41:39,579 una reproducción de una animación 1236 01:41:39,579 --> 01:41:41,039 se puede marcar por ejemplo 1237 01:41:41,039 --> 01:41:42,060 en este segundo uno 1238 01:41:42,060 --> 01:41:44,260 un evento se puede añadir 1239 01:41:44,260 --> 01:41:47,000 para que a través de código podamos decir 1240 01:41:47,000 --> 01:41:49,100 cuando se, en vez de 1241 01:41:49,100 --> 01:41:50,760 activar algo por código 1242 01:41:50,760 --> 01:41:52,619 en cierto momento es 1243 01:41:52,619 --> 01:41:54,460 cuando se reproduzca este clip de animación 1244 01:41:54,460 --> 01:41:56,420 al llegar a este punto, que ocurra 1245 01:41:56,420 --> 01:41:58,060 lo que pongamos en el método 1246 01:41:58,060 --> 01:42:00,420 esto también puede haber alguna pregunta 1247 01:42:00,420 --> 01:42:02,439 sobre todo sería más de 1248 01:42:02,439 --> 01:42:04,520 del tipo test, no voy a 1249 01:42:04,520 --> 01:42:06,420 decir que me desarrolléis todo esto 1250 01:42:06,420 --> 01:42:08,779 pero si ponemos un evento 1251 01:42:08,779 --> 01:42:10,199 en la línea de tiempo 1252 01:42:10,199 --> 01:42:12,460 ¿cómo habría que 1253 01:42:12,460 --> 01:42:14,439 escribir el código para que aparezca así 1254 01:42:14,439 --> 01:42:16,439 de configurable? bueno, pues podría 1255 01:42:16,439 --> 01:42:18,279 haber alguna pregunta en ese 1256 01:42:18,279 --> 01:42:18,979 sentido 1257 01:42:18,979 --> 01:42:25,529 físicas 2D 1258 01:42:25,529 --> 01:42:28,210 los colliders 2D pues un poco también nos tienen que sonar 1259 01:42:28,210 --> 01:42:29,949 los efectores, pues que es un 1260 01:42:29,949 --> 01:42:31,930 esto lo vimos en la tarea 5 1261 01:42:31,930 --> 01:42:33,149 que es un platform 1262 01:42:33,149 --> 01:42:36,050 efector 2D, pues si queremos 1263 01:42:36,050 --> 01:42:38,369 que el personaje pueda pasar por debajo 1264 01:42:38,369 --> 01:42:40,170 y apoyarse en una plataforma 1265 01:42:40,170 --> 01:42:42,069 pues existen estos efectores 1266 01:42:42,069 --> 01:42:43,970 que se pueden aplicar 1267 01:42:43,970 --> 01:42:45,689 y para eso hay que activar 1268 01:42:45,689 --> 01:42:48,170 dentro de los colliders 2D, esto no lo tienen 1269 01:42:48,170 --> 01:42:50,289 los 3D, los colliders normales 1270 01:42:50,289 --> 01:42:52,210 que se pueden ir incorporando 1271 01:42:52,210 --> 01:42:54,069 otros tipos de componentes que son estos 1272 01:42:54,069 --> 01:42:54,750 efectores 1273 01:42:54,750 --> 01:42:57,609 entonces bueno, cada uno tiene su 1274 01:42:57,609 --> 01:42:58,489 theme 1275 01:42:58,489 --> 01:43:01,210 alguno puede caer, si cae alguno pues será 1276 01:43:01,210 --> 01:43:03,010 probablemente el platform, que es el que 1277 01:43:03,010 --> 01:43:04,710 sí que en algún momento se ha visto 1278 01:43:04,710 --> 01:43:07,529 ¿qué es una hoja de sprites? ¿por qué se usan? 1279 01:43:08,210 --> 01:43:09,369 ¿cómo se importan? 1280 01:43:09,449 --> 01:43:10,729 bueno, un poco cómo se editan 1281 01:43:10,729 --> 01:43:13,149 que para que sea una hoja de sprites 1282 01:43:13,149 --> 01:43:15,289 un solo documento, un solo asset 1283 01:43:15,289 --> 01:43:17,229 hay que marcar que sea múltiple 1284 01:43:17,229 --> 01:43:19,310 entrar en la sprite editor 1285 01:43:19,310 --> 01:43:21,329 dividirlo con alguna de las opciones que hay 1286 01:43:21,329 --> 01:43:23,050 y entonces aparecerán como 1287 01:43:23,050 --> 01:43:24,989 dentro de esa hoja de sprites 1288 01:43:24,989 --> 01:43:26,970 se habrá dividido en los distintos 1289 01:43:26,970 --> 01:43:29,010 subelementos 1290 01:43:29,010 --> 01:43:30,789 ¿vale? tampoco 1291 01:43:30,789 --> 01:43:32,550 más avanzado que esto, a ver 1292 01:43:32,550 --> 01:43:35,109 ¿qué son las sorting layers, las layers 1293 01:43:35,109 --> 01:43:36,329 las tags? pues un poco 1294 01:43:36,329 --> 01:43:39,010 que os suene que es, sí que puede haber 1295 01:43:39,010 --> 01:43:39,829 alguna pregunta, pero 1296 01:43:39,829 --> 01:43:43,010 tampoco va a haber que desarrollar 1297 01:43:43,010 --> 01:43:45,109 pero alguna pregunta de qué es o para qué se usa 1298 01:43:45,109 --> 01:43:46,310 sí que puede haber 1299 01:43:46,310 --> 01:43:48,069 ¿vale? 1300 01:43:51,829 --> 01:43:53,029 dame un segundito 1301 01:43:53,029 --> 01:43:59,130 vale, de este tema 1302 01:43:59,130 --> 01:44:01,029 creando un juego multiplataformas 1303 01:44:01,029 --> 01:44:02,529 esto se habla de 1304 01:44:02,529 --> 01:44:04,689 bueno, mira 1305 01:44:04,689 --> 01:44:06,890 esto es lo que antes no salía, esto de Velocity 1306 01:44:06,890 --> 01:44:08,970 este panel de info, en las últimas 1307 01:44:08,970 --> 01:44:10,909 versiones, en el Rigidbody normal 1308 01:44:10,909 --> 01:44:13,029 de 3D, no aparece, esa es la imagen que no 1309 01:44:13,029 --> 01:44:13,489 aparecía 1310 01:44:13,489 --> 01:44:16,810 bueno, pues un poco las lógicas que 1311 01:44:16,810 --> 01:44:19,270 tienen los códigos, lo que os comentaba 1312 01:44:19,270 --> 01:44:20,510 pues un poco saber estas 1313 01:44:20,510 --> 01:44:23,090 secciones, creando un juego 1314 01:44:23,090 --> 01:44:24,890 de plataformas, estos dos apartados son 1315 01:44:24,890 --> 01:44:27,090 para que pudierais 1316 01:44:27,090 --> 01:44:29,149 viendo el código 1317 01:44:29,149 --> 01:44:30,930 que se os proporcionaba, ir desglosando 1318 01:44:30,930 --> 01:44:32,970 un script 1319 01:44:32,970 --> 01:44:34,750 y ir viendo cómo conseguir ciertas acciones 1320 01:44:34,750 --> 01:44:36,869 que luego también casi todas se pedían 1321 01:44:36,869 --> 01:44:37,909 en lo que son las 1322 01:44:37,909 --> 01:44:41,250 bueno, pues las 1323 01:44:41,250 --> 01:44:42,310 tareas 1324 01:44:42,310 --> 01:44:45,069 como detectar el suelo 1325 01:44:45,069 --> 01:44:46,869 con un raycast o como 1326 01:44:46,869 --> 01:44:48,170 detectarlo con el 1327 01:44:48,170 --> 01:44:50,130 con un 1328 01:44:50,130 --> 01:44:52,090 collision enter 2D en este caso 1329 01:44:52,090 --> 01:44:53,750 bueno, pues aquí se habla un poco de esto 1330 01:44:53,750 --> 01:44:56,229 sobre todo que sepáis las lógicas 1331 01:44:56,229 --> 01:44:57,949 si se os pregunta 1332 01:44:57,949 --> 01:44:58,550 pues que os suene 1333 01:44:58,550 --> 01:45:01,869 de multijugador, si se pregunta algo sería a nivel 1334 01:45:01,869 --> 01:45:03,829 conceptual, que tres tipos de 1335 01:45:03,829 --> 01:45:05,470 multijugador, principalmente 1336 01:45:05,470 --> 01:45:07,989 que tipologías, tampoco creo 1337 01:45:07,989 --> 01:45:09,689 que se pregunte mucho de esto, pero bueno 1338 01:45:09,689 --> 01:45:11,689 a lo mejor, un viejo 1339 01:45:11,689 --> 01:45:12,930 se puede jugar en local 1340 01:45:12,930 --> 01:45:15,569 puede ser multijugador local 1341 01:45:15,569 --> 01:45:17,210 pues sí, por ejemplo, yo que sé 1342 01:45:17,210 --> 01:45:33,890 Si os suena el juego It Takes Two, no sé si habéis jugado, pues en cuanto ponga una captura o un gameplay vais a ver que es un juego que se juega, bueno esto lo digo como añadido, pero es un videojuego que se basa en cooperativo en local. 1343 01:45:33,890 --> 01:45:36,449 se van a ir viendo dividida la pantalla 1344 01:45:36,449 --> 01:45:38,710 y los dos jugadores van jugando a la vez 1345 01:45:38,710 --> 01:45:40,630 y cada uno irá mirando su mitad 1346 01:45:40,630 --> 01:45:41,689 pero también puede mirar la otra 1347 01:45:41,689 --> 01:45:44,449 o si es online o basado en un 1348 01:45:44,449 --> 01:45:45,750 servidor que está 1349 01:45:45,750 --> 01:45:48,390 ubicado en otro sitio y ninguno de los jugadores 1350 01:45:48,390 --> 01:45:50,210 digamos que es el que centraliza 1351 01:45:50,210 --> 01:45:51,630 la ejecución del juego 1352 01:45:51,630 --> 01:45:54,109 a la que se conecta en el resto 1353 01:45:54,109 --> 01:45:56,170 bueno pues ahí en vez de ser local 1354 01:45:56,170 --> 01:45:57,029 que se juega en un mismo 1355 01:45:57,029 --> 01:46:00,170 dispositivo 1356 01:46:00,170 --> 01:46:02,529 pues se puede hacer de manera online 1357 01:46:02,529 --> 01:46:10,130 Ya os digo, siendo uno el host de esa partida o que sea el servidor el dispositivo que gestiona ese multijugador. 1358 01:46:10,649 --> 01:46:17,270 Ya os digo, de esto no creo que entre mucho. Tampoco en las tareas se ha pedido, así que no creo que entre nada de multijugador. 1359 01:46:18,550 --> 01:46:24,750 A ver... Vale. Voy para atrás. Vale. Vamos al tema 6. Ya quedan menos. 1360 01:46:30,699 --> 01:46:33,239 Aquí. ¿Qué tal? ¿Alguna duda? 1361 01:46:37,319 --> 01:46:37,819 Todo bien. 1362 01:46:37,819 --> 01:46:40,100 Vale. Contenido. 1363 01:46:41,039 --> 01:47:02,720 Bueno, terrenos, nazmes, pues un poco conceptualmente que son los terrenos, alguna de las herramientas, pues se puede preguntar, oye, pues ¿qué es un head map? A lo mejor que son estos mapas en escala de grises para trasladar rápidamente un terreno y guardarlo y poder cargarlo con esta importación de head map. 1364 01:47:02,720 --> 01:47:05,060 no es lo que más me importa 1365 01:47:05,060 --> 01:47:07,279 ¿vale? estas secciones 1366 01:47:07,279 --> 01:47:09,199 sí que me puede importar más 1367 01:47:09,199 --> 01:47:11,380 pues por ejemplo las distintas 1368 01:47:11,380 --> 01:47:12,399 herramientas 1369 01:47:12,399 --> 01:47:15,079 pues que hay de esculpido 1370 01:47:15,079 --> 01:47:17,640 ¿vale? pues que es el Razor Lower 1371 01:47:17,640 --> 01:47:19,180 preguntaros para qué sirve 1372 01:47:19,180 --> 01:47:21,060 el Smooth Head o el Set Head 1373 01:47:21,060 --> 01:47:22,899 bueno, eso sí puede haber alguna 1374 01:47:22,899 --> 01:47:24,819 preguntilla ¿vale? pero 1375 01:47:24,819 --> 01:47:27,439 tampoco es lo que más me importa 1376 01:47:27,439 --> 01:47:29,260 como es más 1377 01:47:29,260 --> 01:47:30,199 visual esta parte 1378 01:47:30,199 --> 01:47:33,220 y de los terrenos, pues es 1379 01:47:33,220 --> 01:47:34,880 importante, pero para el examen no 1380 01:47:34,880 --> 01:47:36,479 creo que pregunte mucho 1381 01:47:36,479 --> 01:47:39,420 ¿importación 1382 01:47:39,420 --> 01:47:41,079 de personajes? 1383 01:47:41,659 --> 01:47:41,899 pues 1384 01:47:41,899 --> 01:47:45,140 bueno, saber que es 1385 01:47:45,140 --> 01:47:45,800 un FBX 1386 01:47:45,800 --> 01:47:49,399 que se pueden configurar algunas cosas 1387 01:47:49,399 --> 01:47:51,039 no es de lo que más se preguntaría 1388 01:47:51,039 --> 01:47:52,260 ¿vale? si que me 1389 01:47:52,260 --> 01:47:55,340 me hubiera gustado quien no lo hubiera hecho 1390 01:47:55,340 --> 01:47:57,100 quien no lo haya hecho, pues las tareas 1391 01:47:57,100 --> 01:47:59,119 que si hubiera intentado hacer la tarea 6 1392 01:47:59,119 --> 01:48:00,500 que tienen Tringulis 1393 01:48:00,500 --> 01:48:02,859 pero a nivel de 1394 01:48:02,859 --> 01:48:05,399 más allá de cómo se gestiona el animator 1395 01:48:05,399 --> 01:48:07,000 que es un blend tree, eso sí que me puede 1396 01:48:07,000 --> 01:48:08,939 interesar más, pero bueno 1397 01:48:08,939 --> 01:48:11,460 Mixamo, pues bueno, que sepáis que existe 1398 01:48:11,460 --> 01:48:13,159 y para qué es, pero bueno, tampoco 1399 01:48:13,159 --> 01:48:15,079 creo que haya de desarrollo 1400 01:48:15,079 --> 01:48:16,220 preguntas 1401 01:48:16,220 --> 01:48:16,560 ni 1402 01:48:16,560 --> 01:48:18,880 no sé 1403 01:48:18,880 --> 01:48:21,979 que entre demasiado, es más aplicado 1404 01:48:21,979 --> 01:48:24,039 entonces, alguna pregunta puede haber 1405 01:48:24,039 --> 01:48:26,460 sí, pero no es de lo que más va a haber 1406 01:48:26,460 --> 01:48:28,239 el carácter controller 1407 01:48:28,239 --> 01:48:41,140 Pues saber por qué es, que es este tercer método para mover al personaje, que por ejemplo incorpora detección de cuestas, de peldaños, que se puede mover entonces más libremente por estos terrenos que hemos aprendido a crear. 1408 01:48:41,640 --> 01:48:47,760 Y un poco saber las peculiaridades que están aquí recogidas de este carácter controlores, ¿vale? 1409 01:48:48,159 --> 01:48:56,640 Pues por ejemplo, que tiene como una especie de cápsula ya collider, pero que no se gestiona con el onCollisionEnter que hemos visto, sino que tiene sus propios métodos. 1410 01:48:56,640 --> 01:48:58,840 también que hay un método 1411 01:48:58,840 --> 01:49:00,079 el simple 1412 01:49:00,079 --> 01:49:02,420 que sirve para mover a un personaje 1413 01:49:02,420 --> 01:49:04,460 pero no está pensado para que salte o para que se mueva 1414 01:49:04,460 --> 01:49:06,500 en vertical y hay otro 1415 01:49:06,500 --> 01:49:08,539 más complejo pero que permite más opciones 1416 01:49:08,539 --> 01:49:10,340 que es este move que sí que permite por ejemplo 1417 01:49:10,340 --> 01:49:12,079 saltos pero que hay que un poco 1418 01:49:12,079 --> 01:49:14,680 calibrarlos 1419 01:49:14,680 --> 01:49:16,659 por nuestra parte como luego se habla en los ejemplos 1420 01:49:16,659 --> 01:49:17,039 de uso 1421 01:49:17,039 --> 01:49:19,260 pues eso, saber un poco 1422 01:49:19,260 --> 01:49:21,460 para qué es el carácter controller 1423 01:49:21,460 --> 01:49:24,760 y las peculiaridades que tiene 1424 01:49:24,760 --> 01:49:26,239 sobre todo esta parte 1425 01:49:26,239 --> 01:49:27,960 me parece más interesante 1426 01:49:27,960 --> 01:49:29,960 ¿vale? porque si al final 1427 01:49:29,960 --> 01:49:31,880 estamos configurando algún 1428 01:49:31,880 --> 01:49:34,079 personaje que se 1429 01:49:34,079 --> 01:49:35,840 tiene que meter por 1430 01:49:35,840 --> 01:49:38,000 tiene que subir escaleras o se tiene que meter por 1431 01:49:38,000 --> 01:49:39,239 entornos más complejos 1432 01:49:39,239 --> 01:49:41,920 pues es 1433 01:49:41,920 --> 01:49:43,420 el componente a usar 1434 01:49:43,420 --> 01:49:44,060 ¿vale? 1435 01:49:47,539 --> 01:49:48,300 de Cinemachine 1436 01:49:48,300 --> 01:49:50,180 bueno, que sepáis que existe 1437 01:49:50,180 --> 01:49:52,199 que tiene su propio 1438 01:49:52,199 --> 01:49:54,680 namespace 1439 01:49:54,680 --> 01:49:55,399 o librería 1440 01:49:55,399 --> 01:49:57,500 Un poco para que se usa 1441 01:49:57,500 --> 01:50:00,579 Tampoco va a ser de lo que más se pregunte 1442 01:50:00,579 --> 01:50:02,460 Lo mismo, me interesaba más de cara 1443 01:50:02,460 --> 01:50:03,720 Que lo tocaréis en la tarea 1444 01:50:03,720 --> 01:50:05,079 Número 6 1445 01:50:05,079 --> 01:50:07,399 Pero bueno, alguna pregunta puede haber 1446 01:50:07,399 --> 01:50:10,020 Directamente puede haber alguna cosa 1447 01:50:10,020 --> 01:50:11,300 Pero no es lo que más me centraría 1448 01:50:11,300 --> 01:50:13,899 Del NAMMES, pues como es 1449 01:50:13,899 --> 01:50:16,439 Un poco la filosofía de cómo funcionan 1450 01:50:16,439 --> 01:50:17,619 Estas IAS 1451 01:50:17,619 --> 01:50:19,920 Que es que dentro de nuestros GameObjects 1452 01:50:19,920 --> 01:50:21,880 O terrenos, podemos demarcar zonas 1453 01:50:21,880 --> 01:50:23,960 ¿Vale? Estas mallas de navegación 1454 01:50:23,960 --> 01:50:29,659 en las que puede un automata, un enemigo, etcétera, se puede mover cuando le aplicamos este NANDMESH agent. 1455 01:50:30,640 --> 01:50:36,380 Tampoco es en lo que más me voy a basar las preguntas, pero bueno, que definimos esas áreas por las que se puede mover 1456 01:50:36,380 --> 01:50:44,880 y luego, ¿vale? Con lo que vamos a poder decirle, vea tal punto o tal otro dentro de esa malla es con él, 1457 01:50:45,319 --> 01:50:49,600 bueno, pues igual habría que usar un namespace de punto ahí, ¿vale? 1458 01:50:49,600 --> 01:51:16,199 Y este método, que es el setDestination, que sirve para ir marcando a este autómata, a esta inteligencia artificial, que se dirija hacia un punto y a lo mejor cuando llegue a este punto, poner otro setDestination y vaya a otro e ir interpolando hacia dónde tiene que dirigirse, teniendo en cuenta que dentro de las opciones del agente, que es el autómata que tiene este componente, 1459 01:51:16,199 --> 01:51:18,659 pues de un punto hasta que llegue a ese destination 1460 01:51:18,659 --> 01:51:20,520 se van cambiando los valores 1461 01:51:20,520 --> 01:51:22,520 de velocidad, de cómo 1462 01:51:22,520 --> 01:51:24,500 tiene que acelerar si se frena en algún momento 1463 01:51:24,500 --> 01:51:26,899 ¿vale? cuánto tarda en girar 1464 01:51:26,899 --> 01:51:28,359 pues esas cosas, aparte de 1465 01:51:28,359 --> 01:51:30,220 que pueda subir o no escaleras 1466 01:51:30,220 --> 01:51:32,439 y etcétera, ¿vale? 1467 01:51:33,260 --> 01:51:33,960 ya os digo 1468 01:51:33,960 --> 01:51:36,600 este tema en general me interesaba 1469 01:51:36,600 --> 01:51:38,800 más de cara a que es muy importante 1470 01:51:38,800 --> 01:51:40,500 si ya empezáis a hacer juegos 1471 01:51:40,500 --> 01:51:42,239 con más empaque y tienen opciones más avanzadas 1472 01:51:42,239 --> 01:51:44,439 saben puede haber alguna pregunta, ya te digo 1473 01:51:44,439 --> 01:51:56,520 Pues en el NAMES agent, ¿cuál es el método para fijar destino? Pues setDestination, yo que sé, por ejemplo, ¿vale? Pero no es, aunque pueda caer alguna pregunta, no es de las que más va a haber. 1474 01:51:57,520 --> 01:52:13,560 ¿Qué es un estado finito, el automata finito, este finite state machine? Pues que son las lógicas que van siguiendo los automatas de cuando llego a cierto punto, chequeo esto y si se cumple esta condición, paso a otro punto, ¿vale? 1475 01:52:13,560 --> 01:52:36,840 Esto en la tarea era opcional, casi todo, entonces tampoco es lo que más me voy a centrar. Un poco que sepáis eso de la malla de navegación que se puede fijar por zonas y el automata se le aplicará este componente de agente con el que podemos ir diciéndole, agente, ve a tal punto siempre yendo por las zonas marcadas con la malla de navegación. 1476 01:52:36,840 --> 01:52:54,220 Es decir, aunque marquemos este punto aquí, este personaje no va a saltar, se pueden poner saltos con algunas de las opciones que también se describen, pero básicamente con lo que se dice llega hasta aquí, que lo que hará será meterse por este pasillito y volver por aquí, porque es por donde tiene malla de navegación, pues lo hará con el Send Destination. 1477 01:52:54,220 --> 01:53:05,420 Que cuando llegues aquí, otro set destination, que ya es poner lógicas de ejecución de un automata, pues cuando llegues aquí, que el destino sea este. 1478 01:53:05,539 --> 01:53:10,979 Pues el automata, por este terreno que hay aquí, a la velocidad que le pongamos, se irá moviendo hasta llegar a ese punto. 1479 01:53:11,819 --> 01:53:15,979 ¿Vale? Pues un poco con eso, de este apartado, es lo que más me interesaría. 1480 01:53:19,569 --> 01:53:20,689 ¿Sí? Venga, sigo. 1481 01:53:21,130 --> 01:53:23,029 Tema 7 y último. 1482 01:53:26,689 --> 01:53:30,130 Siempre se me olvida lo de abrir en pestaña aparte. 1483 01:53:30,170 --> 01:53:31,810 aquí está 1484 01:53:31,810 --> 01:53:33,470 vale 1485 01:53:33,470 --> 01:53:36,930 aquí, vamos a ello 1486 01:53:36,930 --> 01:53:38,430 de este tema 1487 01:53:38,430 --> 01:53:41,890 como os he dicho al principio 1488 01:53:41,890 --> 01:53:44,590 me interesan 1489 01:53:44,590 --> 01:53:45,310 muchas cosas 1490 01:53:45,310 --> 01:53:47,550 bueno, cuando llegue aquí voy a esta 1491 01:53:47,550 --> 01:53:49,949 de los materiales, pues saber un poco que son los materiales 1492 01:53:49,949 --> 01:53:50,609 los shaders 1493 01:53:50,609 --> 01:53:56,029 pues un poco que mapas, eso si me interesa 1494 01:53:56,029 --> 01:53:57,770 que lo sepáis, que es el albedo 1495 01:53:57,770 --> 01:53:59,710 en realidad si habéis hecho color 1496 01:53:59,710 --> 01:54:08,689 y se habló ya de los pases, etcétera, ya sabéis un poco lo que es, pero bueno, aplicado al shader estándar del Building Render, 1497 01:54:08,989 --> 01:54:15,529 pues luego es traducirlo a otros shaders y a otros motores, pero un poco son los pases que suelen tener los shaders. 1498 01:54:15,670 --> 01:54:19,630 Entonces, y por tanto los materiales que estén sometidos a esos shaders. 1499 01:54:20,170 --> 01:54:26,970 Pues un poco estas opciones sí que es importante, pues si quiero cambiar el color, pues principalmente hay que cambiar el albedo. 1500 01:54:26,970 --> 01:54:34,390 Si quiero que tenga relieves que no son físicos, sino simulaciones en base a un mapa, pues será en base al mapa de normales. 1501 01:54:34,729 --> 01:54:36,829 O si sí quiero desplazamiento, pues el height map. 1502 01:54:37,069 --> 01:54:38,510 Bueno, esto es importante. 1503 01:54:39,329 --> 01:54:41,109 De integrar vídeo, es muy interesante. 1504 01:54:41,609 --> 01:54:44,130 Si queréis meter vídeos, no creo que pregunte nada. 1505 01:54:44,829 --> 01:54:46,250 De skybox, saber qué es. 1506 01:54:46,710 --> 01:54:50,869 Siempre que hemos tenido un nivel nuevo, ¿vale? 1507 01:54:50,930 --> 01:54:52,430 Y esto no lo he mostrado en esto. 1508 01:54:52,430 --> 01:55:06,390 Pero este entorno del cielo, por defecto, siempre venía uno creado por defecto, relacionado con este Directional Light que se crea al generar nuevas escenas. 1509 01:55:06,770 --> 01:55:19,329 Pero, como se explica en el tema, hay una sección dentro de Window Rendering, Lighting, que es en Environment, el Skybox, que es un tipo de material, un tipo de shader concreto, 1510 01:55:19,329 --> 01:55:22,729 que se asocia a un tipo de luz, en este caso el Directional Light, 1511 01:55:23,289 --> 01:55:28,829 que nos permite hacer ese, entre comillas, HDR, que ya puede iluminar por sí mismo. 1512 01:55:29,310 --> 01:55:38,310 Es un tipo de material concreto y como tal se encuentra ya hecho. 1513 01:55:39,149 --> 01:55:42,250 Podemos crear el nuestro, como en este caso, que no es el que viene por defecto, 1514 01:55:42,310 --> 01:55:47,729 pero por defecto, si os fijáis ya en esta sección, habrá un material de Environment. 1515 01:55:47,729 --> 01:56:06,569 Bueno, pues que sepáis que es un skybox, eso también puede ser importante. Hay distintos tipos de generar un skybox, similares a los que se pueden usar en las imágenes HDR en software de 3D, por ejemplo, para hacer una iluminación global. 1516 01:56:06,569 --> 01:56:12,029 Pero bueno, más allá de qué es el concepto del Skybox y tal, no creo que se meta mucho. 1517 01:56:12,489 --> 01:56:16,789 ¿Qué es un Render Pipeline y los otros Render Pipeline principales y por qué? 1518 01:56:16,909 --> 01:56:21,670 Pues el URP para juegos 2D y móviles de alta calidad, pero no la altísima gama. 1519 01:56:22,069 --> 01:56:29,989 Están optimizados para plataformas, pero si queremos última generación, como la Play 5, PCs de alta gama, será el HDRP. 1520 01:56:29,989 --> 01:56:51,970 Hay tres niveles. El que hemos usado hasta ahora, que es el básico, el universal, que permite, por ejemplo, SIDGRAP o procesos más avanzados. Y luego está el de la Play 5 o la última Xbox o la Switch si estamos trabajando para máximo nivel gráfico, que es el HDRP. 1521 01:56:51,970 --> 01:56:54,329 bueno, pues saber un poco que 1522 01:56:54,329 --> 01:56:56,770 esto que hemos hablado un poco, de que hay que actualizar 1523 01:56:56,770 --> 01:56:58,850 los materiales, etcétera 1524 01:56:58,850 --> 01:57:01,350 entre diferentes render pipelines 1525 01:57:01,350 --> 01:57:02,750 también saberlo, también 1526 01:57:02,750 --> 01:57:04,869 en esencia, que es el shader graph 1527 01:57:04,869 --> 01:57:07,029 aunque luego no se profundice mucho 1528 01:57:07,029 --> 01:57:08,609 pero saber que es y que existe 1529 01:57:08,609 --> 01:57:10,770 porque en este software se llamará 1530 01:57:10,770 --> 01:57:12,829 shader graph, en Unreal se llamará 1531 01:57:12,829 --> 01:57:14,569 de otra forma, pero siempre hay 1532 01:57:14,569 --> 01:57:16,710 sistemas nodales en algún punto 1533 01:57:16,710 --> 01:57:19,010 los software sistemas 1534 01:57:19,010 --> 01:57:21,090 nodales para crear shaders 1535 01:57:21,090 --> 01:57:42,829 Y permitir capacidades visuales en los materiales. Bueno, pues en este caso sería el Shader Graph. Sobre iluminación, saber qué son las diferencias entre luces de tiempo real, las precocinadas y las mixtas, pues que suene. Tampoco profundizaré mucho, pero en lo que sí se profundizará y habrá preguntas seguro es los tipos de luz. 1536 01:57:42,829 --> 01:57:44,149 Además esto es 1537 01:57:44,149 --> 01:57:46,170 También en el módulo de color 1538 01:57:46,170 --> 01:57:48,890 Son similares, pues saber cuáles son los distintos 1539 01:57:48,890 --> 01:57:50,770 Tipos de luz, por ejemplo esta 1540 01:57:50,770 --> 01:57:52,430 Es la que siempre viene por defecto 1541 01:57:52,430 --> 01:57:54,130 Con ese skybox asociado 1542 01:57:54,130 --> 01:57:56,949 Bueno, pues los cuatro tipos de luz, saber qué es cada una 1543 01:57:56,949 --> 01:57:58,109 Eso es importante 1544 01:57:58,109 --> 01:58:00,710 Un poco los parámetros 1545 01:58:00,710 --> 01:58:03,270 Pues bueno, saber cada tipo de luz 1546 01:58:03,270 --> 01:58:04,750 Qué parámetro puede tener 1547 01:58:04,750 --> 01:58:07,010 En relación a su naturaleza, también puede ser 1548 01:58:07,010 --> 01:58:08,729 Esto del skybox 1549 01:58:08,729 --> 01:58:09,590 Pues un poco lo mismo 1550 01:58:09,590 --> 01:58:12,789 No me meteré mucho en esto 1551 01:58:12,789 --> 01:58:17,289 horneado de luces esto lo pongo para que sepáis cómo funciona en el vídeo de álvaro también se 1552 01:58:17,289 --> 01:58:24,529 habla tampoco es lo que más me importa los post procesos interesantísimos aquí se describe el 1553 01:58:24,529 --> 01:58:30,069 proceso para configurarlo y cómo se hacen por zonas vale los post procesos básicamente sirven 1554 01:58:30,069 --> 01:58:37,130 para si os fijáis en este en este ejemplo pues por ejemplo para que cuando nos vamos alejando 1555 01:58:37,130 --> 01:58:41,550 voy a quitar el audio, veis que se va a ir como haciendo más borrosa la imagen 1556 01:58:41,550 --> 01:58:44,510 o se irá haciendo más definido 1557 01:58:44,510 --> 01:58:46,229 o por ejemplo para 1558 01:58:46,229 --> 01:58:50,329 a ver si voy a los procesos 1559 01:58:50,329 --> 01:58:54,189 bueno, pues para que haya destellos más agresivos 1560 01:58:54,189 --> 01:58:57,550 si os fijáis aquí en el agua, si activo este posproceso de bloom 1561 01:58:57,550 --> 01:58:59,670 veis que a veces salen como 1562 01:58:59,670 --> 01:59:03,170 flares, como destellos 1563 01:59:03,170 --> 01:59:06,109 o el viñeteado, veis que si lo activo o desactivo 1564 01:59:06,109 --> 01:59:13,109 los post procesos sirven para una vez ya sea captado por la cámara lo que tiene que ver sobre 1565 01:59:13,109 --> 01:59:19,470 esa imagen se añaden efectos visuales igual que como si lo hiciéramos en davinci esto permite 1566 01:59:19,470 --> 01:59:29,109 tener ciertos acabados más estilizados o con más posibilidades y además a posteriori de que ya se 1567 01:59:29,109 --> 01:59:34,170 haya capturado todo lo que es el 3d es decir se captura la imagen 2d y sobre esas se realizan los 1568 01:59:34,170 --> 02:00:02,670 post-procesos. Ajustes de color, dar profundidad de campo, por ejemplo, lo que hemos dicho antes de que se me alejo, pues se irá perdiendo el foco al salir de la profundidad de campo que tiene, del campo que tiene. Añadir grano, bueno, veis que tiene distintas opciones. En ese apartado, aunque esto no creo que entre en el examen, pero es muy interesante que conozcáis que se puede mejorar mucho la apariencia visual, aquí veis un antes y un después, con post-procesos. 1569 02:00:02,670 --> 02:00:07,649 Es como hacer una corrección de color en DaVinci, como hacemos en otro de los módulos. 1570 02:00:08,510 --> 02:00:12,329 Sistema de partículas, que lo conozcáis, no creo que pregunte mucho de esto. 1571 02:00:14,210 --> 02:00:16,529 No creo que haya ninguna pregunta, que lo conozcáis y ya está. 1572 02:00:16,930 --> 02:00:19,229 Del sonido, pues lo que hemos hablado, que es un audio listener, 1573 02:00:19,829 --> 02:00:22,090 que más de uno no debería ver una escena activa a la vez, 1574 02:00:23,010 --> 02:00:26,529 que son los audio source, que es el audio clip, 1575 02:00:26,529 --> 02:00:31,510 la diferencia entre el play y el play one shot, no creo que haya mucho más. 1576 02:00:31,510 --> 02:00:35,229 optimización del juego 1577 02:00:35,229 --> 02:00:37,010 bueno, pues que sepáis que existen 1578 02:00:37,010 --> 02:00:38,949 las estadísticas, el profiler 1579 02:00:38,949 --> 02:00:40,710 no creo que pregunte mucho esto 1580 02:00:40,710 --> 02:00:42,470 las cualidades 1581 02:00:42,470 --> 02:00:44,229 las calidades con este 1582 02:00:44,229 --> 02:00:46,529 project settings quality, pues que se pueden 1583 02:00:46,529 --> 02:00:48,029 dar distintos niveles de acabado 1584 02:00:48,029 --> 02:00:50,649 e ir cambiando entre niveles, tanto por código 1585 02:00:50,649 --> 02:00:52,569 que de eso no se habla aquí, como nosotros 1586 02:00:52,569 --> 02:00:54,510 meternos en el juego y decir 1587 02:00:54,510 --> 02:00:56,390 si lo tenemos bien configurado 1588 02:00:56,390 --> 02:00:58,689 saber que hay distintos 1589 02:00:58,689 --> 02:00:59,609 niveles de calidad 1590 02:00:59,609 --> 02:01:02,109 que podemos ir añadiendo 1591 02:01:02,109 --> 02:01:06,329 y en cada uno añadir un asset de Render Pipeline 1592 02:01:06,329 --> 02:01:09,369 que lo que hace es guardar información 1593 02:01:09,369 --> 02:01:11,689 de cómo tienen los detalles las sombras 1594 02:01:11,689 --> 02:01:12,850 hasta dónde se pueden ver 1595 02:01:12,850 --> 02:01:15,050 y podemos ir cambiando entre unos y otros 1596 02:01:15,050 --> 02:01:18,069 simplemente que sepáis que existe 1597 02:01:18,069 --> 02:01:23,170 os dejo también más enlaces e información 1598 02:01:23,170 --> 02:01:25,649 compilar el juego, importante 1599 02:01:25,649 --> 02:01:26,850 de esto habrá alguna pregunta 1600 02:01:26,850 --> 02:01:51,789 Como, por ejemplo, si queremos exportar para web, pues ¿cuál es? Pues WebGL, que es el que hemos dicho antes. ¿Que queremos un ejecutable para PC? ¿Qué plataforma? Pues la de PC Mac. ¿Que queremos para Android? Pues para dispositivos móviles que no son de Mac, sino de Android. Pues plataforma de Android. ¿Que queremos para dispositivos móviles de Apple? iOS. Bueno, pues de esas cosas se hablan un poco aquí. 1601 02:01:51,789 --> 02:01:54,149 Es bastante importante 1602 02:01:54,149 --> 02:01:54,529 Pues eso 1603 02:01:54,529 --> 02:01:58,189 Saber un poco para qué es cada uno de estos módulos de exportación 1604 02:01:58,189 --> 02:01:59,729 Y que os suenen un poco 1605 02:01:59,729 --> 02:02:00,689 Estas opciones 1606 02:02:00,689 --> 02:02:04,250 Tampoco me voy a meter muchísimo 1607 02:02:04,250 --> 02:02:06,250 Pero alguna opción si puede ser 1608 02:02:06,250 --> 02:02:08,170 También que todo el build 1609 02:02:08,170 --> 02:02:09,670 Se fabrica desde los build settings 1610 02:02:09,670 --> 02:02:12,029 Que evidentemente habrá que tener las escenas 1611 02:02:12,029 --> 02:02:13,449 Ya bien configuradas y en el orden 1612 02:02:13,449 --> 02:02:16,090 La primera que se ejecute al arrancar el juego 1613 02:02:16,090 --> 02:02:17,489 Será la que esté en el 0 1614 02:02:17,489 --> 02:02:18,989 Vale, pues eso 1615 02:02:18,989 --> 02:02:20,729 Dispositivos móviles 1616 02:02:20,729 --> 02:02:49,130 Por lo mismo, si vamos a trabajar para móvil, hay que tener los software de desarrollo para esos dispositivos. Pues un poco que os suene esto a nivel teórico, sí puede entrar. El Device Simulator, dependiendo de la versión ya bien integrado o hay que instalar un paquete, lo pone aquí, sirve para, en este por ejemplo no va a estar, pero si yo abriera la versión 2022 que hemos tenido todo momento, 1617 02:02:49,130 --> 02:02:51,550 aquí en la pestaña de Game 1618 02:02:51,550 --> 02:02:53,630 hay una pestañita 1619 02:02:53,630 --> 02:02:55,310 que permite cambiar a Simulator 1620 02:02:55,310 --> 02:02:57,430 y lo que nos va a permitir es 1621 02:02:57,430 --> 02:02:59,930 que se vea ya dentro de un dispositivo 1622 02:02:59,930 --> 02:03:01,250 móvil concreto para ver 1623 02:03:01,250 --> 02:03:03,050 si se recorta o no, si se ve bien 1624 02:03:03,050 --> 02:03:04,010 sirve para 1625 02:03:04,010 --> 02:03:07,689 para tener como una 1626 02:03:07,689 --> 02:03:09,449 visualización, como se ve aquí 1627 02:03:09,449 --> 02:03:10,510 esto de Simulator 1628 02:03:10,510 --> 02:03:13,449 cuando instalas ese paquete en el 2020.347 1629 02:03:14,949 --> 02:03:15,689 que es el que usamos 1630 02:03:15,689 --> 02:03:16,550 o 48 1631 02:03:16,550 --> 02:03:18,710 bueno, pues en la versión última 1632 02:03:18,710 --> 02:03:21,329 ya viene instalado este paquete, ya ha dejado de estar en beta 1633 02:03:21,329 --> 02:03:23,510 y ya se puede usar 1634 02:03:23,510 --> 02:03:25,270 bueno, pues sirve, que sepáis que sirve 1635 02:03:25,270 --> 02:03:27,449 para ver en distintos dispositivos 1636 02:03:27,449 --> 02:03:29,170 aquí por ejemplo está el Asus ROG Phone 1637 02:03:29,170 --> 02:03:31,149 un teléfono que no conozco cuál es, pero si 1638 02:03:31,149 --> 02:03:33,270 desplegáis aquí vais a ver opciones 1639 02:03:33,270 --> 02:03:35,130 de iPhone, de tal, incluso se pueden 1640 02:03:35,130 --> 02:03:36,789 instalar más 1641 02:03:36,789 --> 02:03:38,890 modelos, por aquí lo tengo 1642 02:03:38,890 --> 02:03:41,170 Device Simulator Devices, con esto 1643 02:03:41,170 --> 02:03:42,770 podéis tener aún más dispositivos 1644 02:03:42,770 --> 02:03:45,470 para ver las proporciones y cómo resultaría 1645 02:03:45,470 --> 02:03:47,189 en el ordenador 1646 02:03:47,189 --> 02:03:50,670 en la preview que hagáis en el ordenador, cómo se vería en ese dispositivo. 1647 02:03:51,210 --> 02:03:57,550 Y luego está la otra que os he comentado, que es que si quisierais directamente tener en el dispositivo móvil ese juego 1648 02:03:57,550 --> 02:04:02,989 y si ya implementarais, esto es más avanzado, por ejemplo en ese curso de especialización que os hablaba antes, 1649 02:04:03,069 --> 02:04:07,789 se hablará más de esto, o si usáis el Input System, o bueno, la clase Input también se puede hacer, 1650 02:04:08,310 --> 02:04:13,590 pero podéis ya probar, incluso con los Input táctiles y viéndolo en el móvil que tengáis, 1651 02:04:13,590 --> 02:04:27,510 Si lo conectáis con un cable o bajáis esta aplicación para este dispositivo, para el móvil, y lo instaláis correctamente, lo que os pone aquí, podéis probar ya el juego sin tener que realizar todo el compilado. 1652 02:04:27,510 --> 02:04:48,670 Como pone por aquí, permite probar el proyecto directamente sin necesidad de tener que compilar un APK, que es como se explica antes, el paquete ejecutable, hay alguno más, pero el principal con el que se exporta, se compila para Android, con el Build and Run, con esa opción que tenemos en los Build Settings. 1653 02:04:48,670 --> 02:04:51,789 esta otra opción de VLAN RAN 1654 02:04:51,789 --> 02:04:54,130 en vez de hacer solo el ejecutable y exportarlo 1655 02:04:54,130 --> 02:04:55,550 para que lo podamos ya compartir 1656 02:04:55,550 --> 02:04:57,789 lo que hace es que básicamente 1657 02:04:57,789 --> 02:04:59,130 hace como un compilado 1658 02:04:59,130 --> 02:05:01,930 no final y lo ejecuta 1659 02:05:01,930 --> 02:05:03,890 en el dispositivo que le estamos indicando 1660 02:05:03,890 --> 02:05:05,770 por defecto lo hará en el ordenador 1661 02:05:05,770 --> 02:05:08,050 pero si configuramos el Unity Remote 1662 02:05:08,050 --> 02:05:09,770 lo hará en 1663 02:05:09,770 --> 02:05:11,949 la consola, vamos en la consola 1664 02:05:11,949 --> 02:05:13,149 no, en el dispositivo móvil 1665 02:05:13,149 --> 02:05:15,970 pues eso 1666 02:05:15,970 --> 02:05:17,930 es una forma rápida de hacer testeos 1667 02:05:17,930 --> 02:05:19,909 en dispositivos móviles. Pues es necesario 1668 02:05:19,909 --> 02:05:21,970 conocer que existe esta herramienta, por si la 1669 02:05:21,970 --> 02:05:23,930 tenéis que usar. Realidad virtual. 1670 02:05:24,149 --> 02:05:25,869 Muy importante. Y va a haber preguntas de qué es 1671 02:05:25,869 --> 02:05:28,109 cada una de estas tipologías 1672 02:05:28,109 --> 02:05:29,789 de realidades y 1673 02:05:29,789 --> 02:05:31,229 qué diferencian a una de otras. 1674 02:05:31,770 --> 02:05:33,930 Y un poco esta teoría 1675 02:05:33,930 --> 02:05:36,010 tenerla en cuenta. Más allá de eso, 1676 02:05:36,569 --> 02:05:37,989 de este apartado, no creo 1677 02:05:37,989 --> 02:05:38,789 que pregunte más. 1678 02:05:40,050 --> 02:05:41,930 ¿Qué es la realidad 1679 02:05:41,930 --> 02:05:43,930 virtual en contra 1680 02:05:43,930 --> 02:05:45,489 de la aumentada o la mixta? 1681 02:05:46,189 --> 02:05:47,890 Sí, eso es muy probable. 1682 02:05:47,930 --> 02:05:59,810 Porque es como algo transversal, por si hicieras cualquier proyecto que ya fuera, que no fuera un videojuego estándar, sino que fuera de los próximos ya niveles de realidad que ya están a la orden del día. 1683 02:06:00,850 --> 02:06:05,930 Yo os digo, de esto, en el curso más avanzado, pues se hablará bastante más. 1684 02:06:06,510 --> 02:06:13,590 Realidad aumentada, pues saber qué es, saber que existen estos paquetes, que os suenen, poco más. De esto no creo que haya mucho más. 1685 02:06:13,590 --> 02:06:15,550 gestión de sistemas de vídeo 1686 02:06:15,550 --> 02:06:17,649 se puede preguntar 1687 02:06:17,649 --> 02:06:19,670 por este método 1688 02:06:19,670 --> 02:06:21,750 cuáles son los usos que se podrían dar 1689 02:06:21,750 --> 02:06:23,930 por lo que en una aplicación 1690 02:06:23,930 --> 02:06:24,850 o videojuego 1691 02:06:24,850 --> 02:06:27,270 se necesitará 1692 02:06:27,270 --> 02:06:29,829 captar vídeo, sí que puede haber una pregunta 1693 02:06:29,829 --> 02:06:31,430 incluso de desarrollo de que es un código 1694 02:06:31,430 --> 02:06:33,010 visual como un QR 1695 02:06:33,010 --> 02:06:34,890 para que se usa, por qué es 1696 02:06:34,890 --> 02:06:37,449 pues un poco está apartado a nivel conceptual 1697 02:06:37,449 --> 02:06:39,489 no me extrañaría que hubiera alguna pregunta 1698 02:06:39,489 --> 02:06:42,090 de desarrollo, además creo que 1699 02:06:42,090 --> 02:06:42,789 es asequible 1700 02:06:42,789 --> 02:06:45,069 GPS, pues un poco lo mismo 1701 02:06:45,069 --> 02:06:47,170 que os suene para qué es, para qué se usa 1702 02:06:47,170 --> 02:06:49,189 no me voy a meter 1703 02:06:49,189 --> 02:06:51,090 en código, pero bueno, que sepáis 1704 02:06:51,090 --> 02:06:53,409 qué es y que se puede usar 1705 02:06:53,409 --> 02:06:55,329 incluso en nuestro Unity con nuestras aplicaciones 1706 02:06:55,329 --> 02:06:57,609 que ya cuentan con métodos 1707 02:06:57,609 --> 02:06:59,170 ¿vale? incluso los hay más modernos 1708 02:06:59,170 --> 02:07:00,930 y hay plugins del Asset Store 1709 02:07:00,930 --> 02:07:03,789 para gestión de geolocalización 1710 02:07:03,789 --> 02:07:05,149 mucho más potentes 1711 02:07:05,149 --> 02:07:07,170 pero bueno, que ya existen 1712 02:07:07,170 --> 02:07:09,029 ¿vale? no os pido que lo aprendáis 1713 02:07:09,029 --> 02:07:11,130 ni que lo pongáis en uso porque ya implica 1714 02:07:11,130 --> 02:07:13,229 tener un móvil, también que ese móvil 1715 02:07:13,229 --> 02:07:14,770 tenga ciertas 1716 02:07:14,770 --> 02:07:16,909 condiciones 1717 02:07:16,909 --> 02:07:19,270 dentro de las propiedades para poder 1718 02:07:19,270 --> 02:07:21,210 hacer testeos, entonces bueno, pero que sepáis 1719 02:07:21,210 --> 02:07:22,329 que esto existe y se puede 1720 02:07:22,329 --> 02:07:25,149 se puede usar con Unity 1721 02:07:25,149 --> 02:07:27,189 y luego de dispositivos 1722 02:07:27,189 --> 02:07:29,289 externos, de esto también dudo que os pregunte 1723 02:07:29,289 --> 02:07:30,470 nada, pero bueno, que sepáis 1724 02:07:30,470 --> 02:07:33,109 que Unity no solo se puede usar 1725 02:07:33,109 --> 02:07:35,189 para el mundo, digamos 1726 02:07:35,189 --> 02:07:36,930 virtual o videojuegos 1727 02:07:36,930 --> 02:07:38,630 digo, en el mundo digital 1728 02:07:38,630 --> 02:07:41,010 también se puede conectar para que 1729 02:07:41,010 --> 02:07:54,029 Por ejemplo, en un juego que estemos, por ejemplo, imaginaos que vamos a unas recreativas y hay un juego que cuando vayamos atravesando puertas en el juego que se encienda una luz en la cabina, ¿no? 1730 02:07:54,310 --> 02:08:08,130 Sabéis que estas recreativas a veces tienen como apariencia de Jurassic Park y es una furgoneta de Jurassic Park y que, yo que sé, a lo mejor cuando atravieses cierta puerta se encienda una luz de la parte superior, fuera de la pantalla. 1731 02:08:08,130 --> 02:08:31,710 Bueno, pues con Arduino, por ejemplo, se puede ir conectando a través de Unity. Cuando onTrigger enter esta puerta, te comunicas, abres el puerto de comunicación con la placa base de Arduino, o hay más tecnologías, pero bueno, Arduino es como la que más se usa a nivel no profesional dedicado a que han hecho un sistema, es bastante versátil, pues es abrir el puerto y que se encienda una luz. 1732 02:08:31,710 --> 02:08:47,029 Entonces habrá que programar para que esa placa base reciba la señal de que tiene que hacer algo y habrá otro código, que evidentemente aquí ya no nos vamos a meter, solo sé un poco la introducción y si queréis aprender más os dejo los recursos, pero que se puede hacer. 1733 02:08:47,029 --> 02:09:12,630 Es decir, se puede comunicar Arduino, el mundo digital, perdón, Unity, el mundo digital con Arduino que gestiona dispositivos físicos, pues eso, una luz que empiece a girar un rotor, que se mueva un personaje que está motorizado, yo qué sé, ya ahí los límites son bastante más avanzados, pero existe y bueno, y aquí digamos que se deja algo que podáis ver, ¿no? 1734 02:09:12,630 --> 02:09:29,510 Es muy interesante. Yo tampoco me considero experto, por supuesto, soy iniciadísimo, pero bueno, un poco sí que había que introducir este aspecto. Pero de cara al examen no creo que haya nada de esto, ¿vale? Porque, bueno, demasiadas cosas hay y tampoco es lo principal. 1735 02:09:29,510 --> 02:09:54,670 Y ya os digo que si os metéis en algo de robótica o ese curso de especialización, estos apartados los veréis ampliados. Mi objetivo, espero haberlo cumplido, es dentro también del currículo que tenemos que dar, hacer una introducción barra que ya podáis hacer vuestros propios prototipos y algunos proyectos, 1736 02:09:54,670 --> 02:09:56,409 pues que cubra un poco todo 1737 02:09:56,409 --> 02:09:58,289 lo que es el ámbito de 1738 02:09:58,289 --> 02:10:00,329 un motor de videojuegos 1739 02:10:00,329 --> 02:10:01,109 en este caso Unity 1740 02:10:01,109 --> 02:10:04,210 y un poco también ya introduciros 1741 02:10:04,210 --> 02:10:05,510 y que seáis 1742 02:10:05,510 --> 02:10:08,489 digamos autónomos incluso 1743 02:10:08,489 --> 02:10:10,329 para ya programar 1744 02:10:10,329 --> 02:10:12,489 porque uséis el que uséis 1745 02:10:12,489 --> 02:10:14,529 el motor de render, aunque intentan 1746 02:10:14,529 --> 02:10:15,770 dar métodos 1747 02:10:15,770 --> 02:10:18,149 más visuales en base a nodos y tal, al final 1748 02:10:18,149 --> 02:10:19,489 hay que saber programar porque 1749 02:10:19,489 --> 02:10:22,449 es como nos 1750 02:10:22,449 --> 02:10:24,210 comunicamos y podemos hacer que 1751 02:10:24,210 --> 02:10:25,149 algo sea interactivo. 1752 02:10:27,590 --> 02:10:28,029 Pues 1753 02:10:28,029 --> 02:10:29,949 por mi parte hasta aquí es lo que quería. 1754 02:10:30,109 --> 02:10:31,770 Si tenéis, revisad. 1755 02:10:32,409 --> 02:10:34,470 Espero haberos dado trucos, 1756 02:10:34,850 --> 02:10:36,109 haber remarcado zonas, 1757 02:10:36,270 --> 02:10:38,170 haber descartado a lo mejor otras menos importantes. 1758 02:10:38,529 --> 02:10:39,869 Espero que os haya servido esta tutoría. 1759 02:10:40,909 --> 02:10:42,229 ¿Tenéis alguna duda? ¿Algo que queráis 1760 02:10:42,229 --> 02:10:47,569 que veamos? Así de cierre 1761 02:10:47,569 --> 02:10:49,710 también, ya os digo, si tenéis 1762 02:10:49,710 --> 02:10:50,789 dudas, tenéis los foros. 1763 02:10:52,050 --> 02:10:53,189 Esto no cierra nada. 1764 02:10:54,270 --> 02:10:55,750 Incluso si hay muchas dudas, 1765 02:10:55,750 --> 02:10:57,590 muy difíciles de responder, yo que sé 1766 02:10:57,590 --> 02:10:59,409 pues se puede hacer alguna 1767 02:10:59,409 --> 02:11:01,909 tutoría breve, es verdad que ahora empezamos 1768 02:11:01,909 --> 02:11:03,729 también con los proyectos finales 1769 02:11:03,729 --> 02:11:05,949 con la organización de SANS y tal 1770 02:11:05,949 --> 02:11:07,550 vamos a estar un poco liadetes 1771 02:11:07,550 --> 02:11:10,170 pero bueno, que eso, como siempre 1772 02:11:10,170 --> 02:11:12,170 tenéis forma de plantearnos 1773 02:11:12,170 --> 02:11:12,750 las dudas