1 00:00:02,569 --> 00:00:05,969 Vale, mira, tengo las siguientes dudas. En primer lugar, el tema es el... 2 00:00:06,750 --> 00:00:11,390 Bien, he conseguido hacer sobre el juego anterior, sobre el de las plataformas de la bola, 3 00:00:12,109 --> 00:00:16,710 he hecho una pantalla de inicio, sobre la pantalla de inicio he puesto varias opciones, 4 00:00:16,929 --> 00:00:20,230 que es la... bueno, le he metido la música, he puesto varias opciones, 5 00:00:20,449 --> 00:00:25,329 cuando pinchas en opciones, a través de la consola, pues... 6 00:00:25,329 --> 00:00:30,750 Ah, bueno, he puesto un kit, para que me mande un kit desde la siguiente pantalla 7 00:00:30,750 --> 00:00:33,509 Y me lo muestra en la pantalla de la consola 8 00:00:33,509 --> 00:00:34,789 En la consola solamente 9 00:00:34,789 --> 00:00:37,049 En vez del proyecto en consola 10 00:00:37,049 --> 00:00:38,109 En donde está 11 00:00:38,109 --> 00:00:41,250 Entonces yo entiendo que ahí se tiene que quedar 12 00:00:41,250 --> 00:00:42,229 Esa parte se queda ahí 13 00:00:42,229 --> 00:00:45,509 Luego, el tema de los corazones 14 00:00:45,509 --> 00:00:47,170 El quitar las vidas es lo que peor 15 00:00:47,170 --> 00:00:48,729 Vamos, que no consigo hacerlo 16 00:00:48,729 --> 00:00:51,189 He metido el screen, me he estado viendo varias veces los tutoriales 17 00:00:51,189 --> 00:00:53,909 Que vienen ahí en la aplicación 18 00:00:53,909 --> 00:00:55,829 Y ya está, sí que es verdad que meto los sprites 19 00:00:55,829 --> 00:00:57,350 Lo divido, lo corto 20 00:00:57,350 --> 00:00:58,829 Los corazones en tres partes 21 00:00:58,829 --> 00:01:03,590 Luego vinculo, hago los scripts necesarios para vincularlo 22 00:01:03,590 --> 00:01:06,109 Pero no consigo que se me quiten los corazones 23 00:01:06,109 --> 00:01:09,689 Cada vez que la bola, por ejemplo, cae a través de un trigger 24 00:01:09,689 --> 00:01:12,890 Que cae en la parte de abajo, pues no consigo hacer que se quite 25 00:01:12,890 --> 00:01:17,450 Y luego tenía una duda porque quería hacer un slider 26 00:01:17,450 --> 00:01:21,209 Relacionado con la música, para subir y bajar el volumen 27 00:01:21,209 --> 00:01:26,510 Entonces no sé si es, hay que hacerlo en la pantalla de inicio 28 00:01:26,510 --> 00:01:29,129 o que se pueda bajar, subir y bajar en todas las pantallas 29 00:01:29,129 --> 00:01:30,549 vale, bueno, en primer lugar 30 00:01:30,549 --> 00:01:32,810 en ningún caso se hablaba de meter música 31 00:01:32,810 --> 00:01:34,549 porque la música se da en un tema posterior 32 00:01:34,549 --> 00:01:36,790 entonces, claro 33 00:01:36,790 --> 00:01:38,769 el slider se debía usar para el nivel 34 00:01:38,769 --> 00:01:39,829 de dificultad del juego 35 00:01:39,829 --> 00:01:42,590 vale, entonces 36 00:01:42,590 --> 00:01:44,849 lo del slider, si te parece 37 00:01:44,849 --> 00:01:46,489 te lo explico, relacionado con lo que 38 00:01:46,489 --> 00:01:47,650 se debería hacer en la práctica 39 00:01:47,650 --> 00:01:50,670 y posteriormente realmente es 40 00:01:50,670 --> 00:01:52,689 convertirlo a que el volumen 41 00:01:52,689 --> 00:01:54,510 del audio se regule con eso 42 00:01:54,510 --> 00:01:56,489 pero bueno, vale 43 00:01:56,489 --> 00:01:58,769 Bueno, te hago una pregunta un poco obvia 44 00:01:58,769 --> 00:02:01,069 No me puedes compartir el proyecto para que lo veamos 45 00:02:01,069 --> 00:02:01,829 Junto, ¿verdad? 46 00:02:03,049 --> 00:02:04,989 ¿Sabes lo que pasa? Bueno, dentro de un rato sí 47 00:02:04,989 --> 00:02:06,629 Porque voy a coger el tren para el aeropuerto 48 00:02:06,629 --> 00:02:08,509 Y cuando esté en el aeropuerto ahí me voy a conectar con el portal 49 00:02:08,509 --> 00:02:11,169 Que me lo he traído, para poder conectarlo precisamente 50 00:02:11,169 --> 00:02:12,050 Pero que me pillase 51 00:02:12,050 --> 00:02:15,330 A lo mejor en 20 minutos 52 00:02:15,330 --> 00:02:15,969 Media hora sí 53 00:02:15,969 --> 00:02:18,569 Aún así te puedo ir hablando 54 00:02:18,569 --> 00:02:20,669 Digo, que vas a estar escuchándome 55 00:02:20,669 --> 00:02:22,270 Sí, sí, estoy pendiente, estoy con el móvil pendiente 56 00:02:22,270 --> 00:02:24,810 Vale, sí, lo digo porque voy a ir como preguntándote 57 00:02:24,810 --> 00:02:26,830 cosas de vez en cuando, porque claro, yo sin verlo 58 00:02:26,830 --> 00:02:28,650 me imagino lo que me está contando, 59 00:02:28,729 --> 00:02:29,610 pero es complicado, vaya. 60 00:02:30,629 --> 00:02:32,009 Entonces, claro, 61 00:02:33,229 --> 00:02:34,849 volví. Yo me voy a ceñir un poco 62 00:02:34,849 --> 00:02:36,889 a lo que es el enunciado del tema. Por ejemplo, 63 00:02:36,990 --> 00:02:38,389 lo del volumen, en el último tema, 64 00:02:38,650 --> 00:02:40,750 se va a ver clarísimamente, y si entendéis cómo hacer ese 65 00:02:40,750 --> 00:02:42,569 slider con los niveles, 66 00:02:42,669 --> 00:02:44,530 de hecho, para la música es más sencillo, 67 00:02:44,610 --> 00:02:46,530 porque está comunicado. 68 00:02:46,530 --> 00:02:48,129 Si no, más adelante ya lo veremos. 69 00:02:50,030 --> 00:02:52,530 Sí, entiendo que más o menos lo que está 70 00:02:52,530 --> 00:02:54,030 recreando es una ventana como esta, 71 00:02:54,030 --> 00:02:55,669 En la que si das 72 00:02:55,669 --> 00:02:57,629 Bueno, lo vimos en la última tutoría 73 00:02:57,629 --> 00:02:59,509 De hecho, que si le das a jugar lanzaría el juego 74 00:02:59,509 --> 00:03:01,610 No le doy, paso a la siguiente 75 00:03:01,610 --> 00:03:03,210 En config tenemos este slider 76 00:03:03,210 --> 00:03:05,810 Para el nivel de dificultad que ves que hay cuatro 77 00:03:05,810 --> 00:03:08,069 Perdona, no puedo ver tu pantalla 78 00:03:08,069 --> 00:03:08,789 No puedo ver ahora 79 00:03:08,789 --> 00:03:11,530 Perdona, perdona, claro, es que la estaba compartiendo 80 00:03:11,530 --> 00:03:11,750 Pero 81 00:03:11,750 --> 00:03:21,169 Sí, ahora sí 82 00:03:21,169 --> 00:03:22,210 Sí, sí, sí 83 00:03:22,210 --> 00:03:26,550 Arranco el juego, ¿vale? 84 00:03:26,629 --> 00:03:27,990 Y entonces la primera pantalla 85 00:03:27,990 --> 00:03:29,409 Era esta que en principio 86 00:03:29,409 --> 00:03:32,930 se pedía que se configuraran tres posibilidades, tres posibles botones. 87 00:03:33,389 --> 00:03:37,509 Uno es el de jugar, que no le doy, para lanzar el juego. 88 00:03:39,449 --> 00:03:43,069 Voy a jugar un poco para que se vean estas tres vidas. 89 00:03:43,669 --> 00:03:46,669 Y fíjate que yo en el material, por lo que te he entendido, 90 00:03:46,729 --> 00:03:51,169 en el material que proporcionaba para la práctica, había cuatro... 91 00:03:51,169 --> 00:03:53,409 Bueno, no, de hecho había tres imágenes diferentes 92 00:03:53,409 --> 00:03:56,349 que corresponden con las que estamos viendo aquí, 93 00:03:56,449 --> 00:03:59,250 es decir, con las que ya están como sombreadas, las vidas que se han muerto. 94 00:03:59,409 --> 00:04:22,550 No hay que trocearlas, en realidad sustituir, según el momento en el que nos encontremos, cada una de las imágenes, ¿vale? Ahora lo vemos, pero no había que trocear nada. Sí que es verdad que en el vídeo, si no me equivoco y estás haciendo referencia al de Álvaro, se juega con él con un solo corazón que se repite y se va, digamos, cambiando la anchura de los corazones porque se va tileando, ¿no? Se va como repitiendo. 95 00:04:22,550 --> 00:04:24,769 Eso es, se mete 96 00:04:24,769 --> 00:04:26,709 lo corta, lo convierte 97 00:04:26,709 --> 00:04:28,029 primero en un sprite 98 00:04:28,029 --> 00:04:30,589 que te diga cómo se tiene que hacer, luego lo corta 99 00:04:30,589 --> 00:04:32,629 y luego ya a partir de ahí te lo va colocando en la pantalla 100 00:04:32,629 --> 00:04:34,649 Claro, la cosa es que yo 101 00:04:34,649 --> 00:04:36,610 en esta tarea, si te fijas, el enfoque 102 00:04:36,610 --> 00:04:38,410 es un poco diferente 103 00:04:38,410 --> 00:04:39,730 y más sencillo, ¿no? 104 00:04:40,110 --> 00:04:42,730 Porque, bueno, voy por partes 105 00:04:42,730 --> 00:04:44,629 ¿vale? Para hacer ese HUD 106 00:04:44,629 --> 00:04:46,569 ese, nunca sé si se dice 107 00:04:46,569 --> 00:04:48,269 HUD, que se 108 00:04:48,269 --> 00:04:49,930 pone como un overlay 109 00:04:49,930 --> 00:04:52,449 ¿vale? Como un overlay encima del juego 110 00:04:52,449 --> 00:04:53,850 en los niveles que queramos que estén 111 00:04:53,850 --> 00:04:56,170 lo primero que se sugiere en el enunciado es 112 00:04:56,170 --> 00:04:57,689 que yo he generado un prefab 113 00:04:57,689 --> 00:04:59,949 que luego podré ir arrastrando a cada nivel 114 00:04:59,949 --> 00:05:01,689 con ya todos los elementos 115 00:05:01,689 --> 00:05:03,649 dado que todos los niveles jugables van a tener 116 00:05:03,649 --> 00:05:06,029 las mismas datos 117 00:05:06,029 --> 00:05:07,670 de prefab, pues ya aprovecho 118 00:05:07,670 --> 00:05:09,410 y que ya esté preconfigurado 119 00:05:09,410 --> 00:05:11,490 incluso con algún script ya 120 00:05:11,490 --> 00:05:14,009 los diferentes elementos 121 00:05:14,009 --> 00:05:16,170 lo que iremos jugando a través del código 122 00:05:16,170 --> 00:05:17,810 es que ponen 123 00:05:17,810 --> 00:05:19,050 el nombre del jugador 124 00:05:19,050 --> 00:05:20,310 cuantos 125 00:05:20,310 --> 00:05:23,889 Bueno, pues cuántos corazones 126 00:05:23,889 --> 00:05:24,829 Mejor dicho aquí 127 00:05:24,829 --> 00:05:27,189 Cuántas vidas nos quedan, ¿vale? 128 00:05:27,649 --> 00:05:29,550 En este caso, básicamente eso 129 00:05:29,550 --> 00:05:32,410 Entonces, por ejemplo, en el tema de las vidas 130 00:05:32,410 --> 00:05:34,529 Voy a ese caso concreto 131 00:05:34,529 --> 00:05:35,689 Está 132 00:05:35,689 --> 00:05:38,170 La propia imagen que se está cargando 133 00:05:38,170 --> 00:05:39,449 Que aquí tenemos la de Livestress 134 00:05:39,449 --> 00:05:42,430 Pero lo que te comentaba, en el material que os pasaba 135 00:05:42,430 --> 00:05:43,170 A ver 136 00:05:43,170 --> 00:05:44,509 De hecho 137 00:05:44,509 --> 00:05:47,389 Sí, vienen diferentes 138 00:05:47,389 --> 00:05:49,930 Es decir, que no 139 00:05:49,930 --> 00:06:00,470 No, digo porque he entendido que tú lo que has empezado a hacer, que se podría también de otros modos, pero en este caso sería menos operativo y de hecho no es el modo que yo más sugeriría para algo así con tan pocas vidas, ¿vale? 140 00:06:01,370 --> 00:06:17,470 No hay que trocear nada, ¿vale? Porque lo que habría que hacer es que la imagen que se está viendo aquí en el HUD, en este componente imagen, que empieza por defecto como el de las tres vidas, según vayan sucediendo cosas, pues se cargue la imagen de dos vidas, la de una vida, ¿vale? 141 00:06:18,189 --> 00:06:18,910 Sin una duda. 142 00:06:19,129 --> 00:06:19,250 Sí. 143 00:06:19,670 --> 00:06:22,209 Es que lo he intentado, claro, en el script he metido un array, ¿no? 144 00:06:22,209 --> 00:06:24,670 Y en el array he metido cada uno de estos tres, de estos cuatro. 145 00:06:25,350 --> 00:06:25,670 Vale. 146 00:06:25,730 --> 00:06:28,449 Metiendo de cero a cero, uno, dos y tres. 147 00:06:28,589 --> 00:06:29,990 Entonces, lo he intentado, pero es que no me sale. 148 00:06:30,810 --> 00:06:30,910 Vale. 149 00:06:31,970 --> 00:06:32,709 Sí, sí, ¿no? 150 00:06:32,790 --> 00:06:34,870 Bueno, que no pasa nada, para eso de la tutoría. 151 00:06:35,370 --> 00:06:40,569 Vale, algo importante es que siempre, esto no es una regla 100%, 152 00:06:40,569 --> 00:06:44,129 pero normalmente cuando creemos un canvas con diferentes cosas dentro, 153 00:06:44,569 --> 00:06:47,410 si queremos manipular la información que hay dentro, ¿vale? 154 00:06:47,410 --> 00:06:54,189 Los aspectos de los distintos inputs, imágenes, etcétera, se debería unificar normalmente en un... 155 00:06:54,189 --> 00:06:58,269 Aquí es en el HUD, pero, por ejemplo, si voy al menú de configuraciones que tenía tres botones, 156 00:06:58,709 --> 00:07:02,769 ese canvas también tiene, digamos, la configuración de las acciones de los botones ahí. 157 00:07:03,290 --> 00:07:04,490 Ahora, de hecho, iremos. 158 00:07:05,050 --> 00:07:06,629 Me voy a centrar en esta duda concreta. 159 00:07:06,769 --> 00:07:13,490 Si te fijas, aquí lo que hay en este canvas es, por un lado, una referencia, ¿vale? 160 00:07:13,490 --> 00:07:16,389 Y me voy a meter ya en el script también para tenerlo aquí abierto. 161 00:07:17,410 --> 00:07:18,910 ¿vale? Estás en el canvas 162 00:07:18,910 --> 00:07:20,990 del menú de inicio, ¿no? Por lo que veo. 163 00:07:20,990 --> 00:07:22,589 No, en el canvas del HUD 164 00:07:22,589 --> 00:07:24,870 mientras se juega, que es un 165 00:07:24,870 --> 00:07:26,529 prefab que yo ir arrastrando, 166 00:07:26,850 --> 00:07:28,810 ¿vale? Estoy yendo, 167 00:07:28,910 --> 00:07:30,889 digamos, primero a por lo del HUD 168 00:07:30,889 --> 00:07:32,889 porque es como una duda más concreta 169 00:07:32,889 --> 00:07:34,569 que otras que me has hecho. Entonces, 170 00:07:34,949 --> 00:07:36,949 para atajar esta. Yo cuando voy abriendo 171 00:07:36,949 --> 00:07:38,689 los distintos niveles, 172 00:07:39,350 --> 00:07:40,870 lo que he hecho, ¿vale? Es 173 00:07:40,870 --> 00:07:42,949 arrastrar un prefab que es 174 00:07:42,949 --> 00:07:44,910 ese HUD. Esto, ¿vale? Lo voy a volver a 175 00:07:44,910 --> 00:07:46,949 arrastrar. En cada nivel puedo 176 00:07:46,949 --> 00:07:48,629 ir arrastrando ya un prefab que he hecho 177 00:07:48,629 --> 00:07:50,629 es decir, ese prefab es el que 178 00:07:50,629 --> 00:07:53,029 me va a aportar lo que es 179 00:07:53,029 --> 00:07:54,689 este canvas que se va a sobreponer 180 00:07:54,689 --> 00:07:56,430 sobre los niveles de juego 181 00:07:56,430 --> 00:07:59,069 no en el menú inicial 182 00:07:59,069 --> 00:08:00,970 y en el de configuración no, porque ahí no 183 00:08:00,970 --> 00:08:03,110 tenemos necesidad de 184 00:08:03,110 --> 00:08:04,889 feedback de las vidas que nos quedan 185 00:08:04,889 --> 00:08:06,649 al menos tal y como está planteado este juego 186 00:08:06,649 --> 00:08:08,689 pero luego en cada nivel jugable sí 187 00:08:08,689 --> 00:08:10,810 vale, entonces entiendo que 188 00:08:10,810 --> 00:08:13,029 lo que has hecho es un canvas 189 00:08:13,029 --> 00:08:15,089 sobre por ejemplo el de la escena número 1 190 00:08:15,089 --> 00:08:17,069 has hecho un prefab y ese lo has arrastrado 191 00:08:17,069 --> 00:08:18,670 a cada uno de los niveles que vas a ir a jugar 192 00:08:18,670 --> 00:08:20,629 Mira, yo este es el nivel 1 193 00:08:20,629 --> 00:08:22,569 y si pongo el nivel 2 194 00:08:22,569 --> 00:08:24,689 pues ese HUD lo he arrastrado aquí 195 00:08:24,689 --> 00:08:27,269 y el canvas está aquí y yo lo que hice 196 00:08:27,269 --> 00:08:29,050 para guardarlo como un prefab fue poner 197 00:08:29,050 --> 00:08:30,889 un parent, un empty 198 00:08:30,889 --> 00:08:32,970 que se llamara HUD y dentro está todo 199 00:08:32,970 --> 00:08:34,909 lo del canvas, incluido el event system 200 00:08:34,909 --> 00:08:37,129 que tiene que estar siempre que hay un canvas 201 00:08:37,129 --> 00:08:39,190 tiene que haber como mínimo un event system 202 00:08:39,190 --> 00:08:40,889 en esa escena, ¿vale? Entonces 203 00:08:40,889 --> 00:08:42,830 eso lo bueno que tiene es 204 00:08:42,830 --> 00:08:44,889 que en realidad nosotros 205 00:08:44,889 --> 00:08:47,049 vamos a ir jugando con este 206 00:08:47,049 --> 00:08:48,889 HUD según el nivel, pero ya está 207 00:08:48,889 --> 00:08:50,990 configurado siempre el mismo para arrastrarlo a todos 208 00:08:50,990 --> 00:08:52,409 los niveles, ¿vale? 209 00:08:52,990 --> 00:08:55,029 Entonces, ¿qué 210 00:08:55,029 --> 00:08:56,950 tiene ese canvas? Pues lo que he dicho, 211 00:08:57,350 --> 00:08:59,129 un campo de texto 212 00:08:59,129 --> 00:09:01,029 que se irá rellenando con 213 00:09:01,029 --> 00:09:03,110 el texto que nosotros vayamos diciendo, por defecto 214 00:09:03,110 --> 00:09:05,269 pone player, ¿vale? Porque es lo que he puesto en el componente 215 00:09:05,269 --> 00:09:07,250 de texto directamente y de momento 216 00:09:07,250 --> 00:09:09,389 no se cambia, pero por código lo podremos 217 00:09:09,389 --> 00:09:11,389 cambiar, está ahí preparado. Y luego 218 00:09:11,389 --> 00:09:13,169 hay una imagen, ¿vale? Que 219 00:09:13,169 --> 00:09:19,309 se ha situado, se ha ubicado en esta esquina superior derecha con, en este caso, a nivel 220 00:09:19,309 --> 00:09:24,309 orientativo, vamos, a nivel que es como vamos a empezar el juego, las tres vidas, con esa 221 00:09:24,309 --> 00:09:29,929 imagen, que es la que se está visualizando en este área, ¿vale? Que cuando vamos al 222 00:09:29,929 --> 00:09:36,909 canvas, pues ahí está ese área de la imagen, ¿no? Ahí, a ver, me voy para atrás, ¿vale? 223 00:09:36,909 --> 00:09:53,250 Ahí, epa, no quiere, ahí, ¿vale? Ahí tengo preparada esa imagen, ¿vale? Entonces, lo que yo he configurado directamente y voy dentro del prefab, ¿vale? Doble clic, a ver, en el prefab, doble clic, para que veas que coincide con lo que te estoy contando, ¿vale? 224 00:09:53,250 --> 00:10:07,929 Entonces, yo ya en ese canvas, cada vez que meta este prefab, aparte en el canvas ya hay lo que yo he llamado un script llamado hood manager, un script como otro cualquiera, vaya, para que veas, está aquí, el hood manager, ¿vale? 225 00:10:08,009 --> 00:10:09,190 Que yo lo he arrastrado al canvas. 226 00:10:09,549 --> 00:10:11,009 ¿Y eso qué es lo que nos va a permitir? 227 00:10:11,950 --> 00:10:18,690 Tener más o menos centralizado todos los cambios o manipulaciones que hagamos dentro de ese canvas y los distintos elementos que tengamos, ¿vale? 228 00:10:18,690 --> 00:10:38,450 Que aquí son uno de tipo texto y otro de tipo imágenes, pero en el menú configuración será uno tipo input de texto, ¿vale? De entrada de texto y otro de slider, ¿vale? Pero siempre van a estar dentro de este área que es el canvas, digamos, que marca el área de visualización de los elementos que vayamos introduciendo dentro, ¿vale? 229 00:10:38,450 --> 00:10:41,289 ¿Qué es lo que he hecho? Pensando en 230 00:10:41,289 --> 00:10:43,470 Mismamente lo que tú has planteado 231 00:10:43,470 --> 00:10:45,429 Es, vale, como tengo varias imágenes 232 00:10:45,429 --> 00:10:47,370 Con los corazones según las vidas que me queden 233 00:10:47,370 --> 00:10:49,029 Voy a hacer un array 234 00:10:49,029 --> 00:10:51,190 ¿Vale? ¿Y qué más cosas? 235 00:10:51,289 --> 00:10:53,289 Yo, aquí es donde hay que irse planteando 236 00:10:53,289 --> 00:10:55,210 Y ahora lo metemos por código, aquí ya está hecho 237 00:10:55,210 --> 00:10:57,070 Pero es, yo en algún momento 238 00:10:57,070 --> 00:10:58,669 Voy a querer manipular 239 00:10:58,669 --> 00:11:01,629 El GameObject que tiene el componente 240 00:11:01,629 --> 00:11:03,669 Texto, pues yo ya lo preparo 241 00:11:03,669 --> 00:11:05,570 Mediante un 242 00:11:05,570 --> 00:11:07,409 SerializeField o mediante un public 243 00:11:07,409 --> 00:11:32,690 Ahora lo vemos en código. Una referencia a este texto que yo siempre podré cambiar por código. Es decir, que yo mediante código pueda entrar aquí, decir player y ponga Javi. Y ves que aquí ya se ve, se va actualizando. Lo he hecho ahora mediante el inspector, pero ya haciendo accesible estas áreas, estos componentes, puedo ir manipulándolo. 244 00:11:32,690 --> 00:11:53,909 Igual he hecho con, digamos, la referencia, que esto es importante y puede que sea de hecho lo que te falte, la referencia al componente imagen, porque cuando cambiemos este componente imagen es cuando le diremos, oye, lo que tienes que cargar en este área que hay aquí es la imagen lives 2 o lives 1. 245 00:11:53,909 --> 00:11:57,730 Entonces en algún momento vamos a necesitar referencia a esa imagen 246 00:11:57,730 --> 00:12:01,090 Y luego hay otro preparado que esté menos importante 247 00:12:01,090 --> 00:12:03,750 Que es uno de la bola de cada nivel 248 00:12:03,750 --> 00:12:06,950 En cada nivel habrá un personaje al que vamos a influir 249 00:12:06,950 --> 00:12:09,730 Según lo que guardemos en el nivel de dificultad 250 00:12:09,730 --> 00:12:12,710 En menú configuración, esto ya es un poco más peleagudo 251 00:12:12,710 --> 00:12:14,269 No sé lo que me voy a centrar ahora 252 00:12:14,269 --> 00:12:16,529 Pues que esa pelota a través del código 253 00:12:16,529 --> 00:12:18,190 Y habría que arrastrar en cada nivel 254 00:12:18,190 --> 00:12:20,490 Luego habrá que arrastrar la pelota de ese nivel 255 00:12:20,490 --> 00:12:23,490 Influimos en cosas como el peso de la masa 256 00:12:23,490 --> 00:12:27,370 o la resistencia al aire que tiene su Rigidbody, ¿vale? 257 00:12:27,750 --> 00:12:32,409 Esto te lo adelanto para enseñártelo aquí ahora a nivel de código, ¿vale? 258 00:12:32,649 --> 00:12:33,370 Y empezamos. 259 00:12:33,690 --> 00:12:34,190 ¿Cómo es? 260 00:12:34,769 --> 00:12:38,950 Porque creo que además es el punto menos complejo para mostrar esto, 261 00:12:39,009 --> 00:12:41,769 que en el menú de configuración igual es un poco más... 262 00:12:41,769 --> 00:12:43,830 Hay que dar más piruetas, que en realidad es lo mismo, 263 00:12:44,350 --> 00:12:47,370 pero bueno, vamos a ir empezando aquí. 264 00:12:47,370 --> 00:12:53,269 Si te fijas, los cuatro campos que yo ya he preparado en este prefab 265 00:12:53,269 --> 00:12:55,889 del hud, el username, el lives array 266 00:12:55,889 --> 00:12:57,110 el lives bola 267 00:12:57,110 --> 00:12:59,470 yo ya los he preparado como cuatro variables 268 00:12:59,470 --> 00:13:01,730 que son accesibles 269 00:13:01,730 --> 00:13:03,230 desde el editor con esta serie de files 270 00:13:03,230 --> 00:13:05,450 son privadas pero accesibles 271 00:13:05,450 --> 00:13:07,309 desde el editor, esto ya lo hemos hablado varias veces 272 00:13:07,309 --> 00:13:09,649 ¿esto qué significa? que si yo voy a cualquiera 273 00:13:09,649 --> 00:13:11,629 de los niveles y arrastro 274 00:13:11,629 --> 00:13:13,629 al final yo 275 00:13:13,629 --> 00:13:15,710 voy a tener estas áreas 276 00:13:15,710 --> 00:13:17,450 y ves que en negrita está 277 00:13:17,450 --> 00:13:18,889 este de bola porque es el único 278 00:13:18,889 --> 00:13:21,210 digamos que yo he tenido que arrastrar la bola aquí 279 00:13:21,210 --> 00:13:23,950 porque el resto, como siempre van 280 00:13:23,950 --> 00:13:26,129 es decir, es el único elemento que no pertenece al canvas 281 00:13:26,129 --> 00:13:28,009 como el resto 282 00:13:28,009 --> 00:13:29,929 de elementos de la imagen 283 00:13:29,929 --> 00:13:31,970 y de la entrada de texto, si van con el canvas 284 00:13:31,970 --> 00:13:33,990 ya lo que se hizo es, en el propio 285 00:13:33,990 --> 00:13:34,429 prefab 286 00:13:34,429 --> 00:13:38,149 prepararlo, es decir, ya están asociados 287 00:13:38,149 --> 00:13:39,570 el único que está vacío es el de la bola 288 00:13:39,570 --> 00:13:40,350 ¿vale? 289 00:13:41,649 --> 00:13:43,850 entonces, ahí que es lo que se ha hecho, preparar 290 00:13:43,850 --> 00:13:45,850 digamos todos los ingredientes que vamos a jugar 291 00:13:45,850 --> 00:13:47,029 posteriormente 292 00:13:47,029 --> 00:13:50,169 ¿vale? hasta aquí me vas siguiendo 293 00:13:50,169 --> 00:13:52,129 más o menos 294 00:13:52,129 --> 00:13:52,730 un poco así 295 00:13:52,730 --> 00:13:53,570 lo veo un poco complicado 296 00:13:53,570 --> 00:13:53,850 pero 297 00:13:53,850 --> 00:13:55,090 vale 298 00:13:55,090 --> 00:13:55,730 pero vamos 299 00:13:55,730 --> 00:13:56,070 más o menos 300 00:13:56,070 --> 00:13:56,289 sí 301 00:13:56,289 --> 00:13:57,730 en resumen 302 00:13:57,730 --> 00:13:58,889 la idea sí 303 00:13:58,889 --> 00:13:59,509 la idea sí 304 00:13:59,509 --> 00:13:59,870 la cojo 305 00:13:59,870 --> 00:14:00,049 pero 306 00:14:00,049 --> 00:14:00,730 vale 307 00:14:00,730 --> 00:14:04,470 como conclusión 308 00:14:04,470 --> 00:14:04,870 para seguir 309 00:14:04,870 --> 00:14:05,409 en resumen 310 00:14:05,409 --> 00:14:05,970 lo que he hecho 311 00:14:05,970 --> 00:14:06,309 es 312 00:14:06,309 --> 00:14:07,250 preparar 313 00:14:07,250 --> 00:14:08,250 todo aquello 314 00:14:08,250 --> 00:14:09,110 a lo que yo voy a querer 315 00:14:09,110 --> 00:14:09,690 afectar 316 00:14:09,690 --> 00:14:10,450 mediante el canvas 317 00:14:10,450 --> 00:14:11,490 en algún momento 318 00:14:11,490 --> 00:14:12,389 ya está 319 00:14:12,389 --> 00:14:13,549 yo voy a querer 320 00:14:13,549 --> 00:14:14,590 que ese hud 321 00:14:14,590 --> 00:14:15,269 en algún momento 322 00:14:15,269 --> 00:14:15,889 cambie el texto 323 00:14:15,889 --> 00:14:16,529 que pone ahí 324 00:14:16,529 --> 00:14:18,009 que cambie la imagen 325 00:14:18,009 --> 00:14:18,370 vale 326 00:14:18,370 --> 00:14:19,669 luego aparte 327 00:14:19,669 --> 00:14:31,210 Sí que hay que crear uno tipo sprite para meter, que este no es ningún componente, digamos, visible aquí ahora mismo, pero para meter las posibles imágenes que luego se van a cargar en el componente imagen, ¿vale? 328 00:14:31,210 --> 00:14:42,669 Que está en el HUD también y luego aparte la bola que sirve para, ya te digo, cambiar la masa y el drag del RigidBody, ¿vale? 329 00:14:42,669 --> 00:14:45,649 lo que se ha hecho es 330 00:14:45,649 --> 00:14:47,529 el planteamiento es cada vez 331 00:14:47,529 --> 00:14:48,929 que se cargue este HUD 332 00:14:48,929 --> 00:14:51,590 y esto pasará en el start una vez 333 00:14:51,590 --> 00:14:53,750 cada vez que se cargue el nivel que tiene el HUD 334 00:14:53,750 --> 00:14:55,049 es decir, cuando arrancamos un nivel 335 00:14:55,049 --> 00:14:57,629 se han creado tres métodos 336 00:14:57,629 --> 00:14:59,370 que estos los he creado yo 337 00:14:59,370 --> 00:15:01,549 es decir, son métodos que he creado yo, no es ningún update 338 00:15:01,549 --> 00:15:03,230 que venga como el que solemos usar 339 00:15:03,230 --> 00:15:05,009 sino son tres métodos distintos 340 00:15:05,009 --> 00:15:07,750 que lo que hacen es arranca el nivel, vale, pues voy a mirar 341 00:15:07,750 --> 00:15:09,629 voy a chequear cuál es 342 00:15:09,629 --> 00:15:11,429 el nombre que hay guardado del usuario 343 00:15:11,429 --> 00:15:13,710 que tengo que mostrar, cuál es el número de vida 344 00:15:13,710 --> 00:15:15,830 y cuál es la dificultad del juego 345 00:15:15,830 --> 00:15:17,389 en relación a 346 00:15:17,389 --> 00:15:19,769 eso, a 347 00:15:19,769 --> 00:15:21,389 los valores que estamos cambiando en el 348 00:15:21,389 --> 00:15:23,370 body de la bola, ¿vale? 349 00:15:24,509 --> 00:15:24,950 Vale. 350 00:15:25,929 --> 00:15:27,590 Aquí, si te fijas, a continuación 351 00:15:27,590 --> 00:15:29,649 están los voids preparados 352 00:15:29,649 --> 00:15:31,529 con correspondientes a cada uno. Esos 353 00:15:31,529 --> 00:15:33,669 cajones que lo que hemos hecho es, mediante 354 00:15:33,669 --> 00:15:35,429 tres líneas, aludir a tres 355 00:15:35,429 --> 00:15:37,950 bloques diferentes, ¿vale? Para que se ejecuten 356 00:15:37,950 --> 00:15:39,429 siempre, dado que están en el start, 357 00:15:40,110 --> 00:15:41,330 en el momento, ¿vale? 358 00:15:41,429 --> 00:16:10,970 En el momento en el que en cada nivel arranquemos. ¿Y esto por qué se hace? Porque cuando damos a jugar en el menú inicial, ¿vale? A ver, voy aquí un segundo, voy al menú configuración, al inicial, perdón, al dar yo a jugar querré que coja, por ejemplo, la información que yo he guardado en nombre de usuario que afecta a la bola según lo que yo tengo en dificultad, ¿vale? 359 00:16:10,970 --> 00:16:28,370 Y si es la primera vez que juego, porque no he pasado el juego, que no lo estamos haciendo así, pues que arranque con las tres vidas. Quiero que al arrancar cada nivel, chequee eso y me muestre la información que yo necesito en ese HUD y afecte de la forma que a mí me interesa. 360 00:16:28,370 --> 00:16:53,950 Vamos con el primero, que no va a ser el primero que tengo aquí, sino el de actualizar las vidas. Este método lo que hace es el que define cuántas vidas va a mostrar como imagen. Cuando decimos vidas, hay que tener bien claro que salgan tres corazones. 361 00:16:53,950 --> 00:16:56,289 una duda, perdona, una pequeña duda 362 00:16:56,289 --> 00:16:57,690 entonces por lo que veo 363 00:16:57,690 --> 00:16:59,169 todo se ha metido en el mismo hook 364 00:16:59,169 --> 00:17:00,789 todo se ha metido en el mismo lado 365 00:17:00,789 --> 00:17:03,610 tanto el nombre como lo de las vidas 366 00:17:03,610 --> 00:17:06,150 como lo del tema de la pantalla de inicio 367 00:17:06,150 --> 00:17:07,829 pantalla que pasa, opciones 368 00:17:07,829 --> 00:17:08,710 todo se ha metido en el mismo 369 00:17:08,710 --> 00:17:10,369 y luego lo que has construido son prefabs 370 00:17:10,369 --> 00:17:12,869 por el tema de las vidas, por ejemplo 371 00:17:12,869 --> 00:17:16,410 y metiéndolas cada una en su escena 372 00:17:16,410 --> 00:17:17,549 no, bueno 373 00:17:17,549 --> 00:17:19,250 a lo mejor es lo que quiero decir 374 00:17:19,250 --> 00:17:21,529 pero tú has dicho que luego hago cada prefab 375 00:17:21,529 --> 00:17:23,930 no, yo en el propio prefab 376 00:17:23,950 --> 00:17:31,470 ¿Vale? Ya he preparado todo eso. Es decir, este prefab, cuando lo arrastre, ya tiene un array con las cuatro posibles vidas, si te fijas. 377 00:17:32,190 --> 00:17:32,970 Vale, vale, vale. 378 00:17:32,970 --> 00:17:41,670 ¿Vale? Siempre, en todos los niveles, de momento, vamos a tener la posibilidad de usar estas cuatro imágenes, porque ya va, digamos, unido a este código en el propio prefab. 379 00:17:41,769 --> 00:17:48,670 Porque lo guardan en un prefab, claro. Si yo hubiera generado esto en un nivel y luego voy a otro y creo otro canvas y tal, pues habrá que hacerlo todo de primeras. 380 00:17:48,670 --> 00:17:50,970 pero el prefab lo bueno es que me está agrupando 381 00:17:50,970 --> 00:17:52,630 por eso ese icono de caja 382 00:17:52,630 --> 00:17:54,650 me está empaquetando 383 00:17:54,650 --> 00:17:56,849 toda esta información y el único que 384 00:17:56,849 --> 00:17:58,930 dejo sin vincular, que por eso 385 00:17:58,930 --> 00:18:00,910 pone none, es este de rigidbody 386 00:18:00,910 --> 00:18:01,690 este que 387 00:18:01,690 --> 00:18:04,710 está aquí, ese es el único que digo 388 00:18:04,710 --> 00:18:06,650 este sí que va a ir con 389 00:18:06,650 --> 00:18:08,690 algún elemento concreto del nivel que va a ser 390 00:18:08,690 --> 00:18:10,710 la bola, el resto se van a ir 391 00:18:10,710 --> 00:18:12,390 gestionando a través de un game manager 392 00:18:12,390 --> 00:18:14,369 que ahora vamos a eso 393 00:18:14,369 --> 00:18:16,509 entonces fíjate 394 00:18:16,509 --> 00:18:18,130 que yo lo que he hecho 395 00:18:18,130 --> 00:18:21,029 es un poco redundante pero es que esto es importante 396 00:18:21,029 --> 00:18:23,069 que quede claro, lo que he hecho ya desde el propio 397 00:18:23,069 --> 00:18:24,869 prefab que voy a ir arrastrando los niveles 398 00:18:24,869 --> 00:18:27,069 es decir, vale yo ya sé 399 00:18:27,069 --> 00:18:29,029 el array que va a ser de cuatro 400 00:18:29,029 --> 00:18:30,910 elementos y he metido una imagen 401 00:18:30,910 --> 00:18:31,910 en cada una de las posiciones 402 00:18:31,910 --> 00:18:35,069 y lo lógico es jugar a nuestro 403 00:18:35,069 --> 00:18:36,589 favor en esto y he hecho 404 00:18:36,589 --> 00:18:38,829 que además el orden, el índice 405 00:18:38,829 --> 00:18:40,809 del array que corresponde 406 00:18:40,809 --> 00:18:42,210 coincida con el número de vidas 407 00:18:42,210 --> 00:18:44,849 es decir, el de cero que coincida con el 408 00:18:44,849 --> 00:18:46,269 de cero vidas, el de uno uno 409 00:18:46,269 --> 00:18:48,970 porque los arrays, como ya se veía en el tema 410 00:18:48,970 --> 00:18:51,089 de introductorio, ¿vale? Y si no le damos 411 00:18:51,089 --> 00:18:53,049 una vuelta, siempre empiezan a contar 412 00:18:53,049 --> 00:18:54,890 desde el cero la primera posición, ¿vale? 413 00:18:54,890 --> 00:18:56,970 Es el primer índice. Entonces, hemos 414 00:18:56,970 --> 00:18:59,109 conseguido, ¿vale? Y si no, incluso 415 00:18:59,109 --> 00:19:00,970 si no hubiéramos tenido la imagen, 416 00:19:01,069 --> 00:19:02,349 por ejemplo, esta no existiera, 417 00:19:02,869 --> 00:19:05,230 hubiéramos metido hasta una imagen, a lo mejor aleatoria 418 00:19:05,230 --> 00:19:06,210 o algún placeholder 419 00:19:06,210 --> 00:19:08,950 para hacer que coincida con estos números, porque así 420 00:19:08,950 --> 00:19:10,730 es mucho más fácil luego a nivel de programación 421 00:19:10,730 --> 00:19:12,990 nosotros saber que en todo 422 00:19:12,990 --> 00:19:14,890 momento si apelamos a la imagen 423 00:19:14,890 --> 00:19:22,789 en lives tres o la guardada, mejor dicho, en el orden, en la posición tres de este array, pues es la de las tres vidas, ¿vale? 424 00:19:23,569 --> 00:19:29,930 Y yo he arrastrado también en este momento, ¿vale? Esto se ha arrastrado una vez porque lo que he hecho ha sido decir, vale, 425 00:19:29,930 --> 00:19:39,329 lo que es este campo, ¿vale? Que hace referencia al campo texto, ¿vale? A un tipo de variable texto. 426 00:19:39,329 --> 00:20:06,329 Y ojo, esto es importante también, que lo pone en el tema, para cuando vayamos a usar por código métodos o clases o cualquier cosa referenciada con la UI, con User Interface, con los componentes de User Interface, hay que cargar una nueva librería, bueno, nueva, una librería que hasta que no ponemos esta línea no se carga, para no sobrecargar los scripts, que es este UnityEngine.ai, ¿vale? 427 00:20:06,329 --> 00:20:19,130 Ya lo he hecho más veces, pero si yo, por ejemplo, no hubiera introducido esa línea, ¿vale? Al principio, antes de la declaración de clase, ¿vale? Directamente estos tipos de variable no me los cogería. 428 00:20:19,130 --> 00:20:40,509 Y esto cuando hablamos de los componentes, recordad que hay tipos de variables que en realidad son los componentes. Que si yo pongo un tipo de variable llamado text, luego lo que podría hacer con esta variable es acceder a todo lo que hay, a todos estos campos, a todas estas propiedades que tiene un componente tipo text. 429 00:20:40,509 --> 00:20:54,410 De hecho, fíjate en el icono, en esta T, que yo cuando doy a Canvas, solo me permite arrastrar, fíjate que está esa T ahí otra vez, solo me permite arrastrar con lo que corresponde con esa caja, que es un componente de tipo text. 430 00:20:54,410 --> 00:21:13,710 Es decir, yo sé que este GameObject, entre sus diversos componentes, hay uno de tipo text, pues yo cuando arrastre este GameObject me va a coger el componente text y voy a poder, por ejemplo, acceder al espacio de text, de escritura que hay y cambiarlo. 431 00:21:13,710 --> 00:21:16,390 pero eso lo hacemos porque estamos 432 00:21:16,390 --> 00:21:18,910 digamos, introduciéndonos en ese componente 433 00:21:18,910 --> 00:21:20,750 si yo en este que tengo 434 00:21:20,750 --> 00:21:22,849 aquí, que es el que muestra la imagen 435 00:21:22,849 --> 00:21:24,470 que no tiene un componente tipo text 436 00:21:24,470 --> 00:21:26,730 ¿vale? por mucho que yo me empeñe 437 00:21:26,730 --> 00:21:28,150 a arrastrar ese game object 438 00:21:28,150 --> 00:21:30,990 a donde me pide un componente tipo text 439 00:21:30,990 --> 00:21:32,650 no me lo coge, porque solo 440 00:21:32,650 --> 00:21:34,750 busca objetos que dentro 441 00:21:34,750 --> 00:21:36,410 tengan este componente ya aplicado 442 00:21:36,410 --> 00:21:38,470 si no, no sabe que coger 443 00:21:38,470 --> 00:21:40,190 ¿vale? que eso de hecho es el tipo 444 00:21:40,190 --> 00:21:42,809 que reclama en el paréntesis que tiene 445 00:21:42,809 --> 00:21:43,630 cada uno de estos 446 00:21:43,630 --> 00:22:01,690 ¿Vale? Entonces, yo cuando he arrastrado esta variable, lo que estoy consiguiendo es meterme por código, ¿vale? Cada vez que haga mención a este username text, me estaré metiendo en ese componente que he, en este caso, cogido a través del editor. 447 00:22:01,690 --> 00:22:21,690 Y aquí cuando, por ejemplo, pone username.text, con minúsculas el text, es dentro del componente que hemos capturado, que tiene que ser de tipo text, el .text es una de las propiedades que lo que permite es directamente meter un string con lo que tiene que poner. 448 00:22:21,690 --> 00:22:42,809 ¿Vale? Si yo aquí en vez de player desconocido dijera prueba probando, ¿vale? Si yo no cambio, ¿vale? Ahora vemos esto. Si yo no cambio el texto en ningún momento, vas a ver que yo cuando arranque el juego se estará, a ver, voy a un nivel y luego arranco. 449 00:22:42,809 --> 00:23:03,430 Cuando arranco el juego, va a poner player probando. ¿Y esto por qué? Porque al arrancar el juego, recordemos que al hacer un start, aplica estos tres métodos. Y dentro del de username, lo primero que pone es, si no existe, esto ahora lo explico, lo del game manager. 450 00:23:03,430 --> 00:23:25,589 Si yo no he introducido un texto en el menú configuración, este que hay aquí que te he enseñado antes, ¿vale? Este de aquí. Si tú en ningún momento has variado este dato, ¿vale? Entonces ponme directamente lo que yo, es decir, si no existe ese dato, introdúceme en ese texto este player probando, ¿vale? 451 00:23:25,589 --> 00:23:43,250 Si no, ¿qué haces? Pues vas a escribir en esta variable, en su propiedad de texto, pues este texto que está compuesto de la palabra player siempre delante, porque lo que queremos es decir así, en plan, queremos que ponga siempre jugador, dos puntos y luego el nombre que hayamos introducido. 452 00:23:43,250 --> 00:23:45,849 si no, en este caso 453 00:23:45,849 --> 00:23:47,849 que lo dejábamos vacío, porque no había nombre 454 00:23:47,849 --> 00:23:49,950 pues ponía player solo, pero si no 455 00:23:49,950 --> 00:23:51,809 lo que hará será coger el nombre que hayamos 456 00:23:51,809 --> 00:23:53,269 guardado en el game manager 457 00:23:53,269 --> 00:23:55,250 ahora vamos a ello, ¿vale? 458 00:23:56,150 --> 00:23:56,990 ¿hasta aquí qué tal? 459 00:24:02,160 --> 00:24:03,880 sí, bien, bien, lo voy entendiendo, bien 460 00:24:03,880 --> 00:24:06,400 una cosa, bueno, bueno, sigue, sigue 461 00:24:06,400 --> 00:24:07,859 no, no, sí, sí, sí 462 00:24:07,859 --> 00:24:09,059 pregúntame mejor si puede ser 463 00:24:09,059 --> 00:24:11,720 vale, pues mira, había una forma de convertir en 464 00:24:11,720 --> 00:24:14,039 el tema de la 465 00:24:14,039 --> 00:24:15,259 para convertir en strings 466 00:24:15,259 --> 00:24:17,339 los datos 467 00:24:17,339 --> 00:24:19,220 que era una fórmula me parece 468 00:24:19,220 --> 00:24:20,599 un método 469 00:24:20,599 --> 00:24:22,980 para convertir 470 00:24:22,980 --> 00:24:24,779 para tener algo convertido en strings 471 00:24:24,779 --> 00:24:27,319 simplemente 472 00:24:27,319 --> 00:24:29,380 ah bueno, sí, ya sé 473 00:24:29,380 --> 00:24:30,480 de lo que me hablas, pero bueno 474 00:24:30,480 --> 00:24:33,160 componerlo entre dos puntos 475 00:24:33,160 --> 00:24:35,200 entre comillas, ya es un string 476 00:24:35,200 --> 00:24:37,359 si creamos un string, aunque sea 477 00:24:37,359 --> 00:24:38,279 este 478 00:24:38,279 --> 00:24:41,519 era para convertir datos numéricos 479 00:24:41,519 --> 00:24:42,599 por ejemplo, en un string 480 00:24:42,599 --> 00:24:45,259 claro, es que te voy a dar dos formas 481 00:24:45,259 --> 00:24:46,619 una, la fácil que es esta 482 00:24:46,619 --> 00:24:50,200 que es que tú en cuanto tienes algo de clara como string, 483 00:24:50,259 --> 00:24:52,799 aunque sea este vacío y le sumamos un dato numérico, ¿vale? 484 00:24:52,940 --> 00:24:55,440 Porque esto, bueno, este no es numérico, 485 00:24:55,559 --> 00:24:58,420 pero si fuera numérico, cuando lo estamos, digamos, sumando, 486 00:24:58,519 --> 00:25:01,299 que es una concatenación, lo convierte a string, ¿vale? 487 00:25:01,359 --> 00:25:04,480 Pero si no, el que tú estás diciendo es el método, 488 00:25:05,000 --> 00:25:07,299 y espera que te lo busco aquí para no equivocarme, 489 00:25:07,400 --> 00:25:11,259 porque la verdad es que de memorieta igual no te lo digo bien, 490 00:25:11,539 --> 00:25:13,259 se llama toString. 491 00:25:13,259 --> 00:25:15,259 a ver, ahí está 492 00:25:15,259 --> 00:25:17,579 lo vamos a poner en Unity porque esto además se usa 493 00:25:17,579 --> 00:25:18,759 mucho el lenguaje de programación 494 00:25:18,759 --> 00:25:19,579 ¿vale? 495 00:25:19,700 --> 00:25:23,660 tú, si pones ese 496 00:25:23,660 --> 00:25:26,599 ese 497 00:25:26,599 --> 00:25:29,279 tuString, ¿vale? aunque este ejemplo 498 00:25:29,279 --> 00:25:30,440 no es el mejor 499 00:25:30,440 --> 00:25:33,500 un segundo, tuStringFormatting 500 00:25:33,500 --> 00:25:35,740 es que quiero que veamos un ejemplo, pero sí, es tuString 501 00:25:35,740 --> 00:25:37,519 lo que hay que hacer es meter dentro 502 00:25:37,519 --> 00:25:38,019 del 503 00:25:38,019 --> 00:25:40,500 tuString 504 00:25:40,500 --> 00:25:43,099 el string, ¿vale? 505 00:25:43,259 --> 00:25:45,559 queramos que convierta. 506 00:25:46,220 --> 00:25:47,619 A ver, ¿por qué soundflop 507 00:25:47,619 --> 00:25:50,579 toString? Cogemos... 508 00:25:50,579 --> 00:25:51,660 Bueno, pero es que este ejemplo 509 00:25:51,660 --> 00:25:53,359 no es el mejor. Pero vamos, sí. 510 00:25:54,140 --> 00:25:55,599 Este es el que yo creo que queremos. 511 00:25:57,140 --> 00:25:57,319 ¿Vale? 512 00:25:57,779 --> 00:25:59,200 Convierte un dato 513 00:25:59,200 --> 00:26:01,720 a un string. 514 00:26:02,559 --> 00:26:04,380 ¿Vale? Entonces... 515 00:26:04,380 --> 00:26:05,759 Pero ya te digo que si 516 00:26:05,759 --> 00:26:07,700 ponemos una apelación a un string 517 00:26:07,700 --> 00:26:09,579 y luego lo concatenamos con ese 518 00:26:09,579 --> 00:26:11,200 número, lo convierte todo a un string. 519 00:26:11,200 --> 00:26:34,599 Es una forma más rápida quizá, ¿vale? Hasta aquí, si más o menos me vas siguiendo, aunque ahora volvemos, lo que estamos haciendo es eso, acceder en cada caso, ¿vale? A los tipos de variables que hemos declarado arriba que hacen mención a componentes que hay en el canvas, ¿vale? 520 00:26:35,140 --> 00:26:43,180 Luego, importante, y esto es uno de los kits de la cuestión en esta práctica con respecto a otras, ¿vale? 521 00:26:43,500 --> 00:26:50,400 Porque es, digamos, la primera vez que lo ponemos en juego, que es el concepto de las variables estáticas, las static, ¿vale? 522 00:26:50,720 --> 00:26:57,559 En el tema se explica que hay, de hecho, un tipo de variable que es tan representativo, a ver si me deja verlo, ¿vale? 523 00:26:57,559 --> 00:27:00,160 que cuando llamamos 524 00:27:00,160 --> 00:27:02,160 a ver, aquí lo tengo, a un script 525 00:27:02,160 --> 00:27:04,000 igual que creamos los otros, lo llamamos así 526 00:27:04,000 --> 00:27:05,940 escrito, ¿vale? Con G mayúscula y M 527 00:27:05,940 --> 00:27:07,839 mayúscula, un script GameManager 528 00:27:07,839 --> 00:27:10,079 hasta nos cambia el icono 529 00:27:10,079 --> 00:27:11,960 y nos pone otro, ¿vale? Para tener bien 530 00:27:11,960 --> 00:27:13,359 claro cuál es 531 00:27:13,359 --> 00:27:15,119 porque es, digamos 532 00:27:15,119 --> 00:27:17,660 la función que se debería dar, luego 533 00:27:17,660 --> 00:27:19,579 cada uno escribirá dentro lo que quiera y 534 00:27:19,579 --> 00:27:21,759 la tuerca está, pero digamos que este tipo 535 00:27:21,759 --> 00:27:23,980 de script es una convención, este nombre de GameManager 536 00:27:23,980 --> 00:27:25,480 para ir metiendo dentro 537 00:27:25,480 --> 00:27:30,019 los comportamientos comunes del juego 538 00:27:30,019 --> 00:27:32,099 a lo largo de todos los niveles, ¿vale? 539 00:27:32,619 --> 00:27:33,980 Dependiendo del juego, a veces hay que hacer 540 00:27:33,980 --> 00:27:35,759 mucho más scripts, digamos, game manager, 541 00:27:35,940 --> 00:27:38,180 pero bueno, en uno como este, que es simple, 542 00:27:38,779 --> 00:27:40,160 que tampoco alberga muchísimos datos, 543 00:27:40,319 --> 00:27:41,200 pues se puede hacer en uno. 544 00:27:41,839 --> 00:27:43,079 ¿Y esto para qué lo usamos? 545 00:27:43,160 --> 00:27:45,440 Ya os digo, esto de la tuerca es solo visual, ¿eh? 546 00:27:45,779 --> 00:27:48,779 Cuando lo abro es igual que cualquier otro script. 547 00:27:48,880 --> 00:27:50,339 Yo he borrado lo del start y el update, 548 00:27:50,440 --> 00:27:51,259 pero es exactamente igual. 549 00:27:51,740 --> 00:27:52,880 ¿Y qué es lo que se ha hecho aquí? 550 00:27:52,880 --> 00:27:56,519 Este script empieza igual 551 00:27:56,519 --> 00:27:57,680 Se ha llamado GameManager 552 00:27:57,680 --> 00:27:59,519 Y por eso lo llamaremos GameManager 553 00:27:59,519 --> 00:28:00,740 Mientras lo usemos 554 00:28:00,740 --> 00:28:02,920 Pero todas las variables que se han declarado 555 00:28:02,920 --> 00:28:05,599 Son de tipo estática 556 00:28:05,599 --> 00:28:06,240 Si te fijas 557 00:28:06,240 --> 00:28:08,240 Y también las variables estáticas 558 00:28:08,240 --> 00:28:10,519 Para que funcionen con el uso que les vamos a dar 559 00:28:10,519 --> 00:28:12,059 Tienen que ser declaradas así 560 00:28:12,059 --> 00:28:14,680 Static, public y luego ya el tipo de variable 561 00:28:14,680 --> 00:28:15,740 Y el nombre, como siempre 562 00:28:15,740 --> 00:28:18,920 ¿Qué conseguimos con estas variables estáticas? 563 00:28:19,400 --> 00:28:21,720 Que se pueda acceder a ella 564 00:28:21,720 --> 00:28:23,880 a este script 565 00:28:23,880 --> 00:28:25,839 siempre que queramos, ¿vale? Yo puedo ir 566 00:28:25,839 --> 00:28:27,000 a cualquiera, a ver, 567 00:28:27,980 --> 00:28:29,880 aleatoriamente estoy haciendo así, me meto en 568 00:28:29,880 --> 00:28:31,500 Employer Manager o en Loves Things, ¿vale? 569 00:28:31,920 --> 00:28:33,619 Y yo, si me meto en cualquier, 570 00:28:33,960 --> 00:28:35,940 siempre hay que escribir, eso sí, dentro de un 571 00:28:35,940 --> 00:28:37,559 método, ¿vale? 572 00:28:37,619 --> 00:28:39,880 O de ejecución o un método que queremos nosotros, ¿vale? 573 00:28:39,880 --> 00:28:41,700 Que si escribo aquí fuera, pues no 574 00:28:41,700 --> 00:28:43,779 lo detecta. Si yo empiezo a poner 575 00:28:43,779 --> 00:28:45,539 GameManager, me va a salir 576 00:28:45,539 --> 00:28:47,440 GameManager como un objeto que ya existe, 577 00:28:47,980 --> 00:28:49,900 ¿vale? Como una clase 578 00:28:49,900 --> 00:28:50,720 que alguien ha hecho 579 00:28:50,720 --> 00:28:53,880 un programador, la vamos a tener 580 00:28:53,880 --> 00:28:55,759 accesible siempre, ¿vale? Y cuando le demos 581 00:28:55,759 --> 00:28:57,500 al punto, todas las variables 582 00:28:57,500 --> 00:28:59,380 estáticas, aparte de otras que ya 583 00:28:59,380 --> 00:29:01,500 vienen por efecto cuando tenemos una clase, 584 00:29:02,039 --> 00:29:03,680 van a venir declaradas, y son 585 00:29:03,680 --> 00:29:05,799 estas que tiene la cajita azul, las variables 586 00:29:05,799 --> 00:29:07,759 si te fijas, ¿vale? Dificultad, 587 00:29:07,920 --> 00:29:09,960 lives, username, coinciden 588 00:29:09,960 --> 00:29:11,680 con las de, a ver, el game manager, 589 00:29:11,859 --> 00:29:13,859 ¿vale? Lives, username, dificultad, 590 00:29:13,859 --> 00:29:15,559 ¿vale? Para poder hacer esto, 591 00:29:15,880 --> 00:29:17,759 es la única forma de poder acceder desde 592 00:29:17,759 --> 00:29:19,740 cualquier punto sin tener que declarar 593 00:29:19,740 --> 00:29:22,720 en el script completo, esa clase, ¿vale? 594 00:29:23,299 --> 00:29:28,200 Es que las variables que tenga adentro sean de tipo static public. 595 00:29:28,960 --> 00:29:30,519 ¿Y esto para qué sirve? 596 00:29:31,099 --> 00:29:34,700 Porque cuando, si vamos gestionando los juegos hasta ahora 597 00:29:34,700 --> 00:29:37,119 en niveles independientes, aunque pasemos de uno a otro... 598 00:29:37,119 --> 00:29:39,339 Una pregunta, una duda, te me acaba de surgir. 599 00:29:39,440 --> 00:29:41,960 ¿Tienen que ser siempre públicas o serializadas también? 600 00:29:42,700 --> 00:29:45,000 No, tienen que ser públicas, ¿vale? 601 00:29:45,039 --> 00:29:49,420 Porque vamos a recordar la diferencia entre el serialized field y el public. 602 00:29:49,740 --> 00:29:52,339 Por ejemplo, y de hecho voy al que estaba enseñando antes, 603 00:29:52,799 --> 00:29:56,740 cuando declaramos una variable así, que no pone public ni private, 604 00:29:57,000 --> 00:29:59,200 no pone nada referente al ámbito, 605 00:29:59,720 --> 00:30:02,559 lo que estamos haciendo es que se pueda ver en el editor 606 00:30:02,559 --> 00:30:05,240 y poder arrastrar en el editor el tipo de variable, 607 00:30:05,420 --> 00:30:07,000 pero sigue siendo privada. 608 00:30:07,539 --> 00:30:10,400 Yo a esta variable no puedo acceder desde otros scripts. 609 00:30:11,640 --> 00:30:16,359 Pero en este caso, yo sí voy a querer que se pueda acceder desde otros scripts. 610 00:30:16,359 --> 00:30:18,940 básicamente este GameManager 611 00:30:18,940 --> 00:30:20,339 no se va a aplicar 612 00:30:20,339 --> 00:30:22,579 en ningún GameObject del juego 613 00:30:22,579 --> 00:30:24,539 no es su función 614 00:30:24,539 --> 00:30:26,140 este GameManager 615 00:30:26,140 --> 00:30:28,319 al declararlo con variables 616 00:30:28,319 --> 00:30:30,660 estáticas públicas, lo que va a hacer es ir 617 00:30:30,660 --> 00:30:32,880 albergando información que vamos a poder ir guardando 618 00:30:32,880 --> 00:30:34,660 digamos, por encima incluso 619 00:30:34,660 --> 00:30:36,200 del juego, como por detrás 620 00:30:36,200 --> 00:30:38,660 en otro punto, y que vaya guardando 621 00:30:38,660 --> 00:30:39,920 siempre ciertos valores 622 00:30:39,920 --> 00:30:41,740 entre los distintos niveles 623 00:30:41,740 --> 00:30:43,599 para que aunque el juego 624 00:30:43,599 --> 00:30:46,279 digamos, estamos en el nivel 1 625 00:30:46,279 --> 00:30:48,579 arrancamos el juego, tened en cuenta 626 00:30:48,579 --> 00:30:50,460 que eso, nosotros arrancamos el juego 627 00:30:50,460 --> 00:30:52,519 y nos metemos en configuración, aquí hay un 628 00:30:52,519 --> 00:30:54,579 dato que pone Daniel, que yo 629 00:30:54,579 --> 00:30:56,480 esa información la tengo que guardar en algún sitio 630 00:30:56,480 --> 00:30:58,259 para que cuando yo vaya a otro nivel 631 00:30:58,259 --> 00:30:59,920 a otra escena que carga otras cosas 632 00:30:59,920 --> 00:31:02,500 siga conservando la información guardada 633 00:31:02,500 --> 00:31:03,519 ¿vale? es como un guardado 634 00:31:03,519 --> 00:31:06,059 aparte de los niveles 635 00:31:06,059 --> 00:31:08,720 de manera independiente a los niveles 636 00:31:08,720 --> 00:31:10,299 ¿vale? por eso es útil 637 00:31:10,299 --> 00:31:12,279 los game managers, porque aquí, por ejemplo 638 00:31:12,279 --> 00:31:14,140 en tu caso, que estás intentando poner 639 00:31:14,140 --> 00:31:16,339 el volumen de la música, cuando tú pones 640 00:31:16,339 --> 00:31:18,099 la música, al ir cambiando de nivel 641 00:31:18,099 --> 00:31:20,099 hay que ir, digamos 642 00:31:20,099 --> 00:31:21,779 metiendo diferentes 643 00:31:21,779 --> 00:31:24,319 variables, es decir 644 00:31:24,319 --> 00:31:26,259 distintos componentes de música en cada 645 00:31:26,259 --> 00:31:27,500 nivel, o hay que hacer 646 00:31:27,500 --> 00:31:30,039 algunas operaciones de que no destruya ese componente 647 00:31:30,039 --> 00:31:32,140 porque al cargar el nivel, si aquí no hay 648 00:31:32,140 --> 00:31:33,019 un 649 00:31:33,019 --> 00:31:35,839 objeto, un GameObject que tenga 650 00:31:35,839 --> 00:31:37,240 el componente 651 00:31:37,240 --> 00:31:40,180 del AudioSource, que entiendo que es el que 652 00:31:40,180 --> 00:31:42,140 estabas poniendo, no se va a oír la música 653 00:31:42,140 --> 00:31:44,099 y aunque tuvieras otro, a lo mejor el volumen 654 00:31:44,099 --> 00:31:46,160 de cada uno se irá variando según cada nivel 655 00:31:46,160 --> 00:31:48,140 con esto conseguimos que siempre 656 00:31:48,140 --> 00:31:49,940 por código podemos decir 657 00:31:49,940 --> 00:31:52,000 vale, yo en este nivel de configuración 658 00:31:52,000 --> 00:31:54,200 he puesto Daniel y yo de alguna 659 00:31:54,200 --> 00:31:55,299 manera lo que voy a hacer es 660 00:31:55,299 --> 00:31:58,200 en este campo de static public 661 00:31:58,200 --> 00:32:00,240 que la información que alberga 662 00:32:00,240 --> 00:32:01,359 aquí es Daniel 663 00:32:01,359 --> 00:32:03,920 y yo después desde otro script de otro nivel 664 00:32:03,920 --> 00:32:05,160 pues puedo decir, oye 665 00:32:05,160 --> 00:32:07,720 cárgame lo que en algún 666 00:32:07,720 --> 00:32:09,640 en la última vez que se ha guardado algo 667 00:32:09,640 --> 00:32:11,779 en esta variable estática 668 00:32:11,779 --> 00:32:12,799 me lo muestras 669 00:32:12,799 --> 00:32:15,640 sobre todo me interesa que estés entendiendo 670 00:32:15,640 --> 00:32:17,220 el objetivo 671 00:32:17,220 --> 00:32:19,579 de esto, de estas variables 672 00:32:19,579 --> 00:32:21,579 estáticas, las variables estáticas 673 00:32:21,579 --> 00:32:23,779 para que puedan ser accesibles 674 00:32:23,779 --> 00:32:24,680 desde cualquier otro 675 00:32:24,680 --> 00:32:28,200 desde cualquier otra clase 676 00:32:28,200 --> 00:32:30,019 es decir, de cualquier otro script 677 00:32:30,019 --> 00:32:31,660 es eso, dime 678 00:32:31,660 --> 00:32:33,240 mira, entonces 679 00:32:33,240 --> 00:32:35,720 porque si hay una variable estática que se crea 680 00:32:35,720 --> 00:32:37,779 que va a funcionar durante todo el juego 681 00:32:37,779 --> 00:32:39,920 en todas las escenas, porque se va a mantener siempre igual 682 00:32:39,920 --> 00:32:41,539 ¿por qué no se hace todo el script 683 00:32:41,539 --> 00:32:43,420 de antes, el que más se ha hecho al principio 684 00:32:43,420 --> 00:32:45,279 porque nos hace directamente la estática 685 00:32:45,279 --> 00:32:47,380 y ya ese se arrastra a todos los demás 686 00:32:47,380 --> 00:32:49,519 porque 687 00:32:49,519 --> 00:32:51,480 nosotros, es decir 688 00:32:51,480 --> 00:32:53,180 para empezar 689 00:32:53,180 --> 00:32:55,420 estas variables estáticas se pueden 690 00:32:55,420 --> 00:32:57,359 declarar también en otros 691 00:32:57,359 --> 00:32:59,579 en otros scripts 692 00:32:59,579 --> 00:33:01,319 pero lo que queremos es 693 00:33:01,319 --> 00:33:03,359 centralizar sin tener que aplicar 694 00:33:03,359 --> 00:33:04,920 el game manager, tú ten en cuenta que 695 00:33:04,920 --> 00:33:06,819 y esto pasaba al principio 696 00:33:06,819 --> 00:33:09,059 si hacíamos un script 697 00:33:09,059 --> 00:33:11,079 y luego no lo arrastrábamos a un game object 698 00:33:11,079 --> 00:33:13,279 no se aplicaba ese script, es decir, si yo a este 699 00:33:13,279 --> 00:33:14,880 Kanban no le arrastro este script 700 00:33:14,880 --> 00:33:17,460 ¿vale? no va a hacer 701 00:33:17,460 --> 00:33:19,339 nada de lo que hace, porque no está en el nivel 702 00:33:19,339 --> 00:33:21,319 lo que sí se puede 703 00:33:21,319 --> 00:33:23,079 hacer es que cuando tenemos variables 704 00:33:23,079 --> 00:33:25,200 estáticas públicas, no hace falta, este GameManager 705 00:33:25,200 --> 00:33:27,220 no lo estoy arrastrando a ningún GameObject 706 00:33:27,220 --> 00:33:29,420 da igual, porque digamos que son variables 707 00:33:29,420 --> 00:33:30,759 que están a otro nivel 708 00:33:30,759 --> 00:33:33,579 por supuesto que también se podrían declarar 709 00:33:33,579 --> 00:33:35,440 ¿vale? es decir, yo también podría declarar 710 00:33:35,440 --> 00:33:37,420 esas tres variables que tengo en el GameManager 711 00:33:37,420 --> 00:33:39,220 en otro script 712 00:33:39,220 --> 00:34:03,339 Pero es verdad que si lo centralizamos en un GameManager, todo lo que sea común al juego lo tenemos unido, ¿vale? Y si lo mezclamos con otros comportamientos que sí que tienen que estar aplicados al juego, estaríamos como mezclando, por un lado, lo que es universal para el juego con lo que en este caso, por ejemplo, afecta al HUD, que es un GameObject específico, ¿vale? Entonces, es mezclar cosas que no se deberían. 713 00:34:03,339 --> 00:34:06,380 además es que esto no es referente a ningún nivel 714 00:34:06,380 --> 00:34:07,880 concreto, lo del hood manager 715 00:34:07,880 --> 00:34:10,199 por ejemplo este rigidbody, si es 716 00:34:10,199 --> 00:34:12,280 concreto de cada escena que habrá que decirlo 717 00:34:12,280 --> 00:34:12,800 y el 718 00:34:12,800 --> 00:34:16,260 estos campos si que se están 719 00:34:16,260 --> 00:34:18,079 digamos dando acceso a que se pueda 720 00:34:18,079 --> 00:34:20,159 modificar por código lo que hay en estas 721 00:34:20,159 --> 00:34:22,320 variables, pero si que hace referencia 722 00:34:22,320 --> 00:34:23,960 a algo específico que está en la escena 723 00:34:23,960 --> 00:34:26,239 esto son información que se 724 00:34:26,239 --> 00:34:28,219 guarda y luego nosotros vamos a 725 00:34:28,219 --> 00:34:29,320 cargar en algún punto 726 00:34:29,320 --> 00:34:30,460 ¿vale? 727 00:34:30,460 --> 00:34:34,199 esto de momento lo que me interesa es que entendamos 728 00:34:34,199 --> 00:34:34,699 hasta aquí 729 00:34:34,699 --> 00:34:37,679 vale, vale, entonces 730 00:34:37,679 --> 00:34:40,039 las variables estáticas realmente son 731 00:34:40,039 --> 00:34:42,019 sencillas, porque tú haces este game manager 732 00:34:42,019 --> 00:34:43,739 y empiezas a hacer las variables que tú quieras 733 00:34:43,739 --> 00:34:46,420 sabiendo qué tipo de datos vas a necesitar 734 00:34:46,420 --> 00:34:47,840 guardar a lo largo del juego 735 00:34:47,840 --> 00:34:49,920 y las dejas ahí preparadas, vale 736 00:34:49,920 --> 00:34:51,820 y vuelvo al hand manager 737 00:34:51,820 --> 00:34:53,860 ahora que he explicado esto, porque 738 00:34:53,860 --> 00:34:56,039 por ejemplo, si yo no 739 00:34:56,039 --> 00:34:57,360 he cambiado nada, es decir 740 00:34:57,360 --> 00:34:59,659 si yo no he introducido, bueno 741 00:34:59,659 --> 00:35:01,780 importante, claro, cuando declaramos 742 00:35:01,780 --> 00:35:03,679 estas variables estáticas, si aquí no le decimos 743 00:35:03,679 --> 00:35:05,800 que esto valga 3, ¿vale? 744 00:35:05,920 --> 00:35:07,940 3 vidas por defecto o lo que quisiéramos 745 00:35:07,940 --> 00:35:09,380 recordad que 746 00:35:09,380 --> 00:35:11,719 significa que valen 0 o nada 747 00:35:11,719 --> 00:35:13,780 es decir, si son variables 748 00:35:13,780 --> 00:35:15,719 numéricas como este int o como este float 749 00:35:15,719 --> 00:35:17,719 valen 0 y si es un 750 00:35:17,719 --> 00:35:19,480 string, no es que valga 0 751 00:35:19,480 --> 00:35:21,760 sino que vale, esto ya lo hablamos un día, vale 752 00:35:21,760 --> 00:35:23,460 esto, esto no es 753 00:35:23,460 --> 00:35:25,760 un espacio, que sería esto, esto es 754 00:35:25,760 --> 00:35:27,519 igual a nulo, ¿vale? 755 00:35:27,519 --> 00:35:28,500 Se conoce como un nulo. 756 00:35:29,039 --> 00:35:32,960 Esto significa que este campo, aunque la caja existe, 757 00:35:33,239 --> 00:35:35,000 lo que está albergando es un valor nulo. 758 00:35:35,159 --> 00:35:36,239 No tiene nada dentro, ¿vale? 759 00:35:37,059 --> 00:35:40,239 Lo digo porque hay que entender que hasta que no se guarde una información, 760 00:35:41,000 --> 00:35:42,760 vale o cero o nulo. 761 00:35:43,219 --> 00:35:46,219 Entonces, aquí, por ejemplo, esto se podría hacer de otra forma. 762 00:35:46,340 --> 00:35:48,139 He puesto lo de nulo aquí por ver cómo se hace. 763 00:35:48,219 --> 00:35:49,039 Se podría hacer de otra forma. 764 00:35:49,300 --> 00:35:53,159 Pero si al arrancar un nivel, uno de los niveles, 765 00:35:53,699 --> 00:35:55,019 que son los que cargan este HUD, 766 00:35:55,019 --> 00:35:57,179 se mete aquí en el start y dice 767 00:35:57,179 --> 00:35:59,300 a ver, vamos a ver, actualizar el username 768 00:35:59,300 --> 00:36:01,280 el nombre que yo le he puesto porque yo he decidido 769 00:36:01,280 --> 00:36:03,139 se mete y dice, a ver, si 770 00:36:03,139 --> 00:36:05,139 este GameManager 771 00:36:05,139 --> 00:36:07,280 y ves que estoy referenciando directamente 772 00:36:07,280 --> 00:36:09,320 a la variable estática pública esta que tenemos 773 00:36:09,320 --> 00:36:11,059 en el GameManager, si 774 00:36:11,059 --> 00:36:12,880 el username no hay nada 775 00:36:12,880 --> 00:36:15,239 porque no se ha cambiado nada en ningún 776 00:36:15,239 --> 00:36:17,239 momento, se ha guardado otro valor en el menú 777 00:36:17,239 --> 00:36:19,260 config, lo que 778 00:36:19,260 --> 00:36:20,599 voy a enseñar es 779 00:36:20,599 --> 00:36:22,440 entrando 780 00:36:22,440 --> 00:36:25,059 en este componente 781 00:36:25,059 --> 00:36:26,840 que yo he referenciado aquí por el editor 782 00:36:26,840 --> 00:36:28,380 me meto en su parámetro 783 00:36:28,380 --> 00:36:30,780 text y pongo player 784 00:36:30,780 --> 00:36:32,800 porque nadie ha cambiado nada, entonces pongo un valor 785 00:36:32,800 --> 00:36:34,320 por defecto, por eso 786 00:36:34,320 --> 00:36:36,000 aquí ahora cuando voy al juego 787 00:36:36,000 --> 00:36:37,579 a ver 788 00:36:37,579 --> 00:36:40,099 cuando voy al juego 789 00:36:40,099 --> 00:36:42,400 no escribo nada y juego 790 00:36:42,400 --> 00:36:43,500 pues pone player 791 00:36:43,500 --> 00:36:46,599 lo que pasa es 792 00:36:46,599 --> 00:36:48,739 que si yo por el contrario 793 00:36:48,739 --> 00:36:50,840 ya he introducido algún valor 794 00:36:50,840 --> 00:36:52,159 en este username 795 00:36:52,159 --> 00:37:09,219 Lo que va a hacer es coger ese username text y lo que va a escribir ahí. Y cuando digo ahí, para que quede claro, por si acaso, me meto en un nivel que tenga el hud, que es lo que estamos viendo ahora. Me meto en el hud y lo que va a hacer es meterse aquí. 796 00:37:09,219 --> 00:37:27,760 Y cuando hago ese test.text, lo que hago es directamente modificar lo que pone ahí. Es decir, aquí lo que estoy haciendo es meterme en ese componente y en su propiedad text, eso hace referencia a este text de aquí, lo que yo ponga a continuación del igual es lo que se escribirá en esa caja. 797 00:37:27,760 --> 00:37:41,880 ¿Y qué es lo que escribo? Pues este player, porque quiero que siempre ponga player, como hemos dicho antes, y aparte después, pues lo que se haya guardado, ¿vale? Que además es de tipo string, ¿vale? El username es de tipo string, ¿vale? Pues lo va a poner a continuación. 798 00:37:41,880 --> 00:37:58,780 ¿Con eso qué conseguimos? Evidentemente todavía no hemos configurado el menú configuración, pero significa que yo de algún modo lo que introduzca aquí, ¿vale? Pongo José Luis, por poner un nombre que no sean los que pongo siempre. 799 00:37:58,780 --> 00:38:13,579 José Luis, ¿vale? Y cuando yo suelto, aquí hay otro script que está guardando en ese game manager, en su variable username, ¿vale? Pues está guardando José Luis. Y ahí está, ya no es nula el username, ahora es José Luis. 800 00:38:13,579 --> 00:38:16,000 por eso cuando yo juegue me va a poner ese player 801 00:38:16,000 --> 00:38:17,500 y aquí me está cargando 802 00:38:17,500 --> 00:38:20,199 lo que se había guardado aquí 803 00:38:20,199 --> 00:38:21,800 y de hecho también se ve 804 00:38:21,800 --> 00:38:23,980 más fácil, por si acaso es más fácil 805 00:38:23,980 --> 00:38:26,280 entenderlo así, se ve que en username 806 00:38:26,280 --> 00:38:27,820 ha puesto player José Luis 807 00:38:27,820 --> 00:38:29,960 porque es lo que hemos puesto aquí 808 00:38:29,960 --> 00:38:31,380 ¿vale? que lo escriba ahí 809 00:38:31,380 --> 00:38:32,400 ¿sí? 810 00:38:35,409 --> 00:38:37,409 Sí, sí, eso lo he puesto yo también, eso me ha salido 811 00:38:37,409 --> 00:38:39,150 cuando en los juegos que he hecho yo 812 00:38:39,150 --> 00:38:40,090 lo he puesto 813 00:38:40,090 --> 00:38:42,389 Es decir, que tú lo que es el game manager 814 00:38:42,389 --> 00:38:44,750 y el funcionamiento del texto 815 00:38:44,750 --> 00:38:46,110 Sí que lo tenías dominado, ¿no? 816 00:38:46,429 --> 00:38:46,889 Por ir 817 00:38:46,889 --> 00:38:47,550 Sí, eso 818 00:38:47,550 --> 00:38:47,889 Vale 819 00:38:47,889 --> 00:38:49,170 Sí, eso 820 00:38:49,170 --> 00:38:50,289 He puesto bien eso 821 00:38:50,289 --> 00:38:51,969 He puesto en las opciones 822 00:38:51,969 --> 00:38:53,349 Me pasa a una siguiente pantalla 823 00:38:53,349 --> 00:38:54,010 Vale 824 00:38:54,010 --> 00:38:54,789 Y entonces, bueno 825 00:38:54,789 --> 00:38:56,289 Ahora te lo enseñaré cuando pueda 826 00:38:56,289 --> 00:38:57,809 Y luego el return 827 00:38:57,809 --> 00:38:58,929 Vuelvo otra vez para atrás 828 00:38:58,929 --> 00:39:00,050 Luego de un kit 829 00:39:00,050 --> 00:39:02,510 Lanzaconsola 830 00:39:02,510 --> 00:39:03,530 Vale, sí 831 00:39:03,530 --> 00:39:03,889 Ese 832 00:39:03,889 --> 00:39:04,909 Ese 833 00:39:04,909 --> 00:39:07,349 Lanzaconsola 834 00:39:07,349 --> 00:39:08,590 Eso es 835 00:39:08,590 --> 00:39:10,050 Vale, sí 836 00:39:10,050 --> 00:39:11,110 Eso del application 837 00:39:11,110 --> 00:39:11,670 Sí, eso es 838 00:39:11,670 --> 00:39:12,309 Lo que te he comentado 839 00:39:12,309 --> 00:39:12,969 Ya lo ponía 840 00:39:12,969 --> 00:39:14,730 Ya pone que es hasta que no se te ocurra 841 00:39:14,730 --> 00:39:16,050 tenga el build, el juego no 842 00:39:16,050 --> 00:39:18,670 funciona, ¿vale? Pero bueno, que se puede dejar 843 00:39:18,670 --> 00:39:20,769 preparado. Entonces, vamos a ir, si te parece, 844 00:39:20,889 --> 00:39:22,909 con el de los sprites, 845 00:39:23,250 --> 00:39:24,590 ¿vale? Que es el que tenía dudas. 846 00:39:25,170 --> 00:39:25,309 ¿Sí? 847 00:39:27,050 --> 00:39:28,750 Vale. El HUD Manager, 848 00:39:29,309 --> 00:39:30,929 según arranca el juego, 849 00:39:31,050 --> 00:39:32,909 ¿vale? El número 850 00:39:32,909 --> 00:39:34,650 de vidas está en cero, 851 00:39:35,010 --> 00:39:36,789 ¿vale? Porque, de hecho, estas vidas 852 00:39:36,789 --> 00:39:37,329 que es un int, 853 00:39:38,050 --> 00:39:40,710 en el config no hay ningún punto, ¿vale? 854 00:39:40,710 --> 00:39:42,809 Tal y como está estructurado en el enunciado 855 00:39:42,809 --> 00:39:44,849 y tal, no hay ningún punto que nosotros decidamos 856 00:39:44,849 --> 00:39:46,769 con cuántas vidas se departen y cuántas 857 00:39:46,769 --> 00:39:48,730 vidas son máximas, ¿vale? Nosotros estamos dando por 858 00:39:48,730 --> 00:39:50,550 sentado que son un máximo 3. 859 00:39:50,670 --> 00:39:52,650 Es la mecánica de juego que queremos. Y aquí, 860 00:39:52,789 --> 00:39:54,909 cuando declaramos esta variable, que alberga 861 00:39:54,909 --> 00:39:56,590 la información global que hemos dicho, 862 00:39:56,670 --> 00:39:58,570 ¿no? De supra... 863 00:39:58,570 --> 00:40:00,889 por encima del juego, ¿no? La forma de decirlo 864 00:40:00,889 --> 00:40:02,730 esto vale 0, ¿vale? Así que cuando 865 00:40:02,730 --> 00:40:04,730 arrancamos el juego, vale 0 en lives. 866 00:40:05,250 --> 00:40:06,789 ¿Cómo se ha hecho esto? 867 00:40:07,230 --> 00:40:08,449 Pues que al... 868 00:40:08,449 --> 00:40:09,590 A ver... 869 00:40:09,590 --> 00:40:11,610 No, este no es. Este. 870 00:40:12,429 --> 00:40:14,630 Al actualizar las vidas, lo primero que se dice, vale, 871 00:40:14,949 --> 00:40:17,889 si las vidas que hay en el GameManager son cero, es decir, 872 00:40:18,150 --> 00:40:22,570 como está por defecto, directamente yo quiero que el valor del GameManager 873 00:40:22,570 --> 00:40:24,130 vidas valga tres, ¿vale? 874 00:40:24,389 --> 00:40:26,349 Y lo que se hace es, ¿vale? 875 00:40:26,389 --> 00:40:27,050 Ya vale tres. 876 00:40:27,449 --> 00:40:30,570 Es decir, aquí se ha creado una variable nueva, ¿vale? 877 00:40:30,590 --> 00:40:33,289 Esta no existía, de tipo in, que son las vidas, ¿vale? 878 00:40:33,289 --> 00:40:36,110 Es decir, esta variable solo va a existir en este ámbito de lives. 879 00:40:36,690 --> 00:40:38,070 ¿Y qué es lo que va a hacer esto? 880 00:40:38,070 --> 00:40:41,210 guardar el número 881 00:40:41,210 --> 00:40:43,030 que tengan las vidas en cada momento 882 00:40:43,030 --> 00:40:44,909 ¿vale? cuando empezamos 883 00:40:44,909 --> 00:40:47,510 GameManagerLives vale 3 884 00:40:47,510 --> 00:40:49,170 así que lives pasa a valer 3 885 00:40:49,170 --> 00:40:51,070 ¿qué es lo que estamos haciendo? 886 00:40:51,190 --> 00:40:53,130 y esto seguramente sea la parte liosa y ahora 887 00:40:53,130 --> 00:40:54,989 le damos las vueltas que haga falta, pero 888 00:40:54,989 --> 00:40:56,110 tengo aquí 889 00:40:56,110 --> 00:40:59,130 una referencia ¿vale? que teníamos 890 00:40:59,130 --> 00:41:00,989 aquí al componente imagen 891 00:41:00,989 --> 00:41:02,670 que es el que carga la imagen ¿no? 892 00:41:02,809 --> 00:41:05,210 es el que está en el GameObject y aparte 893 00:41:05,210 --> 00:41:06,909 hay que meter 894 00:41:06,909 --> 00:41:09,110 el sprite, es decir 895 00:41:09,110 --> 00:41:10,409 si yo voy a lives image 896 00:41:10,409 --> 00:41:13,289 el punto sprite se refiere 897 00:41:13,289 --> 00:41:15,329 al source image, es la imagen que metemos 898 00:41:15,329 --> 00:41:17,510 aquí, que es un sprite, hay que meterlo como un sprite 899 00:41:17,510 --> 00:41:18,869 entonces 900 00:41:18,869 --> 00:41:21,329 lo que estamos haciendo aquí es diciendo 901 00:41:21,329 --> 00:41:22,989 dentro de la variable que hemos 902 00:41:22,989 --> 00:41:24,829 arrastrado aquí en el editor 903 00:41:24,829 --> 00:41:26,750 dentro del sprite que muestra 904 00:41:26,750 --> 00:41:28,230 méteme la imagen 905 00:41:28,230 --> 00:41:31,289 correspondiente al array que yo he configurado 906 00:41:31,289 --> 00:41:33,190 antes, este que tenemos 907 00:41:33,190 --> 00:41:35,210 aquí, hay un 908 00:41:35,210 --> 00:41:36,670 tipo de clase que de hecho 909 00:41:36,670 --> 00:41:39,090 no es del arte.y porque se usa 910 00:41:39,090 --> 00:41:41,110 en más contextos, a diferencia de text o image 911 00:41:41,110 --> 00:41:42,550 que son componentes de la UI 912 00:41:42,550 --> 00:41:45,210 propiamente dicha, los sprays 913 00:41:45,210 --> 00:41:47,030 se usan como contenedor de 914 00:41:47,030 --> 00:41:48,670 imagen, ¿vale? Y esta se usa 915 00:41:48,670 --> 00:41:50,989 también en 2D, etc. Se ha hecho 916 00:41:50,989 --> 00:41:53,050 este array, ¿vale? Que ya en el propio 917 00:41:53,050 --> 00:41:54,650 prefab del hub, ¿vale? 918 00:41:55,090 --> 00:41:57,250 En el propio prefab, ya habíamos 919 00:41:57,250 --> 00:41:59,369 que esto también lo habías hecho tú por lo que me has comentado 920 00:41:59,369 --> 00:42:01,409 habíamos arrastrado 921 00:42:01,409 --> 00:42:02,909 a ver, en el canvas 922 00:42:02,909 --> 00:42:05,110 habíamos arrastrado los cuatro posibles 923 00:42:05,110 --> 00:42:11,409 prefabs vale la posición cero de la raíz es muerte la de uno es una vida la de vale así hasta tres 924 00:42:11,409 --> 00:42:30,789 el componente imagen va a servir para cargar en cada momento una imagen la que sea yo por 925 00:42:30,789 --> 00:42:36,789 defecto vale como yo porque sé que estoy creando el juego no tú en tu caso sé que 926 00:42:36,789 --> 00:42:41,349 la imagen que quiero que haya cuando arrancó el juego sea la de 3 no pero 927 00:42:41,349 --> 00:42:46,750 nosotros aquí lo que vamos a ir es de las imágenes vale este de hecho este 928 00:42:46,750 --> 00:42:51,969 iconito que aquí es el de sprite vale aquí podemos ir arrastrando sprites 0 1 929 00:42:51,969 --> 00:42:58,550 ves que aquí la imagen y voy a poner un nivel para que lo veamos aplicado 930 00:42:58,550 --> 00:43:13,190 Nivel 1, ¿vale? Esta imagen va a ir variando según la que yo arrastre a esa imagen. Digamos que el componente image lo que hace es cargar una imagen y lo que vamos a hacer es jugar con el array para decirle cuál tiene que cargar de las que hemos metido en ese array. 931 00:43:13,190 --> 00:43:14,550 ¿vale? 932 00:43:15,389 --> 00:43:15,869 entonces 933 00:43:15,869 --> 00:43:18,690 para 934 00:43:18,690 --> 00:43:20,789 a ver, voy aquí 935 00:43:20,789 --> 00:43:23,150 eso, yo aquí puedo ir arrastrando 936 00:43:23,150 --> 00:43:25,130 y ves que aquí se verá, y de hecho en la ejecución 937 00:43:25,130 --> 00:43:27,150 del juego, cuando se muera y se quite 938 00:43:27,150 --> 00:43:28,769 una vida, en el image 939 00:43:28,769 --> 00:43:30,989 va a ir mostrando un diferente 940 00:43:30,989 --> 00:43:32,690 un diferente 941 00:43:32,690 --> 00:43:34,429 sprite, ¿vale? 942 00:43:34,690 --> 00:43:36,809 una cosa es el componente image y otro 943 00:43:36,809 --> 00:43:38,429 el sprite que se mete como 944 00:43:38,429 --> 00:43:40,869 imagen que se muestra, son dos cosas 945 00:43:40,869 --> 00:43:42,110 distintas, ¿vale? 946 00:43:42,110 --> 00:44:09,130 Y es verdad que al principio lía un poco. Yo cuando arranque este nivel, de hecho, vas a ver que automáticamente, aunque yo he arrastrado aquí el lives 0, ¿vale? Cuando le dé al play se va a poner el de 3, ¿ves? ¿Por qué? Porque yo tengo definido que cuando arranque el juego, al empezar este nivel, ¿vale? Si no he, recordemos, si no he variado en ningún momento y no lo he hecho, lo que guarda el game manager en su variable de vidas, como es 0, me pone 3, ¿vale? 947 00:44:09,130 --> 00:44:24,530 Ahora mismo este dato lo que alberga es un 3, un int, un número entero 3, ¿vale? Cuando empieza el juego decimos el número de vidas, otra variable, son 3. ¿Y qué es lo que hacemos? Y esta es la clave, ¿vale? Y le damos, lo repasamos varias veces si quieres. 948 00:44:24,530 --> 00:44:28,329 hay la alusión al componente imagen 949 00:44:28,329 --> 00:44:31,250 y le decimos, vale, dentro de ese componente imagen 950 00:44:31,250 --> 00:44:33,989 dentro del sprite, es decir, con esto 951 00:44:33,989 --> 00:44:35,989 lo que estamos haciendo referencia ahora mismo es 952 00:44:35,989 --> 00:44:38,010 a este hueco que hay aquí, a este campo 953 00:44:38,010 --> 00:44:42,610 lo que pongamos después de este igual 954 00:44:42,610 --> 00:44:45,969 significará el sprite que va a cargar aquí 955 00:44:45,969 --> 00:44:48,909 y tiene que ser un sprite porque este tipo de parámetros 956 00:44:48,909 --> 00:44:51,550 solo admite sprite, solo admite imágenes 957 00:44:51,550 --> 00:44:53,809 seleccionar sprite, de hecho, lo pone ahí 958 00:44:53,809 --> 00:44:59,250 entonces lo que habrá que hacer es cargar un sprite esto es muy importante 959 00:44:59,250 --> 00:45:03,969 siempre saber qué tipo de variable es la que va en cada sitio dentro de el 960 00:45:03,969 --> 00:45:08,429 componente imagen y el campo de search image que se escribe como sprite aquí 961 00:45:08,429 --> 00:45:12,489 tiene que ir algo de tipo sprites por eso hemos creado aquí en algún momento 962 00:45:12,489 --> 00:45:16,809 una variable de tipo sprites vale porque no carga imágenes imágenes es del 963 00:45:16,809 --> 00:45:20,849 componente lo que carga son sprites que es como se llama las imágenes realmente 964 00:45:20,849 --> 00:45:41,889 ¿Vale? Entonces, aquí lo que se le dice es, cárgame de los sprites que he guardado dentro de la variable life array, ¿vale? Recordad que poniendo estas dos llaves después del tipo de variable se dice que puede albergar varios valores porque es un array, ¿vale? 965 00:45:41,889 --> 00:45:53,570 Y luego, para llamar al contenido que hay aquí, hay que poner el nombre de esa variable y dentro de las llaves la posición o índice, ¿vale? Del array que vamos a cargar. 966 00:45:54,969 --> 00:46:02,570 Entonces, ahora mismo, cuando arrancamos el juego, estamos diciendo, vida son tres, ¿vale? Tres, tres. Este es el valor que se está guardando, ¿vale? 967 00:46:02,570 --> 00:46:21,590 Y entonces, como aquí tengo albergado un 3, va a decir, en este momento, ¿vale? Cárgame en la imagen del array de sprites que tengo el que esté en la posición 3. Por eso al arrancar el juego siempre me va a enseñar la imagen que esté en el elemento 3, ¿vale? 968 00:46:21,590 --> 00:46:39,650 Si yo aquí dijera, cárgame, ¿vale? Lo manipulo, ahora esfuerzo que siempre enseñe el 1, ¿vale? Pues ahora siempre que arranque, siempre que arranque el juego, incluso aunque aquí yo he cargado en el editor antes de darle al play y antes de que se haga todo lo que está en el start del script, ¿vale? 969 00:46:39,650 --> 00:47:01,690 Yo arrastré el lives cero, lo que va a hacer es mostrar el de solo una vida, porque le estamos forzando a que del array que hemos configurado solo me enseñe el de una vida. Lo que vamos a ir haciendo en cada momento es que cada vez que se reinicie el nivel, ¿vale? En este start, al hacer estas operaciones, me va a ir enseñando lo que esté guardado en la variable lives. 970 00:47:01,690 --> 00:47:04,449 y siempre va a coincidir con el número de vidas 971 00:47:04,449 --> 00:47:06,349 porque si empieza el juego 972 00:47:06,349 --> 00:47:08,170 vale 0 y lo pasa a hacer 3 973 00:47:08,170 --> 00:47:09,730 ¿vale? pero 974 00:47:09,730 --> 00:47:12,110 nosotros lo que tendremos que ir haciendo es que 975 00:47:12,110 --> 00:47:14,190 cuando nos vayamos 976 00:47:14,190 --> 00:47:15,610 muriendo en el precipicio 977 00:47:15,610 --> 00:47:18,570 lo que vamos a hacer es cada vez que nos caemos 978 00:47:18,570 --> 00:47:20,369 el game manager vidas 979 00:47:20,369 --> 00:47:21,210 le resta una vida 980 00:47:21,210 --> 00:47:23,590 entonces ahora en ese 981 00:47:23,590 --> 00:47:26,449 game manager si nos hemos caído una vez 982 00:47:26,449 --> 00:47:27,969 game manager lives 983 00:47:27,969 --> 00:47:30,210 valdrá 2, se guarda en todos los niveles 984 00:47:30,210 --> 00:47:31,849 resetea el nivel y el hand manager 985 00:47:31,849 --> 00:47:34,190 cuando vuelve a leer todo lo que 986 00:47:34,190 --> 00:47:36,130 está aquí, todos los métodos 987 00:47:36,130 --> 00:47:37,750 que tiene que arrancar al principio 988 00:47:37,750 --> 00:47:39,650 que tiene que interpretar al principio 989 00:47:39,650 --> 00:47:42,170 pues va a decir, vale, vale 990 00:47:42,170 --> 00:47:43,889 dos, si game manager lives 991 00:47:43,889 --> 00:47:46,150 vale cero, le pongo esto, no, vale 992 00:47:46,150 --> 00:47:48,030 dos, así que sigo, y aquí 993 00:47:48,030 --> 00:47:50,170 lo que hace es guardar en lives lo que valga 994 00:47:50,170 --> 00:47:51,530 en ese momento, que es dos 995 00:47:51,530 --> 00:47:53,690 y que es lo que va a hacer aquí, mostrar 996 00:47:53,690 --> 00:47:55,769 la posición dos de la array 997 00:47:55,769 --> 00:47:58,130 de imágenes, de sprites 998 00:47:58,130 --> 00:47:59,849 ¿vale? que es la de 999 00:47:59,849 --> 00:48:01,650 las dos vidas, porque aquí esto 1000 00:48:01,650 --> 00:48:03,849 en ese momento pasará a valer 1001 00:48:03,849 --> 00:48:05,949 dos, que me vuelvo a caer 1002 00:48:05,949 --> 00:48:07,610 y se reinicia otra vez el nivel 1003 00:48:07,610 --> 00:48:09,849 pues nuevamente en precipicio de las 1004 00:48:09,849 --> 00:48:11,269 dos que había se restará una 1005 00:48:11,269 --> 00:48:13,829 ¿vale? y aquí volverá a hacer 1006 00:48:13,829 --> 00:48:15,429 otra vez toda la operación, a ver 1007 00:48:15,429 --> 00:48:17,809 ¿vale cero o no? ¿vale? pues entonces 1008 00:48:17,809 --> 00:48:19,429 lo que guardo es uno, que muestro 1009 00:48:19,429 --> 00:48:21,849 la raíz de sprites que 1010 00:48:21,849 --> 00:48:23,769 tenía, el que corresponde con uno 1011 00:48:23,769 --> 00:48:25,809 que me vuelva a caer y vuelvo a 1012 00:48:25,809 --> 00:48:27,570 restarle uno y se encuentra con cero 1013 00:48:27,570 --> 00:48:48,869 Pero ya está configurado para que si ese Game Manager vale cero, ¿vale? Para empezar, cuando volviera a cargarse el nivel, las vidas serían tres, volvería, nunca mostraría la vacía, ¿vale? Pero aparte es que ya está forzado para que cargue el nivel de inicio, ¿vale? Voy a jugarlo un segundo y lo vemos. 1014 00:48:48,869 --> 00:48:52,659 espera, voy a empezar de hecho 1015 00:48:52,659 --> 00:48:54,500 desde el menú de 1016 00:48:54,500 --> 00:48:57,000 inicial, bueno, he cambiado 1017 00:48:57,000 --> 00:48:59,000 el sprite que hay por defecto 1018 00:48:59,000 --> 00:49:00,880 aunque como por código se actualiza 1019 00:49:00,880 --> 00:49:02,880 pues se cambia solo, pero 1020 00:49:02,880 --> 00:49:04,400 yo ahora mismo al jugar 1021 00:49:04,400 --> 00:49:06,820 como el número de vidas era cero, me lo ha puesto 1022 00:49:06,820 --> 00:49:08,840 a tres, ¿no? por lo que hemos visto antes de 1023 00:49:08,840 --> 00:49:10,920 esto que tenemos 1024 00:49:10,920 --> 00:49:12,800 aquí, ¿vale? y me ha cargado 1025 00:49:12,800 --> 00:49:14,800 el array tres, por consecuencia, si yo me 1026 00:49:14,800 --> 00:49:15,159 caigo 1027 00:49:15,159 --> 00:49:19,000 choco con un 1028 00:49:19,000 --> 00:49:21,320 con un 1029 00:49:21,320 --> 00:49:23,840 collider 1030 00:49:23,840 --> 00:49:26,000 que está configurado con otro script 1031 00:49:26,000 --> 00:49:28,199 para que reinicie el nivel y le reste una vida 1032 00:49:28,199 --> 00:49:30,219 al lives del 1033 00:49:30,219 --> 00:49:31,440 game manager 1034 00:49:31,440 --> 00:49:34,480 ya me ha puesto dos, que yo me vuelvo a caer 1035 00:49:34,480 --> 00:49:35,760 me pone uno 1036 00:49:35,760 --> 00:49:38,320 que yo me vuelvo a caer no me va a poner cero vidas 1037 00:49:38,320 --> 00:49:39,719 lo que hace es que como un game over 1038 00:49:39,719 --> 00:49:41,820 yo ya me he salido del juego 1039 00:49:41,820 --> 00:49:44,360 ahora mismo habría cero vidas 1040 00:49:44,360 --> 00:49:46,059 realmente en el game manager lives 1041 00:49:46,059 --> 00:49:48,239 cuando arranco otra vez como vale cero 1042 00:49:48,239 --> 00:49:50,780 me lo pone en 3 y así infinitamente 1043 00:49:50,780 --> 00:49:52,099 entonces ya 1044 00:49:52,099 --> 00:49:53,960 lo bueno es que si yo pierdo una vida 1045 00:49:53,960 --> 00:49:56,340 gracias a esa variable estática pública 1046 00:49:56,340 --> 00:49:58,659 yo ahora mismo tengo 2 vidas 1047 00:49:58,659 --> 00:50:00,579 y al cambiar de nivel lo que me carga 1048 00:50:00,579 --> 00:50:02,239 son las 2 vidas y no las 3 1049 00:50:02,239 --> 00:50:04,139 que pasa cuando tengo 0 1050 00:50:04,139 --> 00:50:06,079 ¿vale? lo que hemos hablado es que va 1051 00:50:06,079 --> 00:50:08,300 entre niveles guardando 1052 00:50:08,300 --> 00:50:09,860 los valores 1053 00:50:09,860 --> 00:50:12,579 ¿vale? ¿qué tal hasta aquí? 1054 00:50:13,539 --> 00:50:14,639 bueno yo si sigo jugando 1055 00:50:14,639 --> 00:50:15,159 pues eso 1056 00:50:15,159 --> 00:50:16,340 Sí, sí. Vale, vale. 1057 00:50:16,820 --> 00:50:18,119 Sí, esa es la idea. 1058 00:50:18,460 --> 00:50:19,780 Entonces, cuando tú metes un image, 1059 00:50:19,920 --> 00:50:20,659 lo que se hace es, 1060 00:50:21,179 --> 00:50:22,880 búscame la referencia de estos sprites, 1061 00:50:22,960 --> 00:50:24,039 es lo que le estás diciendo más o menos. 1062 00:50:24,059 --> 00:50:26,920 Claro, el problema es la nomenclatura, 1063 00:50:27,179 --> 00:50:29,139 porque image parece que se refiere a imágenes, 1064 00:50:29,960 --> 00:50:31,760 y sí, se refiere más que a imágenes 1065 00:50:31,760 --> 00:50:34,360 al reproductor de imagen, vamos a decirlo así. 1066 00:50:34,940 --> 00:50:36,039 Las imágenes en sí, 1067 00:50:36,139 --> 00:50:37,139 lo que son las imágenes en sí, 1068 00:50:37,219 --> 00:50:37,860 se llaman sprites, 1069 00:50:38,019 --> 00:50:41,099 y tienen otro tipo de variable también, ¿vale? 1070 00:50:41,099 --> 00:50:42,099 Y eso es lo que hay que cargar 1071 00:50:42,099 --> 00:50:44,119 dentro del componente image, un sprite. 1072 00:50:45,159 --> 00:50:59,500 Pero no ha habido que, por ejemplo, en el vídeo de Álvaro lo que se hace es, que es otra forma de hacerlo, según lo que se va viendo, según lo que se busque en cada momento. 1073 00:50:59,679 --> 00:51:04,679 Pero yo puedo tener, claro, aquí lo que estamos haciendo es sombrear los niveles. 1074 00:51:04,800 --> 00:51:13,460 Él lo que hacía era, y voy a cargar el de tres, él lo que hacía era coger un sprite, a ver, por ejemplo, cogía esto y lo que él explicaba, si no me equivoco, 1075 00:51:13,460 --> 00:51:16,639 es que iba, que también se puede cambiar por código, 1076 00:51:16,760 --> 00:51:19,539 poner otro tipo de imágenes, que es como considerar 1077 00:51:19,539 --> 00:51:22,079 que todo el área de la imagen que hemos metido 1078 00:51:22,079 --> 00:51:24,860 se puede manipular y se puede hacer un recorte. 1079 00:51:25,099 --> 00:51:27,239 Entonces, cuando pierdo una vida, lo que hago, 1080 00:51:27,320 --> 00:51:30,699 en vez de cargar otra imagen que solo tiene los dos corazones, 1081 00:51:31,420 --> 00:51:33,780 no es otra imagen, estoy variando otro valor 1082 00:51:33,780 --> 00:51:36,599 que es que puedo recortar esta imagen hasta aquí. 1083 00:51:36,780 --> 00:51:39,480 Que pierdo otra vida, pues le digo, me meteré otra vez 1084 00:51:39,480 --> 00:51:42,019 en el componente image y me meteré en fill amount. 1085 00:51:42,019 --> 00:52:04,519 De hecho, mira, si yo, por ejemplo, me meto en livesImage, que es el que está referenciando a ese componente, habrá otro que se llama fillAmount. Y yo con esto puedo decirle que esto valga 0.75. Bueno, lo estoy escribiendo de pena. Igual a 0, que no estaba mirando. 0.75. 1086 00:52:04,519 --> 00:52:16,269 ¿Vale? Si yo, de hecho, fíjate, ahora arranco el juego, ¿vale? Y lo pongo en 1, cuando arranque el juego, no me lo está haciendo porque no se estará cumpliendo la condición. 1087 00:52:16,269 --> 00:52:47,190 pero a ver, espera, la hicimos filamón, a ver, estoy accediendo a él, ah bueno, es que no he guardado, que leches, vale, a ver, ahora sí que debería hacerlo, vale, ves que se ha puesto por código, si es que lo bueno de poder acceder a los componentes es que ya podemos acceder a cualquier cosa que tenemos aquí, con saber, con ver cómo se llama cada cosa aquí, ya sabemos que se puede ir poniendo aquí, 1088 00:52:47,190 --> 00:53:12,550 Por ejemplo, yo que sé, yo sin tener ni idea digo fill method, ¿vale? Pues aquí habrá, como estoy dentro del componente image, ¿vale? Pues habrá un, ¿vale? Mira, aquí está. Habrá un tipo de propiedad que es fill method, luego hay que ver qué es lo que permite hacer, ¿vale? Pero eso permitirá entre estas opciones, pues cambiar entre estas en ciertos momentos que a nosotros nos convenga en tiempo de ejecución, ¿vale? 1089 00:53:12,550 --> 00:53:28,380 ¿Qué tal hasta aquí? Más o menos se va entendiendo. A ver, simple, ¿vale? Simple porque lo que vamos a hacer es cargar imágenes una tras otra, varias, y entre esas se van cargando. 1090 00:53:28,380 --> 00:53:31,099 Vale, entonces 1091 00:53:31,099 --> 00:53:35,320 Esto resuelto más o menos 1092 00:53:35,320 --> 00:53:36,900 Espera que yo no sé si sigues estando 1093 00:53:36,900 --> 00:53:38,280 A ver 1094 00:53:38,280 --> 00:53:43,599 Vale, bueno, me pone que estás 1095 00:53:43,599 --> 00:53:44,960 No me contestas, pero 1096 00:53:44,960 --> 00:53:47,099 Voy a ir a 1097 00:53:47,099 --> 00:53:49,480 Por lo que me has ido diciendo 1098 00:53:49,480 --> 00:53:51,360 Los botones ya los tenías configurados 1099 00:53:51,360 --> 00:53:53,800 En el 1100 00:53:53,800 --> 00:53:55,000 Menú inicial 1101 00:53:55,000 --> 00:53:57,739 Voy al menú configuración 1102 00:53:57,739 --> 00:53:59,739 Que probablemente sea lo más complicado 1103 00:53:59,739 --> 00:54:00,440 ¿Vale? 1104 00:54:01,099 --> 00:54:11,420 Si nos fijamos, esto ya no es el HUD, esto es otro canvas, ¿vale? Que hay aquí, pues que hemos configurado con un image que hemos cargado, otro sprite que es el de este fondo para que ocupe todo el fondo. 1105 00:54:12,739 --> 00:54:23,599 Hemos puesto un slider, ¿vale? De los distintos componentes que puede haber en la UI. Pues en el tema se explican, ¿vale? Aquí esto sería un slider, que es el slider. 1106 00:54:23,599 --> 00:54:42,500 Y esto viene del tema, tiene diferentes subapartados. Uno para configurar, por ejemplo, el handle que es, en este caso, esta bola, el manejador que sirve para identificar qué se arrastra. Luego, cuál es el área que está rellena. Si yo voy avanzando aquí, veréis que hay una zona roja y otra verde. 1107 00:54:42,500 --> 00:54:58,380 Pues el fil área es lo que está relleno, lo que se ha modificado y el background se refiere a la parte que está sin marcar del slider, ¿vale? Como va de izquierda a derecha, cuando digo sin marcar me refiero a que no se ha completado, ¿vale? 1108 00:54:58,380 --> 00:55:00,300 bueno 1109 00:55:00,300 --> 00:55:02,159 Javi creo que te has 1110 00:55:02,159 --> 00:55:04,559 desconectado, pero bueno, lo que me importa de esto 1111 00:55:04,559 --> 00:55:05,980 es que esos 1112 00:55:05,980 --> 00:55:07,360 diferentes 1113 00:55:07,360 --> 00:55:10,360 elementos 1114 00:55:10,360 --> 00:55:12,820 de GameObjects, de UI 1115 00:55:12,820 --> 00:55:13,639 ¿vale? 1116 00:55:14,280 --> 00:55:16,800 tienen sus propias propiedades y esa es la gracia que tienen 1117 00:55:16,800 --> 00:55:18,440 que el botón, por ejemplo 1118 00:55:18,440 --> 00:55:20,840 este botón de volver, cuando nos metemos 1119 00:55:20,840 --> 00:55:22,659 tiene en la parte 1120 00:55:22,659 --> 00:55:23,119 inferior 1121 00:55:23,119 --> 00:55:26,440 unos métodos, digamos 1122 00:55:26,440 --> 00:55:27,780 por eso tiene esos paréntesis 1123 00:55:27,780 --> 00:55:31,579 que permiten hacer acciones sin tener que hacer mucho esfuerzo. 1124 00:55:31,639 --> 00:55:35,400 Por ejemplo, este onClick, lo que significa, los botones vienen así configurados, 1125 00:55:35,400 --> 00:55:40,820 es que cuando yo hago clic en ese botón, puedo arrastrar cualquier script, 1126 00:55:40,920 --> 00:55:45,099 que en este caso se ha arrastrado uno que se llama canvas, que se ha hecho aquí, 1127 00:55:45,500 --> 00:55:52,659 que se llama, no, perdona, loadScene, que básicamente lo que se ha hecho es arrastrar este script ahí. 1128 00:55:53,039 --> 00:55:55,559 Es un script que ni siquiera está aplicado a ningún object, 1129 00:55:55,559 --> 00:56:08,179 Se ha arrastrado directamente al botón y entonces ese botón, ese load the scenes, que lo abro aquí, está configurado simplemente. A ver, y aquí algo he tocado. Ah, bueno, estaba así. 1130 00:56:08,179 --> 00:56:28,900 Lo que configura es un método. Y ojo, para que lo detecte ahora en las posibilidades que ofrece este tipo de eventos, de métodos eventos que tienen las distintas interfaces, es que luego nos podemos meter dentro de las funcionalidades que tiene ese script que hemos adjuntado. 1131 00:56:28,900 --> 00:56:48,519 Y ahí, por ejemplo, uno referente a los métodos que hemos creado nosotros, ¿vale? Con un botón, por ejemplo, podemos decir que este GameObject, pues por ejemplo, se active o se desactive, ¿vale? Y entonces yo cuando le doy aquí, lo que puedo hacer es que se active o se desactive un nivel, ¿vale? 1132 00:56:48,519 --> 00:56:56,320 Porque lo que estamos haciendo es que este canvas, ahora por ejemplo he cogido el canvas y se ha arrastrado ahí, que esto haga que se active y se desactive el canvas. 1133 00:56:56,320 --> 00:57:05,360 Claro, cuando se activa y se desactiva el canvas, lo que sucede es que se deja de ver. A ver, cuando lo toque, pues se va y se ha desactivado todo el canvas. 1134 00:57:05,519 --> 00:57:12,300 Es decir, se puede manipular multitud de cosas diciendo que cuando se haga clic en ese botón, pues pasen cosas. 1135 00:57:12,300 --> 00:57:26,199 Por ejemplo, yo en este loadScenes se ha generado un método, y para que se vean, vuelvo a decir, tienen que ser métodos públicos, un método llamado loadScene, que se parece un poco al nombre de la clase, del script, pero no es exactamente igual. 1136 00:57:26,199 --> 00:57:39,199 Ahora nos fijamos que si la escena en la que estamos es la 1, cuando le damos a ese botón, lo que hará... 1137 00:57:39,199 --> 00:57:44,559 A ver... Ah, bueno, vale. Fijaos que lo que hemos hecho es ponerle un parámetro también. 1138 00:57:45,059 --> 00:57:55,019 Bueno, espera, es que no quiero adelantarme, pero cuando cargamos este load scene, cuando arrastramos este script load scenes, 1139 00:57:55,019 --> 00:58:18,000 ¿Vale? Aquí nos va a permitir ver las funciones que haya declaradas públicas. Aquí ahora mismo, como da error, ¿vale? Pues no se ve. Pero si yo vuelvo aquí con esto bien arrastrado, a ver, ¿vale? Y ojo, ¿vale? Perdona, que esto no lo he dicho. Para poder arrastrarlo, primero tiene que estar en un GameObject, ¿vale? Tiene que estar en un GameObject. 1140 00:58:18,000 --> 00:58:26,239 Yo lo he arrastrado aquí, pero no tanto para que se aplique desde este GameObject, sino para poder arrastrarlo desde aquí, ¿vale? 1141 00:58:27,500 --> 00:58:35,139 Y aquí que pueda decir, vale, de los scripts que tengo aquí activos, que me cargue este, ¿vale? 1142 00:58:35,440 --> 00:58:37,260 Entonces, ¿qué es lo que estamos consiguiendo? 1143 00:58:37,780 --> 00:58:43,659 Al arrastrar este canvas, podríamos decir, por ejemplo, quiero que accedas a los métodos del otro script que hay aquí arrastrado, ¿vale? 1144 00:58:43,679 --> 00:58:44,480 Que es el config menu. 1145 00:58:44,480 --> 00:58:58,599 Pues yo, si busco aquí, habrá otra referencia, config-menu. Y aquí enseñará los métodos, que muchos ya vienen por defecto, son los que vienen, todos los métodos públicos que haya dentro de ese script que estemos referenciando. 1146 00:58:58,599 --> 00:59:14,539 En loadTheScene, si os fijáis, está el método loadTheScene que habíamos creado aquí. Por eso yo lo puedo buscar dentro de loadTheScene y ver loadTheScene. Se ven los métodos públicos que hay. También hay otro salir que está ahí creado, que también es público y por eso sale ahí. 1147 00:59:14,539 --> 00:59:26,539 Si yo pusiera esa función de salir, lo que hará este botón cuando le demos a volver es un application quit, que es que se quitaría el ejecutable. 1148 00:59:27,280 --> 00:59:30,219 Entonces, a ver, espero que borra algo que no debía. 1149 00:59:30,940 --> 00:59:38,900 Lo que se puede hacer es no solo decir que se ejecute lo que hay dentro como en este salir, sino, como ya vimos, incorporar un parámetro. 1150 00:59:39,679 --> 00:59:41,159 ¿Y qué significa eso? 1151 00:59:41,159 --> 01:00:01,179 Que nosotros, en cualquier momento, con este script, cuando carguemos su método público, loadScene, nos va a permitir pasar un valor aquí. ¿Y qué valor es ese? Si no hubiéramos puesto este parámetro, aquí no saldría nada, como pasaba antes con salir, que simplemente ejecuta salir, no hay más opciones. 1152 01:00:01,179 --> 01:00:22,940 Si vamos, de hecho, y voy a hacer otro ejemplo, si yo voy poniendo aquí más parámetros, por ejemplo, int scene y aparte, no sé si va a admitir más de uno, flow número dos, yo que sé, en principio debería permitir, a ver, voy a load the scenes, vale. 1153 01:00:23,780 --> 01:00:26,559 Bueno, en otras funcionalidades se podría. 1154 01:00:26,699 --> 01:00:28,780 Solo permite un máximo de un parámetro, ¿vale? 1155 01:00:29,199 --> 01:00:33,599 Pero hay otras funcionalidades que se pueden incluso pasar varios parámetros y dejan distintos campos. 1156 01:00:33,699 --> 01:00:37,800 Esto pasa, por ejemplo, en los eventos de animación también se podrían hacer este tipo de cosas. 1157 01:00:38,199 --> 01:00:39,219 ¿Pero qué permite esto? 1158 01:00:39,219 --> 01:00:48,539 Que cada vez que tengamos un botón y arrastremos un objeto que tenga este script cargado, ¿vale? 1159 01:00:49,940 --> 01:00:51,739 A ver, que no he debido de guardar. 1160 01:00:51,880 --> 01:00:52,440 Efectivamente. 1161 01:00:52,940 --> 01:01:16,179 Si yo en el botón arrastro el objeto canvas y yo busco dentro de lo que tiene el script loadScenes con su variable, con su método, perdón, loadScenes, ves que entre los parámetros hay uno que va a pedir de tipo int, que es ese que hemos creado que se llama escena, int escena. 1162 01:01:16,179 --> 01:01:18,300 y ahí nosotros 1163 01:01:18,300 --> 01:01:19,579 podemos ir diciendo 1164 01:01:19,579 --> 01:01:22,239 que vaya la escena, en este caso 1165 01:01:22,239 --> 01:01:23,780 cero, creo que si no me equivoco 1166 01:01:23,780 --> 01:01:26,159 porque la escena de las que tenemos aquí 1167 01:01:26,159 --> 01:01:28,239 la escena en los build settings 1168 01:01:28,239 --> 01:01:30,260 la cero es la del menú inicial, es decir, yo voy a 1169 01:01:30,260 --> 01:01:31,900 querer que vuelva al dar el botón 1170 01:01:31,900 --> 01:01:34,119 al menú inicial, que ojo 1171 01:01:34,119 --> 01:01:36,079 que si yo pusiera la uno, iría al nivel 1172 01:01:36,079 --> 01:01:37,940 uno, vamos a hacer la prueba 1173 01:01:37,940 --> 01:01:39,380 si yo le doy a 1174 01:01:39,380 --> 01:01:42,079 aquí, al botón 1175 01:01:42,079 --> 01:01:43,019 vuelvo al 1176 01:01:43,019 --> 01:01:45,659 menú inicial, si yo 1177 01:01:45,659 --> 01:01:47,840 rápidamente dijera que este botón 1178 01:01:47,840 --> 01:01:49,699 a donde me tiene que llevar es al nivel 1 1179 01:01:49,699 --> 01:01:51,800 porque es el índice de los 1180 01:01:51,800 --> 01:01:52,599 build settings, ¿vale? 1181 01:01:53,380 --> 01:01:55,800 Ahí estoy haciendo referencia al nivel 1 1182 01:01:55,800 --> 01:01:57,199 de los build settings, ¿vale? 1183 01:01:57,440 --> 01:01:59,719 Ahora cuando arranque el juego y le dé 1184 01:01:59,719 --> 01:02:01,059 al volver a donde me lleva es al 1185 01:02:01,059 --> 01:02:03,380 nivel 1, fijaos. 1186 01:02:03,500 --> 01:02:05,119 O si pusiera el 2, el 3, etc. 1187 01:02:05,599 --> 01:02:06,460 ¿Y esto por qué? 1188 01:02:07,099 --> 01:02:09,179 Lo voy a poner 0, que es el que nos interesa 1189 01:02:09,179 --> 01:02:11,559 porque aquí 1190 01:02:11,559 --> 01:02:12,760 lo que pasamos es 1191 01:02:12,760 --> 01:02:15,679 un número, que es el que ponemos en el inspector 1192 01:02:15,679 --> 01:02:17,420 si la escena 1193 01:02:17,420 --> 01:02:18,840 es igual a 1 1194 01:02:18,840 --> 01:02:21,199 aparte quiero que en 1195 01:02:21,199 --> 01:02:22,519 este game manager 1196 01:02:22,519 --> 01:02:25,659 omnipresente 1197 01:02:25,659 --> 01:02:26,940 que hablamos, ¿no? siempre 1198 01:02:26,940 --> 01:02:29,539 si es la escena 1, recordad que es 1199 01:02:29,539 --> 01:02:31,219 la escena de que empieza el juego 1200 01:02:31,219 --> 01:02:33,139 y ahí siempre queremos empezar el juego 1201 01:02:33,139 --> 01:02:34,619 con las vidas a 3 1202 01:02:34,619 --> 01:02:37,099 guardaría ese nivel de vidas en 3 1203 01:02:37,099 --> 01:02:38,440 para que nuevamente 1204 01:02:38,440 --> 01:02:40,960 toda la lógica de esos sprites 1205 01:02:40,960 --> 01:02:45,519 pusiera la posición 3, el índice 3 de los distintos arrays. 1206 01:02:46,360 --> 01:02:49,440 Pero bueno, esto es como algo circunstancial en caso de que se diera esa condición. 1207 01:02:49,519 --> 01:02:53,360 Lo importante es que lo que va a hacer es, y recordemos, para el gestor de imágenes 1208 01:02:53,360 --> 01:02:57,860 hay que usar la librería de Scene Management, lo que vamos a decirle es que cargue la arcena 1209 01:02:57,860 --> 01:03:02,119 correspondiente al número que hemos escrito en el inspector, que en este caso será la 0, 1210 01:03:02,119 --> 01:03:08,139 que es la del menú inicial. Entonces es muy fácil con estos botones, con una configuración como esta, 1211 01:03:08,139 --> 01:03:32,139 Por ejemplo, ir al menú inicial y si os fijáis de los tres botones que se han puesto, dos, ¿vale? Si voy a los dos botones, dos tienen exactamente el mismo load scenes y lo que se va variando en cada botón sin más esfuerzo es la función que coge y según el parámetro va a un nivel o a otro cada botón, ¿vale? 1212 01:03:32,139 --> 01:03:57,539 El play uno, el play va al uno y además pondrá la vida a tres, que es lo que hemos visto antes en este config y al nivel cinco, que es este nivel, ¿vale? Según se ha configurado en los build settings. Y bueno, y el otro, el otro botón, el de kit, también con el mismo script de load the scenes, pues está aludiendo, hemos puesto que aluda al otro método, ¿vale? 1213 01:03:57,539 --> 01:04:15,300 Porque recordemos que en lo de scenes, aparte de verse el log que viene por defecto, pues también estaba el de salir. Entonces, con un solo script, que eso sí, recordad, hay que cargar en algún elemento, que es el que arrastramos aquí, ¿vale? Es decir, que hay que cargar algún game object, ¿vale? Hay que arrastrarlo. 1214 01:04:15,300 --> 01:04:18,159 no se puede arrastrar directamente 1215 01:04:18,159 --> 01:04:19,619 el script desde el inspector 1216 01:04:19,619 --> 01:04:20,840 no se puede hacer 1217 01:04:20,840 --> 01:04:24,039 a ver, esto por ejemplo no se puede coger 1218 01:04:24,039 --> 01:04:25,679 el loads of scenes que tengo aquí 1219 01:04:25,679 --> 01:04:30,340 ¿vale? y decir 1220 01:04:30,340 --> 01:04:32,320 una pregunta 1221 01:04:32,320 --> 01:04:34,599 esto no debería funcionar 1222 01:04:34,599 --> 01:04:36,000 bien, dime 1223 01:04:36,000 --> 01:04:37,980 mira, una cosa 1224 01:04:37,980 --> 01:04:40,460 por ejemplo, he visto que 1225 01:04:40,460 --> 01:04:41,900 has arrastrado el canvas entero 1226 01:04:41,900 --> 01:04:44,639 ¿puedes arrastrar 1227 01:04:44,639 --> 01:04:46,559 una parte del canvas o tiene que ser entero 1228 01:04:46,559 --> 01:04:48,239 todo. Hay que arrastrar 1229 01:04:48,239 --> 01:04:50,320 el elemento del canvas que tenga 1230 01:04:50,320 --> 01:04:51,320 el script que vas a usar. 1231 01:04:52,420 --> 01:04:53,920 El elemento del canvas. Si arrastras el 1232 01:04:53,920 --> 01:04:56,380 canvas entero, la pues le alfarda, 1233 01:04:56,480 --> 01:04:58,480 ¿no? Entiendo. No, no. De hecho, estoy 1234 01:04:58,480 --> 01:04:59,659 arrastrando el canvas entero. 1235 01:05:00,579 --> 01:05:01,300 Esto es como 1236 01:05:01,300 --> 01:05:03,900 cuando antes arrastraba 1237 01:05:03,900 --> 01:05:06,320 en el HUD. Me estoy quedando sin voz, perdona, 1238 01:05:06,400 --> 01:05:08,260 que igual en algún momento empiezo 1239 01:05:08,260 --> 01:05:09,440 a ronquear. 1240 01:05:10,480 --> 01:05:12,159 Me voy al HUD, ¿vale? Que habíamos configurado. 1241 01:05:12,860 --> 01:05:14,199 Si te fijas, ¿vale? 1242 01:05:14,579 --> 01:05:16,400 Cada uno de estos elementos que vamos 1243 01:05:16,400 --> 01:05:18,519 arrastrando tiene un color, un 1244 01:05:18,519 --> 01:05:20,340 iconito, ¿vale? Esto depende 1245 01:05:20,340 --> 01:05:21,699 de que yo estoy arrastrando 1246 01:05:21,699 --> 01:05:24,460 un GameObject, pero yo de ese GameObject 1247 01:05:24,460 --> 01:05:26,539 luego cojo una parte, un componente 1248 01:05:26,539 --> 01:05:28,480 ¿vale? Entonces da igual 1249 01:05:28,480 --> 01:05:30,420 que GameObject sea, si al final lo que va 1250 01:05:30,420 --> 01:05:32,099 a coger de ese GameObject es el script 1251 01:05:32,099 --> 01:05:34,340 load the scenes, fíjate en el icono este 1252 01:05:34,340 --> 01:05:34,960 del asterisco 1253 01:05:34,960 --> 01:05:38,280 Sí, sí, va a coger el que está asociado al script 1254 01:05:38,280 --> 01:05:40,360 Solo va a coger el asterisco, bueno, por defecto 1255 01:05:40,360 --> 01:05:42,500 coge todo el objeto, ¿vale? Mira, fíjate 1256 01:05:42,500 --> 01:05:44,280 yo arrastro el canvas y está 1257 01:05:44,280 --> 01:05:46,199 el objeto, lo que pasa es que como nosotros sabemos que 1258 01:05:46,199 --> 01:05:50,300 En ese canvas pusimos ese script, que esta es la clave de los botones. 1259 01:05:50,920 --> 01:05:57,320 Nosotros en la función nos podemos ir metiendo, fíjate, en todos los componentes que tenga ese objeto. 1260 01:05:57,320 --> 01:06:04,119 Es decir, estos son los distintos componentes, el transform que tiene siempre, red transform, canvas, quédate con los nombres. 1261 01:06:04,619 --> 01:06:12,539 Porque yo arrastré el objeto canvas y yo ahora aquí puedo meterme en red transform, canvas, en todos sus parámetros y cambiarlos. 1262 01:06:12,539 --> 01:06:15,119 entonces se pueden hacer un montón de cosas 1263 01:06:15,119 --> 01:06:17,440 la cosa es que también tenemos un script 1264 01:06:17,440 --> 01:06:19,539 con dos variables públicas 1265 01:06:19,539 --> 01:06:20,699 que permitan hacer eso 1266 01:06:20,699 --> 01:06:23,019 pero ojo, nuevamente, ¿vale? 1267 01:06:23,059 --> 01:06:23,679 como ejemplo 1268 01:06:23,679 --> 01:06:27,360 yo puedo, ese script 1269 01:06:27,360 --> 01:06:29,300 de, a ver que me 1270 01:06:29,300 --> 01:06:30,519 vuelvo loco a veces un poco 1271 01:06:30,519 --> 01:06:32,659 de load the scenes, ponerse la event system 1272 01:06:32,659 --> 01:06:34,539 por decir algo, ¿vale? se lo agrega ahí 1273 01:06:34,539 --> 01:06:37,139 ¿vale? y yo lo que hago 1274 01:06:37,139 --> 01:06:39,019 en el botón es decirle, vale 1275 01:06:39,019 --> 01:06:40,840 yo quiero que cojas del event system 1276 01:06:40,840 --> 01:06:42,760 dentro de todo lo que tiene 1277 01:06:42,760 --> 01:06:43,719 load the scenes 1278 01:06:43,719 --> 01:06:45,179 y load the scene 1279 01:06:45,179 --> 01:06:45,619 la 5 1280 01:06:45,619 --> 01:06:46,260 y ya está 1281 01:06:46,260 --> 01:06:47,420 porque realmente 1282 01:06:47,420 --> 01:06:48,380 el game object 1283 01:06:48,380 --> 01:06:49,460 es algo 1284 01:06:49,460 --> 01:06:50,500 recordad 1285 01:06:50,500 --> 01:06:51,360 del primer día 1286 01:06:51,360 --> 01:06:52,400 que un game object 1287 01:06:52,400 --> 01:06:53,679 es simplemente 1288 01:06:53,679 --> 01:06:55,539 un empty 1289 01:06:55,539 --> 01:06:55,940 ¿vale? 1290 01:06:55,960 --> 01:06:56,500 con un transform 1291 01:06:56,500 --> 01:06:57,099 eso sí tiene 1292 01:06:57,099 --> 01:06:58,059 lo del game object 1293 01:06:58,059 --> 01:06:58,719 y un transform 1294 01:06:58,719 --> 01:06:58,980 ¿vale? 1295 01:06:59,519 --> 01:07:00,500 pero luego le vamos poniendo 1296 01:07:00,500 --> 01:07:01,320 los componentes 1297 01:07:01,320 --> 01:07:01,940 que es lo que hace 1298 01:07:01,940 --> 01:07:02,900 que un game object 1299 01:07:02,900 --> 01:07:03,840 se vaya convirtiendo 1300 01:07:03,840 --> 01:07:04,280 en unas cosas 1301 01:07:04,280 --> 01:07:04,900 o en otras 1302 01:07:04,900 --> 01:07:05,619 ¿vale? 1303 01:07:05,639 --> 01:07:06,880 entonces da un poco igual 1304 01:07:06,880 --> 01:07:07,440 que está aquí 1305 01:07:07,440 --> 01:07:08,320 o en cualquier sitio 1306 01:07:08,320 --> 01:07:09,840 sí que hay que 1307 01:07:09,840 --> 01:07:12,179 Meterlo en algún objeto 1308 01:07:12,179 --> 01:07:14,460 Porque aquí solo permite meter objetos 1309 01:07:14,460 --> 01:07:15,480 Porque yo no puedo 1310 01:07:15,480 --> 01:07:17,500 Se puede, ¿vale? Pero va a dar problemas 1311 01:07:17,500 --> 01:07:20,619 No se puede cargar directamente 1312 01:07:20,619 --> 01:07:23,300 Desde el panel de proyectos 1313 01:07:23,300 --> 01:07:23,840 Los assets 1314 01:07:23,840 --> 01:07:26,619 Tiene que ser desde la jerarquía 1315 01:07:26,619 --> 01:07:28,340 ¿Vale? De la escena concreta en este caso 1316 01:07:28,340 --> 01:07:30,559 ¿Vale? Esto a diferencia del game manager 1317 01:07:30,559 --> 01:07:32,599 Si que alude a elementos que están 1318 01:07:32,599 --> 01:07:34,000 Dentro del nivel 1319 01:07:34,000 --> 01:07:35,719 Por eso el game manager 1320 01:07:35,719 --> 01:07:38,440 Ese script que está como afuera 1321 01:07:38,440 --> 01:07:41,239 Ese script sí que no hay que 1322 01:07:41,239 --> 01:07:43,320 No hay que vincularlo 1323 01:07:43,320 --> 01:07:44,239 Como componente a nada 1324 01:07:44,239 --> 01:07:46,519 Simplemente pues 1325 01:07:46,519 --> 01:07:48,400 Está guardando datos 1326 01:07:48,400 --> 01:07:50,840 Que son, como su propio nombre indica 1327 01:07:50,840 --> 01:07:52,380 Estáticos durante todo el juego 1328 01:07:52,380 --> 01:07:53,559 ¿Vale? 1329 01:07:54,440 --> 01:07:56,460 Lo voy a poner aquí 1330 01:07:56,460 --> 01:07:57,300 5, vale 1331 01:07:57,300 --> 01:07:58,599 ¿Qué tal hasta aquí? 1332 01:08:02,820 --> 01:08:04,420 Bien, bien, bien, perfecto 1333 01:08:04,420 --> 01:08:06,780 Entonces esto también nos da 1334 01:08:06,780 --> 01:08:08,280 Nos da 1335 01:08:08,280 --> 01:08:11,139 Para ir más allá, aunque no es lo que se 1336 01:08:11,139 --> 01:08:13,239 pide, nos da la posibilidad, fíjate, 1337 01:08:13,340 --> 01:08:15,059 de decir, mira, este fondo 1338 01:08:15,059 --> 01:08:17,020 si yo lo desactivo o lo activo, ¿vale? 1339 01:08:17,119 --> 01:08:18,279 Es el fondo de la imagen. 1340 01:08:19,119 --> 01:08:21,319 Imagínate, yo digo que cuando le dé al botón 1341 01:08:21,319 --> 01:08:23,100 config, en vez de ir a otro nivel, 1342 01:08:23,220 --> 01:08:25,159 lo que hago es que ese fondo, arrastro el game 1343 01:08:25,159 --> 01:08:27,100 object, ¿vale? Yo digo que 1344 01:08:27,100 --> 01:08:27,920 ese game object 1345 01:08:27,920 --> 01:08:30,979 haga un setActive, que es un método 1346 01:08:30,979 --> 01:08:32,819 que sirve para activar o desactivar, ¿vale? 1347 01:08:32,859 --> 01:08:35,060 Es análogo, ¿vale? Es análogo 1348 01:08:35,060 --> 01:08:37,060 a dar a este botón. setActiveTrue es 1349 01:08:37,060 --> 01:08:39,079 que está activo, setActiveFalse es que 1350 01:08:39,079 --> 01:08:41,119 está inactivo. Ves que aparece y desaparece. 1351 01:08:41,140 --> 01:08:43,460 y también digamos que se 1352 01:08:43,460 --> 01:08:44,439 desaparece aquí 1353 01:08:44,439 --> 01:08:48,039 digo porque tiene un montón de posibilidades 1354 01:08:48,039 --> 01:08:49,159 el setActive 1355 01:08:49,159 --> 01:08:50,199 como hemos visto 1356 01:08:50,199 --> 01:08:53,359 setActive tiene un parámetro de bool 1357 01:08:53,359 --> 01:08:55,319 según el bool es 1358 01:08:55,319 --> 01:08:57,720 true o false 1359 01:08:57,720 --> 01:08:59,279 lo que 1360 01:08:59,279 --> 01:09:01,199 conseguimos con esto es que 1361 01:09:01,199 --> 01:09:03,619 si yo arranco el juego 1362 01:09:03,619 --> 01:09:04,979 y le doy al botón config 1363 01:09:04,979 --> 01:09:06,279 que es en el que estoy poniendo esto 1364 01:09:06,279 --> 01:09:09,539 si yo clico lo que hago es poner en false 1365 01:09:09,539 --> 01:09:11,899 el SetActive de este objeto fondo. 1366 01:09:12,199 --> 01:09:14,939 Fíjate, yo le doy al juego, empieza, 1367 01:09:15,119 --> 01:09:16,819 porque como de momento no he clicado en ningún lado, 1368 01:09:17,380 --> 01:09:19,039 yo cuando le doy a Config no va a ir, 1369 01:09:19,180 --> 01:09:20,520 porque en ningún momento se lo estoy diciendo, 1370 01:09:20,600 --> 01:09:21,640 no estoy yendo a otro nivel. 1371 01:09:22,119 --> 01:09:23,840 Lo que estoy diciendo es que desactive, 1372 01:09:24,000 --> 01:09:26,840 ahora vas a ver qué ocurre, ese GameObject fondo 1373 01:09:26,840 --> 01:09:28,199 y por tanto se va a dejar de ver. 1374 01:09:28,659 --> 01:09:30,640 Fíjate, cuando le doy al botón, placa. 1375 01:09:31,899 --> 01:09:34,380 Desactivado, porque lo ha puesto en falso. 1376 01:09:34,800 --> 01:09:37,239 Ha puesto este SetActive en falso. 1377 01:09:37,239 --> 01:09:55,239 Con los botones se puede acceder a prácticamente todo. Es decir, los botones son una forma más o menos directa de ejecutar cosas. Es verdad que mediante el inspector, aunque hay que ir haciendo métodos, se puede acceder a cualquier valor de otro objeto, arrastrándolo ahí simplemente. 1378 01:09:55,739 --> 01:09:57,779 Diciéndole, vale, al darle a click, pues listo. 1379 01:09:58,500 --> 01:10:04,699 De hecho, hay un apartado, esto es bastante más, 1380 01:10:04,880 --> 01:10:06,439 no es más avanzado, pero es otra cosa, 1381 01:10:06,560 --> 01:10:08,500 que es en los botones sale el onclick, 1382 01:10:08,840 --> 01:10:11,979 pero nosotros podemos decir, ponerle un componente event trigger 1383 01:10:11,979 --> 01:10:16,539 y decirle que sea cuando, yo qué sé, cuando el puntero entre. 1384 01:10:17,539 --> 01:10:20,859 Y aquí lo que haremos será arrastrar un objeto. 1385 01:10:20,859 --> 01:10:23,840 Mira, de hecho, fíjate, voy a poner que en este botón, 1386 01:10:23,939 --> 01:10:26,939 y ya estoy añadiendo un comportamiento que no es propio del botón, 1387 01:10:27,000 --> 01:10:28,060 que sí que viene con el onclick, 1388 01:10:28,619 --> 01:10:32,079 le estoy diciendo que a este elemento, 1389 01:10:32,380 --> 01:10:34,140 que sí que se restringe a lo que es el botón, 1390 01:10:34,680 --> 01:10:36,039 a este config y ese área, 1391 01:10:36,479 --> 01:10:39,420 voy a decir que cuando entre el puntero, 1392 01:10:39,520 --> 01:10:42,180 pues que ahí sea cuando cambie de nivel. 1393 01:10:42,659 --> 01:10:45,420 Es decir, ahora mismo está configurado 1394 01:10:45,420 --> 01:10:47,479 que cuando clico en configuración desaparece el fondo. 1395 01:10:47,479 --> 01:10:49,079 Y le voy a decir que no. 1396 01:10:49,960 --> 01:10:51,220 Bueno, es decir, no que no. 1397 01:10:51,460 --> 01:10:54,180 Que cuando, yo qué sé, a nivel 5. 1398 01:10:54,180 --> 01:10:56,520 que cuando yo, el puntero 1399 01:10:56,520 --> 01:10:58,479 lo meta en config, ¿vale? sin tener que clicar 1400 01:10:58,479 --> 01:11:00,399 ya no me va a dejar de hacer lo otro 1401 01:11:00,399 --> 01:11:02,140 porque es que va a pasar directamente al nivel 1402 01:11:02,140 --> 01:11:04,479 5, a la escena 5, ¿vale? 1403 01:11:04,500 --> 01:11:06,500 de los build settings, vamos a ver si lo hace 1404 01:11:06,500 --> 01:11:08,340 yo estoy aquí, ¿vale? 1405 01:11:08,739 --> 01:11:10,380 el puntero se acerca, placa, placa, placa 1406 01:11:10,380 --> 01:11:11,539 y no voy a clicar, ¿eh? 1407 01:11:12,260 --> 01:11:14,420 fíjate, hace la acción que yo le vaya diciendo 1408 01:11:14,420 --> 01:11:16,520 y fíjate que aquí hay unas cuantas 1409 01:11:16,520 --> 01:11:18,340 ¿vale? que se pueden ir diciendo 1410 01:11:18,340 --> 01:11:20,380 cuando se 1411 01:11:20,380 --> 01:11:21,680 cancela, que es cuando se suelta 1412 01:11:21,680 --> 01:11:24,020 cuando se da el click 1413 01:11:24,020 --> 01:11:37,739 Es decir, cuando el puntero entra por encima, cuando se arrastra, cuando se mantiene pulsado, cuando se selecciona, cuando se mueve. Hay muchos tipos de comportamientos que son eventos en sí con este event trigger, ¿vale? 1414 01:11:37,739 --> 01:11:56,960 Lo que hace la OSUIS es dar ya componentes con este tipo de eventos ya como predispuestos, porque se entiende que un botón la gracia que tiene es que lo pulsas, por eso es el onclick. Y aquí voy de hecho a lo siguiente, que es para ver la lógica de cómo funciona. 1415 01:11:56,960 --> 01:12:14,060 Bueno, no sé muy bien qué cambios he hecho, pero si yo me meto en otros tipos de componentes como son ese slider, cuando yo me meto en el slider, fijaos que es un poco la misma lógica, pero en vez de un clic lo que pone es cuando se cambia el valor. 1416 01:12:14,060 --> 01:12:34,319 Es decir, en cuanto yo haga algún cambio de valor arrastrando esto, pues se va actualizando un valor que hemos puesto en un script llamado configMenu, que de hecho está aquí, que es el que configura todo y guarda, entre otras cosas, la dificultad del slider. 1417 01:12:34,319 --> 01:13:00,840 Que la dificultad del slider no deja de ser este valor que hay aquí. Esto se conecta con eso. Entonces, con esto lo que hacemos es que actualizamos el slider. Hay un menú, hay un método, igual que hemos hecho antes, público, que sirve para cambiar los valores del slider. 1418 01:13:00,840 --> 01:13:26,000 Y que también guarde en la dificultad de juego del GameManager la dificultad de ese valor para que durante todo el juego tenga esa dificultad, ¿vale? Y por ver el otro ejemplo, cuando vamos al input de texto, lo que tiene aquí es otro evento que es cuando se cambia el valor. 1419 01:13:26,000 --> 01:13:46,180 Es decir, mientras yo no toque nada, no existe nada. Era un nulo, recuerda. Pero cuando yo empiece a escribir, cada vez que cambie ese valor, voy a aludir al método updateInput, que lo que hace es meter en el username de ese GameManager estático el texto que yo haya introducido en este input. 1420 01:13:47,520 --> 01:13:54,579 Está ejecutando este método. Cada vez que cambie un valor, se estará cambiando el valor del username y ya se irá cargando donde corresponda, como hemos visto antes. 1421 01:13:57,890 --> 01:14:23,449 Y luego, de hecho, hay otro que es que no sea, es decir, dejar esto vacío y que sea cuando deje de escribir y clique fuera, que sea cuando se guarde, para que no sea en cuanto pulse cualquier tecla ya que funcione. Es decir, este es un poco más, es decir, procesa menos. Tampoco son procesamientos muy complicados, pero hasta que yo no deje de escribir, pues no se guarda el valor de lo que se introduzca. ¿Vale? ¿Qué tal? 1422 01:14:23,449 --> 01:14:26,130 bien, sí 1423 01:14:26,130 --> 01:14:28,529 entiendo la mecánica 1424 01:14:28,529 --> 01:14:30,409 más o menos la entiendo, ahora hay que ponerla en práctica 1425 01:14:30,409 --> 01:14:32,010 pero bien, eso es lo que más me interesa 1426 01:14:32,010 --> 01:14:34,289 porque luego ponerla en práctica es verdad que tiene tela 1427 01:14:34,289 --> 01:14:36,449 es decir, tienes que darle vueltas 1428 01:14:36,449 --> 01:14:38,390 y poco a poco, etcétera 1429 01:14:38,390 --> 01:14:40,050 ¿vale? pero sobre todo 1430 01:14:40,050 --> 01:14:41,829 es interesante ver 1431 01:14:41,829 --> 01:14:44,409 en base a qué funcionan los elementos 1432 01:14:44,409 --> 01:14:46,189 de la UI y en muchos casos 1433 01:14:46,189 --> 01:14:47,869 es por estos eventos que hay aquí, ¿sabes? 1434 01:14:49,789 --> 01:14:52,649 no sé si tienes alguna duda más, más allá de 1435 01:14:52,649 --> 01:14:55,770 en principio no, era simplemente 1436 01:14:55,770 --> 01:14:57,590 el tema este, luego 1437 01:14:57,590 --> 01:14:59,810 entiendo que luego, porque como ha habido un momento que se me ha ido 1438 01:14:59,810 --> 01:15:01,149 la cobertura, el nivel de 1439 01:15:01,149 --> 01:15:02,829 ahora ya estoy con el portátil 1440 01:15:02,829 --> 01:15:05,449 el nivel de dificultad 1441 01:15:05,449 --> 01:15:07,489 lo vas poniendo con 1442 01:15:07,489 --> 01:15:08,770 por ejemplo con el 1443 01:15:08,770 --> 01:15:11,569 drag, con la masa, con todo lo demás 1444 01:15:11,569 --> 01:15:12,069 entiendo 1445 01:15:12,069 --> 01:15:15,390 y eso además lo he puesto en el HUD 1446 01:15:15,390 --> 01:15:17,189 porque como va a ir siempre los niveles 1447 01:15:17,189 --> 01:15:19,329 que van con la bola, los jugables 1448 01:15:19,329 --> 01:15:20,710 pues lo he puesto en el canvas del HUD 1449 01:15:20,710 --> 01:15:37,770 Pero si me meto en el HUD Manager, por ejemplo, ¿vale? Se va actualizando esa dificultad, ¿vale? Y en el update peso, ¿vale? Lo que se ha dicho es, guárdame en una variable float de dificultad la dificultad que hay en el Game Manager, ¿vale? 1450 01:15:37,770 --> 01:15:42,189 La dificultad al final está unida al slider y va del 0 al 3, ¿vale? 1451 01:15:42,210 --> 01:15:48,270 Porque en el slider que te he enseñado antes, a ver, en el slider que te he enseñado antes, 1452 01:15:48,890 --> 01:15:54,170 se ha configurado para que vaya, a ver, espera, que tengo, no, el slider es este, perdón. 1453 01:15:54,689 --> 01:15:55,689 Sí, lo tenías de 0 a 3. 1454 01:15:55,689 --> 01:15:56,489 De 0 a 3, ¿vale? 1455 01:15:56,609 --> 01:16:00,409 Y aparte, bueno, esto es una tontería, pero para que, como estos son diversos niveles, 1456 01:16:00,890 --> 01:16:04,510 si se ponen whole numbers va de uno en uno, pero en realidad es un float, ¿vale? 1457 01:16:04,510 --> 01:16:06,569 Si te fijas aquí el valor, ¿vale? 1458 01:16:06,569 --> 01:16:10,210 Si se pone como whole numbers, pues hay como gradaciones, ¿vale? 1459 01:16:10,229 --> 01:16:11,710 Va de uno en otro, ¿vale? 1460 01:16:12,130 --> 01:16:13,789 Pero al final lo que guarda es un float, ¿vale? 1461 01:16:13,810 --> 01:16:18,869 Para que se te quede eso en la cabeza. 1462 01:16:19,869 --> 01:16:23,630 Mira, cuando leo los apuntes, te pone que a la hora de configurar 1463 01:16:23,630 --> 01:16:27,609 en el slider, tienen que ser íntegros, números enteros, ¿no? 1464 01:16:27,909 --> 01:16:30,210 Sin embargo, yo entiendo que se refiere a eso, 1465 01:16:30,350 --> 01:16:32,829 a poner un mínimo y un máximo, pero tiene que ser un float 1466 01:16:32,829 --> 01:16:35,369 porque lo guardan por decimales también, puede ser por decimales. 1467 01:16:35,369 --> 01:16:59,050 Mira, te lo enseño, ¿vale? Y además esto está muy bien que me lo hayas dicho. Perdóname, ¿eh? Vale, el UpdateSlider, que al final es el método que se ha generado, ¿vale? El UpdateSlider es este método que se actualiza al principio, pero luego se va actualizando según movemos el slider, ¿vale? 1468 01:16:59,050 --> 01:17:11,270 Fíjate que es el que tenemos. A ver, aquí, ¿vale? El que se está llamando es el updateSlider, ¿vale? Es ese método. Cada vez que mueva ese slider, se ejecuta esto, ¿sí? 1469 01:17:11,630 --> 01:17:20,329 Entonces, cuando se ejecuta, hemos hecho una variable que recoja el valor del slider. Pues si el slider está en la altura del 1, pues guarda un 1. 1470 01:17:20,609 --> 01:17:26,890 Pero fíjate que lo que está guardando es un float, ¿vale? Por lo que te he dicho, porque el slider tiene infinitos decimales, ¿vale? 1471 01:17:26,890 --> 01:17:29,810 Si no marcas este whole numbers, fíjate. 1472 01:17:29,829 --> 01:17:30,430 Eso me lo haría. 1473 01:17:30,689 --> 01:17:31,210 Sí. 1474 01:17:31,630 --> 01:17:35,409 Entonces, lo ponemos en whole numbers porque son cuatro niveles de dificultad lo que se configura. 1475 01:17:36,189 --> 01:17:42,010 Y para eso, de hecho, se ha hecho una string de textos de dificultad, 1476 01:17:42,069 --> 01:17:46,729 que luego se han generado los cuatro niveles de chupado fácil, normal y difícil. 1477 01:17:47,529 --> 01:17:50,529 Son cuatro posiciones y, por tanto, son números enteros. 1478 01:17:51,130 --> 01:17:52,689 No existe el chupado y medio. 1479 01:17:53,510 --> 01:17:56,210 Es o cero, o uno, o dos, o tres. 1480 01:17:56,890 --> 01:18:14,229 Entonces, aquí cogemos el valor del float, del slider, en el que estemos. Pero es verdad que para cargar uno de estos índices, aquí lo que va es un número entero. Son cuatro posiciones de números enteros. 1481 01:18:14,229 --> 01:18:28,029 Entonces hay que hacer lo que se llama una conversión implícita. No, implícita no, explícita de hecho. Esto ya lo dije en su día, pero normal que se os haya olvidado. 1482 01:18:28,029 --> 01:18:34,909 que es que nosotros podemos convertir un float en un int, es decir, lo que hace es redondearlo, ¿vale? 1483 01:18:36,189 --> 01:18:42,550 Haciendo esto, este parámetro. Ahora se ha hecho aquí una especie de variable nueva que es un int, ¿vale? 1484 01:18:42,590 --> 01:18:49,050 Y lo que hace es guardar como un int realmente el valor del slider que era un float, pero convertido a int, ¿vale? 1485 01:18:50,090 --> 01:18:54,109 Realmente redondea la baja, si no me equivoco. Si tiene un decimal, se lo carga y ya está. 1486 01:18:54,109 --> 01:19:14,810 ¿Y qué es lo que hace? Que el slider, el texto que hemos puesto aquí a la derecha, este texto digamos que se ha añadido como otro texto, es decir, es un texto normal que se ha colocado vinculado a este script para que vaya junto, 1487 01:19:14,810 --> 01:19:22,430 pero en realidad esto es un texto, es un UI text. 1488 01:19:22,529 --> 01:19:24,789 Perdona si ya digo tonterías, pero es que llevo hablando tanto rato 1489 01:19:24,789 --> 01:19:25,930 que tengo la cabeza hecha un lío. 1490 01:19:26,449 --> 01:19:27,409 Nada, no te preocupes. 1491 01:19:27,750 --> 01:19:28,329 Una cosa, mira. 1492 01:19:28,609 --> 01:19:29,350 Vale, dime. 1493 01:19:30,069 --> 01:19:32,050 Y mira, otra cosa, perdona que pregunte tanto. 1494 01:19:32,390 --> 01:19:33,930 No, no, no, sin problema. 1495 01:19:34,010 --> 01:19:35,710 Que te iba a decir, y que te haga hablar tanto. 1496 01:19:36,069 --> 01:19:40,010 No, no, no, sí, pero bueno, que a veces me trabo ya porque, 1497 01:19:40,310 --> 01:19:40,930 pero bueno, sí, dime. 1498 01:19:40,930 --> 01:19:43,729 el tema está en que 1499 01:19:43,729 --> 01:19:46,270 haces un array también con el tema del nivel de dificultad 1500 01:19:46,270 --> 01:19:47,569 es decir, lo vinculas 1501 01:19:47,569 --> 01:19:49,069 a cada parte del slider 1502 01:19:49,069 --> 01:19:51,630 con un array según una cadena de texto 1503 01:19:51,630 --> 01:19:53,489 no, es más simple 1504 01:19:53,489 --> 01:19:55,630 realmente no se crea un array 1505 01:19:55,630 --> 01:19:58,050 relacionado con el 1506 01:19:58,050 --> 01:19:59,329 decir, sí y no 1507 01:19:59,329 --> 01:20:01,890 el array que se hace es de los cuatro 1508 01:20:01,890 --> 01:20:03,010 de los cuatro nombres 1509 01:20:03,010 --> 01:20:04,449 que tienen que mostrar 1510 01:20:04,449 --> 01:20:06,609 no tiene nada que ver con números 1511 01:20:06,609 --> 01:20:08,630 el array son de cuatro strings 1512 01:20:09,210 --> 01:20:12,909 que es lo que estaba explicando, que es el texto que va a poner aquí. 1513 01:20:13,710 --> 01:20:16,310 Si el slider tiene un valor de 1, pone fácil. 1514 01:20:16,470 --> 01:20:17,770 Si es el de 0, es chupado. 1515 01:20:18,430 --> 01:20:22,489 De hecho, fíjate, yo a medida que voy moviendo ese slider, 1516 01:20:22,489 --> 01:20:28,710 se va cambiando el texto para que el usuario tenga una referencia 1517 01:20:28,710 --> 01:20:30,229 de qué significa cada nivel. 1518 01:20:30,909 --> 01:20:34,289 Entonces, lo que se ha hecho es un array de textos 1519 01:20:34,289 --> 01:20:36,350 y luego 1520 01:20:36,350 --> 01:20:38,210 lo que se vincula es 1521 01:20:38,210 --> 01:20:39,949 que lo que ponga en ese texto 1522 01:20:39,949 --> 01:20:42,529 porque aquí hay una variable de dificultad texto 1523 01:20:42,529 --> 01:20:44,069 que es lo mismo que hemos hecho antes 1524 01:20:44,069 --> 01:20:46,329 que es que en el canvas 1525 01:20:46,329 --> 01:20:48,489 dificultad texto se ha arrastrado 1526 01:20:48,489 --> 01:20:50,029 este texto que hay aquí, fíjate 1527 01:20:50,029 --> 01:20:52,390 y entonces accedemos 1528 01:20:52,390 --> 01:20:53,569 a este campo de texto 1529 01:20:53,569 --> 01:20:56,609 y le decimos que el texto que ponga ahí 1530 01:20:56,609 --> 01:20:59,470 que lo que haga es 1531 01:20:59,470 --> 01:21:01,069 cogerme el texto 1532 01:21:01,069 --> 01:21:03,689 y según el valor que tenga el array 1533 01:21:03,689 --> 01:21:05,890 vale, dificultad key, dependiendo 1534 01:21:05,890 --> 01:21:07,770 de eso, como ahora es número entero, me enseña 1535 01:21:07,770 --> 01:21:09,829 o chupado, fácil, o normal, o difícil 1536 01:21:09,829 --> 01:21:11,710 ¿sí? es decir, si aquí 1537 01:21:11,710 --> 01:21:13,729 es texto dificultad y el valor 1538 01:21:13,729 --> 01:21:15,789 fuera de cero, me enseña chupado 1539 01:21:15,789 --> 01:21:17,689 si fuera de dos, enseñaría normal 1540 01:21:17,689 --> 01:21:18,970 es lo que está haciendo, vaya 1541 01:21:18,970 --> 01:21:21,649 y luego aparte, es decir 1542 01:21:21,649 --> 01:21:23,729 esta línea sirve para ese texto 1543 01:21:23,729 --> 01:21:25,729 para llegar al componente de texto y cambiar 1544 01:21:25,729 --> 01:21:26,409 el nivel 1545 01:21:26,409 --> 01:21:28,989 del texto que pone como nivel 1546 01:21:28,989 --> 01:21:31,430 pero realmente está cargando 1547 01:21:31,430 --> 01:21:33,229 en relación al slider porque 1548 01:21:33,229 --> 01:21:34,510 se lo estamos diciendo como 1549 01:21:34,510 --> 01:21:36,970 un array, pero vaya 1550 01:21:36,970 --> 01:21:39,529 que realmente donde estamos guardando el valor 1551 01:21:39,529 --> 01:21:41,029 del array como dato numérico 1552 01:21:41,029 --> 01:21:43,229 es nuevamente 1553 01:21:43,229 --> 01:21:44,090 en el game manager 1554 01:21:44,090 --> 01:21:46,369 y ese 1555 01:21:46,369 --> 01:21:49,949 dificultad 1556 01:21:49,949 --> 01:21:51,310 lo que hacemos luego en el 1557 01:21:51,310 --> 01:21:52,829 head manager es 1558 01:21:52,829 --> 01:21:54,829 lo que hace es 1559 01:21:54,829 --> 01:21:56,829 guardar en una variable 1560 01:21:56,829 --> 01:21:59,510 esa dificultad que se ha definido 1561 01:21:59,510 --> 01:22:01,369 según dejáramos el slider 1562 01:22:01,369 --> 01:22:33,500 Y según eso, los cuatro valores posibles, aquí también se podría hacer un switch, pero bueno, se ha hecho con ifs. Si la dificultad fuera cero, es decir, la de chupado, pues la bola, recuerda que habíamos accedido al rigidbody de esa bola, a su componente rigidbody, pues la masa, y vuelvo al nivel, la masa de esa bola que hemos referenciado, o el drag irá cambiando. 1563 01:22:34,020 --> 01:22:35,760 Y ya según eso, el comportamiento físico. 1564 01:22:36,659 --> 01:22:40,380 Entonces, con esto, dependiendo del nivel que hayamos guardado en el Game Manager, 1565 01:22:40,659 --> 01:22:45,899 cuando se cargue el HUD, al iniciar dice, a ver, ¿qué peso me ha llegado hasta este momento? 1566 01:22:46,439 --> 01:22:49,680 Y mira ahí, a ver, pues en el Game Manager me pone que es nivel 2. 1567 01:22:49,680 --> 01:22:51,960 Y entonces la bola tendrá una masa y un drag. 1568 01:22:53,439 --> 01:23:00,239 Y ahora más fácil o más difícil el juego, porque sobre todo en los niveles en los que la plataforma se gira, 1569 01:23:00,239 --> 01:23:02,079 no la propia bola, sino la plataforma 1570 01:23:02,079 --> 01:23:04,500 claro, dependiendo del peso y la resistencia al aire 1571 01:23:04,500 --> 01:23:05,720 caerá más o menos rápido 1572 01:23:05,720 --> 01:23:07,819 entonces pues si cae a toda leche 1573 01:23:07,819 --> 01:23:09,899 porque tiene más masa, la dificultad más alta 1574 01:23:09,899 --> 01:23:12,039 y además poca resistencia al aire, es decir 1575 01:23:12,039 --> 01:23:13,699 que no lo frena casi nada 1576 01:23:13,699 --> 01:23:16,100 pues va a toda leche, entonces es más complicado 1577 01:23:16,100 --> 01:23:18,020 meter la bola en el agujero 1578 01:23:18,020 --> 01:23:19,239 ¿vale? 1579 01:23:22,840 --> 01:23:24,420 Sí, sí, vale, fácil 1580 01:23:24,420 --> 01:23:25,840 Vale, bueno 1581 01:23:25,840 --> 01:23:28,939 esto, es decir, es muy 1582 01:23:28,939 --> 01:23:30,699 complejo, yo lo sé, pero bueno 1583 01:23:30,699 --> 01:23:33,399 es que si no se explican el tema 1584 01:23:33,399 --> 01:23:35,619 y no se pone en juego, pero bueno, yo creo que 1585 01:23:35,619 --> 01:23:37,439 dándole vuelta así con lo que 1586 01:23:37,439 --> 01:23:39,420 estamos viendo hoy, sobre todo me importa, aunque no 1587 01:23:39,420 --> 01:23:41,000 lleguéis al 100% de lo que se pide 1588 01:23:41,000 --> 01:23:43,619 si llegáis a un 75% 1589 01:23:43,619 --> 01:23:45,199 pero lo estáis entendiendo bien 1590 01:23:45,199 --> 01:23:47,840 pues de lujo, sobre todo es que lo entendáis 1591 01:23:47,840 --> 01:23:49,560 pues ya está, muy bien 1592 01:23:49,560 --> 01:23:51,520 vale, no sé 1593 01:23:51,520 --> 01:23:52,600 si tienes alguna duda más 1594 01:23:52,600 --> 01:23:55,060 si quieres 1595 01:23:55,060 --> 01:23:56,979 te abro el trabajo que tengo 1596 01:23:56,979 --> 01:23:58,899 porque ahora sí que estoy con el perpátil 1597 01:23:58,899 --> 01:24:17,140 Vale, sí. Pero sobre todo, perdón, antes de que deje de compartir, lo esencial es saber que siempre podemos acceder a los componentes. Lo digo porque da mucho miedo lo de los scripts, pero realmente lo que estamos haciendo es, igual que si aquí pusiéramos 8, lo estamos haciendo por código. 1598 01:24:17,140 --> 01:24:30,319 Entonces es simplemente arrastrar, ¿vale? Pues en el HUD, arrastrar a qué vamos a afectar y ya a partir de eso, si apelamos a esa variable, es como entrar a los campos. 1599 01:24:30,319 --> 01:24:31,579 vale, mira, esta es la 1600 01:24:31,579 --> 01:24:33,520 para que lo vayas viendo 1601 01:24:33,520 --> 01:24:36,100 he hecho el canvas, juego de la pelota 1602 01:24:36,100 --> 01:24:37,880 le he titulado y tal, entonces yo le doy 1603 01:24:37,880 --> 01:24:38,779 aquí 1604 01:24:38,779 --> 01:24:40,439 empiezo 1605 01:24:40,439 --> 01:24:44,220 vale, entonces esto es como hasta ahora 1606 01:24:44,220 --> 01:24:46,140 los corazones has visto que los tengo arriba 1607 01:24:46,140 --> 01:24:47,060 lo que pasa es que 1608 01:24:47,060 --> 01:24:49,880 ya está, no se me quitan 1609 01:24:49,880 --> 01:24:50,859 no soy capaz de quitarlo, vale 1610 01:24:50,859 --> 01:24:53,539 hay que cargar, digamos 1611 01:24:53,539 --> 01:24:55,960 los sprites, lo que hemos visto 1612 01:24:57,960 --> 01:24:59,979 claro, yo lo que había hecho ahí era 1613 01:24:59,979 --> 01:25:01,260 bueno, luego la siguiente parte 1614 01:25:01,260 --> 01:25:02,680 el menú de opciones 1615 01:25:02,680 --> 01:25:10,960 con un retool 1616 01:25:10,960 --> 01:25:12,899 y entonces en consola 1617 01:25:12,899 --> 01:25:15,279 el kit por ejemplo 1618 01:25:15,279 --> 01:25:15,880 lo tengo aquí 1619 01:25:15,880 --> 01:25:18,239 lo he mandado a consola para salir 1620 01:25:18,239 --> 01:25:19,579 que entiendo que luego se podrá hacer 1621 01:25:19,579 --> 01:25:22,779 claro, ahí hay que poner el application.kit 1622 01:25:22,779 --> 01:25:23,560 método 1623 01:25:23,560 --> 01:25:26,140 eso aquí no se ve 1624 01:25:26,140 --> 01:25:27,619 hasta que no se tiene un ejecutable 1625 01:25:27,619 --> 01:25:29,060 no puede quitar el ejecutable 1626 01:25:29,060 --> 01:25:30,920 porque aquí sería que quita Unity 1627 01:25:30,920 --> 01:25:32,180 entonces no lo hace 1628 01:25:32,180 --> 01:25:34,720 Y la parte de opciones la he hecho 1629 01:25:34,720 --> 01:25:36,159 de la siguiente manera, como cuando 1630 01:25:36,159 --> 01:25:37,520 llegas a opciones, 1631 01:25:37,819 --> 01:25:40,500 te cambia 1632 01:25:40,500 --> 01:25:42,199 a otro canvas diferente, 1633 01:25:42,939 --> 01:25:44,159 lo he metido aquí en 1634 01:25:44,159 --> 01:25:45,600 opciones. 1635 01:25:46,340 --> 01:25:48,680 Lo suyo, a ver, se puede hacer con 1636 01:25:48,680 --> 01:25:49,539 un canvas, 1637 01:25:50,880 --> 01:25:52,300 pero lo suyo es que hagas otro nivel. 1638 01:25:53,140 --> 01:25:54,079 Otro nivel que sea otra. 1639 01:25:54,600 --> 01:25:56,539 O sea, yo cada vez que te iba enseñando... 1640 01:25:56,539 --> 01:25:57,640 Otra escena. 1641 01:25:58,220 --> 01:25:59,500 Y ahí la configuras. 1642 01:25:59,500 --> 01:26:02,460 porque así al cargar los niveles 1643 01:26:02,460 --> 01:26:04,539 en el start de cada nivel 1644 01:26:04,539 --> 01:26:06,699 si metes operaciones 1645 01:26:06,699 --> 01:26:08,420 puedes dar nuevas operaciones 1646 01:26:08,420 --> 01:26:10,520 porque si no, digamos que dentro de un mismo nivel 1647 01:26:10,520 --> 01:26:12,340 tienes como dos 1648 01:26:12,340 --> 01:26:14,380 menús distintos y se te pueden 1649 01:26:14,380 --> 01:26:16,119 ir liando, lo bueno de que 1650 01:26:16,119 --> 01:26:18,319 se conectan los dos es 1651 01:26:18,319 --> 01:26:20,239 que tiene su 1652 01:26:20,239 --> 01:26:22,260 start y se eliminan cosas que no quieres 1653 01:26:22,260 --> 01:26:23,739 y se crean, es más sencillo 1654 01:26:23,739 --> 01:26:26,020 que ojo, lo que tú has hecho por ejemplo 1655 01:26:26,020 --> 01:26:28,399 se podría hacer durante la ejecución 1656 01:26:28,399 --> 01:26:30,220 el juego, mientras se está con la pelota 1657 01:26:30,220 --> 01:26:32,319 cuando le das al escape por ejemplo 1658 01:26:32,319 --> 01:26:34,420 el pause y se sobrepone un canvas 1659 01:26:34,420 --> 01:26:36,079 y ahí se podría poner 1660 01:26:36,079 --> 01:26:37,600 pero hay un método 1661 01:26:37,600 --> 01:26:39,380 ¿el qué? 1662 01:26:39,920 --> 01:26:42,340 hay un método especial para eso creo, según he leído 1663 01:26:42,340 --> 01:26:44,500 los apuntes, no, no, sería mostrar un canvas 1664 01:26:44,500 --> 01:26:46,220 pero aparte lo que se hace es 1665 01:26:46,220 --> 01:26:47,840 parar el tiempo de ejecución 1666 01:26:47,840 --> 01:26:50,340 se pone el time.time 1667 01:26:50,340 --> 01:26:52,079 que es a qué velocidad y se pone en cero 1668 01:26:52,079 --> 01:26:53,680 y digamos que el juego se queda suspendido 1669 01:26:53,680 --> 01:26:55,939 y luego tú enseñas ese canvas 1670 01:26:55,939 --> 01:26:58,300 y tú clicas y cuando vuelves al 1671 01:26:58,300 --> 01:27:00,100 juego, pues el time.time 1672 01:27:00,100 --> 01:27:02,460 es el time scale, se vuelve 1673 01:27:02,460 --> 01:27:04,399 uno otra vez. Entonces entiendo 1674 01:27:04,399 --> 01:27:06,279 que tengo que hacer una escena nueva, me cargo este 1675 01:27:06,279 --> 01:27:08,279 canvas que acabo de hacer, hago una escena nueva, le meto 1676 01:27:08,279 --> 01:27:09,560 un canvas y ya lo... 1677 01:27:09,560 --> 01:27:11,899 Eso es, y hacer 1678 01:27:11,899 --> 01:27:13,579 los elementos de ese canvas nuevo. 1679 01:27:14,100 --> 01:27:16,220 Una cosa que no he dicho y es importante y además esto 1680 01:27:16,220 --> 01:27:18,000 creo que no lo ponen los apuntes. 1681 01:27:18,260 --> 01:27:20,180 Compárteme otra vez el Unity, porfa. 1682 01:27:20,180 --> 01:27:21,359 Un momentito. 1683 01:27:21,539 --> 01:27:23,140 Ahí lo tengo. 1684 01:27:24,300 --> 01:27:26,119 Cuando juegas, dale a 1685 01:27:26,119 --> 01:27:26,960 reproducir el juego. 1686 01:27:26,960 --> 01:27:30,970 vale 1687 01:27:30,970 --> 01:27:34,130 ¿ves eso de dejar de compartir? 1688 01:27:34,449 --> 01:27:34,869 ¿no le des? 1689 01:27:35,930 --> 01:27:37,130 ¿está compartiendo? 1690 01:27:37,430 --> 01:27:40,210 a la derecha hay un minimizar 1691 01:27:40,210 --> 01:27:41,350 dale a eso para que se quite eso 1692 01:27:41,350 --> 01:27:44,270 espera un momento voy a bajar el volumen 1693 01:27:44,270 --> 01:27:45,250 vale 1694 01:27:45,250 --> 01:27:49,510 tú tienes una música que yo no llego a oír 1695 01:27:49,510 --> 01:27:51,829 pero porque no estás compartiendo 1696 01:27:51,829 --> 01:27:53,670 el sonido pero el audio source 1697 01:27:53,670 --> 01:27:54,529 desactívalo 1698 01:27:54,529 --> 01:27:57,609 el game object a la izquierda 1699 01:27:57,609 --> 01:27:59,750 al penúltimo 1700 01:27:59,750 --> 01:28:05,250 Ahí, venga, dale 1701 01:28:05,250 --> 01:28:08,649 Y minimiza lo que te había dicho antes, porfa 1702 01:28:08,649 --> 01:28:13,439 Ahí, vale 1703 01:28:13,439 --> 01:28:15,880 Esto ya lo vimos el otro día 1704 01:28:15,880 --> 01:28:16,920 Espera, no de esa nada 1705 01:28:16,920 --> 01:28:18,539 Si es del panel de game 1706 01:28:18,539 --> 01:28:20,680 Para testear bien las cosas 1707 01:28:20,680 --> 01:28:22,819 Tú ahora mismo estás jugando 1708 01:28:22,819 --> 01:28:24,619 O estás reproduciendo el juego 1709 01:28:24,619 --> 01:28:25,840 Con unas medidas 1710 01:28:25,840 --> 01:28:29,520 Digamos adaptables a la pantalla 1711 01:28:29,520 --> 01:28:31,279 que tienes de game 1712 01:28:31,279 --> 01:28:33,800 es decir, si arrastras tú el game y lo haces más grande 1713 01:28:33,800 --> 01:28:34,539 se hace más grande 1714 01:28:34,539 --> 01:28:37,859 nosotros lo que queremos es simular, por ejemplo en este caso 1715 01:28:37,859 --> 01:28:42,060 el 16 novenos de los móviles 1716 01:28:42,060 --> 01:28:44,420 es como una referencia 1717 01:28:44,420 --> 01:28:46,220 entonces, lo primero 1718 01:28:46,220 --> 01:28:47,640 y esto ya lo vimos el otro día 1719 01:28:47,640 --> 01:28:49,079 donde pone scale encima 1720 01:28:49,079 --> 01:28:51,319 debería estar a 1 siempre 1721 01:28:51,319 --> 01:28:54,020 ves que pone scale 1.1 1722 01:28:54,020 --> 01:28:55,560 eso es para ampliar 1723 01:28:55,560 --> 01:28:58,479 y ver de cerca 1724 01:28:58,479 --> 01:28:59,039 detalles 1725 01:28:59,039 --> 01:29:03,039 Pero el 1x este es el nivel de reproducción del juego 1726 01:29:03,039 --> 01:29:05,579 Y luego donde pone a la izquierda Free Aspect 1727 01:29:05,579 --> 01:29:08,180 Esto, ¿vale? Dale a ese desplegable 1728 01:29:08,180 --> 01:29:11,800 ¿Vale? Ahora mismo se está adaptando a la pantalla 1729 01:29:11,800 --> 01:29:14,479 Pero deberías poner las dimensiones que te interesen 1730 01:29:14,479 --> 01:29:16,899 ¿Ves que hay algunas? Como esa que pone Full HD 1731 01:29:16,899 --> 01:29:18,619 Que te da unos píxeles concretos 1732 01:29:18,619 --> 01:29:21,420 ¿Vale? Pero normalmente, si por ejemplo es para móvil 1733 01:29:21,420 --> 01:29:24,260 O para cualquier tipo de pantalla 16 novenosa paisada 1734 01:29:24,260 --> 01:29:25,880 Si lo pones ahí, selecciónalo 1735 01:29:25,880 --> 01:29:29,159 vale, te lo pone 1736 01:29:29,159 --> 01:29:31,199 de esa medida referente a ese 1737 01:29:31,199 --> 01:29:33,359 tamaño, ¿qué significa eso? 1738 01:29:33,680 --> 01:29:34,539 que ahora mismo 1739 01:29:34,539 --> 01:29:36,659 a ver, amplíe y desamplía 1740 01:29:36,659 --> 01:29:39,300 este panel, no, no 1741 01:29:39,300 --> 01:29:41,300 en escala no, vete a 1742 01:29:41,300 --> 01:29:43,420 a game, vale, el menú game 1743 01:29:43,420 --> 01:29:45,159 vete abajo y arrastra hacia abajo 1744 01:29:45,159 --> 01:29:47,460 por ejemplo, haz más grande la ventana de game 1745 01:29:47,460 --> 01:29:50,470 no, bueno 1746 01:29:50,470 --> 01:29:51,649 te voy a compartir yo, vale 1747 01:29:51,649 --> 01:29:54,689 que creo que va a ser más sencillo 1748 01:29:54,689 --> 01:30:04,000 Ah, tú decías que arrastrar la ventana de game 1749 01:30:04,000 --> 01:30:05,119 Vale, si quieres la arrastro 1750 01:30:05,119 --> 01:30:08,560 Que la haga más grande 1751 01:30:08,560 --> 01:30:09,600 Lo que sea la idea 1752 01:30:09,600 --> 01:30:15,619 Hazla más grande, arrastra 1753 01:30:15,619 --> 01:30:17,920 Se irá adaptando 1754 01:30:17,920 --> 01:30:19,479 Al tamaño de ese juego 1755 01:30:19,479 --> 01:30:21,039 Muevelo hacia la derecha 1756 01:30:21,039 --> 01:30:24,119 Ahora lo tienes a 16 décimos 1757 01:30:24,119 --> 01:30:25,279 Dale a 16 novenos 1758 01:30:25,279 --> 01:30:28,760 entonces para verlo con la medida que es 1759 01:30:28,760 --> 01:30:30,159 porque si no te lo adapta más 1760 01:30:30,159 --> 01:30:31,979 eso es lo importante 1761 01:30:31,979 --> 01:30:34,340 que tenga la proporción que va a tener 1762 01:30:34,340 --> 01:30:36,340 porque si no igual te está metiendo más o menos fondo 1763 01:30:36,340 --> 01:30:36,939 vale 1764 01:30:36,939 --> 01:30:40,659 entonces eso es importante 1765 01:30:40,659 --> 01:30:41,520 tenerlo en cuenta 1766 01:30:41,520 --> 01:30:43,359 sobre todo ahora que estamos jugando 1767 01:30:43,359 --> 01:30:46,420 está mirando que 1768 01:30:46,420 --> 01:30:48,239 casi todos son en 16 novenos me parece 1769 01:30:48,239 --> 01:30:49,979 sí, sí, sí 1770 01:30:49,979 --> 01:30:52,699 las pantallas de móvil normalmente 1771 01:30:52,699 --> 01:30:54,100 la verdad que ahora están 1772 01:30:54,100 --> 01:30:56,199 que si el desplegable, que son como dos 1773 01:30:56,199 --> 01:30:58,140 y tal, pero los monitores 1774 01:30:58,140 --> 01:30:59,100 los móviles y tal 1775 01:30:59,100 --> 01:31:02,180 la referencia normalmente es 16 novenos 1776 01:31:02,180 --> 01:31:04,079 entonces, ahora que sí que 1777 01:31:04,079 --> 01:31:05,939 tenemos que ir viendo cómo queda el juego 1778 01:31:05,939 --> 01:31:08,060 pues lo suyo es poner un aspecto y aparecer 1779 01:31:08,060 --> 01:31:09,260 de proporciones 1780 01:31:09,260 --> 01:31:11,479 adecuadas, vaya, ¿vale? 1781 01:31:12,060 --> 01:31:13,500 Muy bien. Pues nada 1782 01:31:13,500 --> 01:31:15,819 muchas gracias, y lo del audio sur se ve 1783 01:31:15,819 --> 01:31:17,880 en el último tema, ¿vale? Todavía no 1784 01:31:17,880 --> 01:31:20,119 todavía no... De todas maneras no lo voy a quitar 1785 01:31:20,119 --> 01:31:22,140 que me gusta la música, lo dejo ya puesto 1786 01:31:22,140 --> 01:31:23,840 Ya eso, lo que tú veas 1787 01:31:23,840 --> 01:31:25,760 Muchas gracias por todo 1788 01:31:25,760 --> 01:31:28,140 Nada, gracias a ti por asistir 1789 01:31:28,140 --> 01:31:28,619 Un saludo