1 00:00:06,769 --> 00:00:20,510 Hay que recordar que Unity ya está dejando de usar los textos antiguos y ahora recomienda, por decirlo de alguna forma sutil, los TextMesh Pro, que son mucho mejores a nivel de rendimiento, de posibilidades de crear texturas, en fin. 2 00:00:20,510 --> 00:00:27,489 Bueno, eso quizás hace que cambiar el texto a través del código sea un poquito más complicado, pero no demasiado. Así que vamos a ver cómo se hace. 3 00:00:27,489 --> 00:00:38,030 Yo he añadido un texto aquí a mi escena. Por cierto, le he puesto un panel de fondo para que destaque más. Y ahora mismo voy a añadir un script. 4 00:00:42,229 --> 00:00:50,829 Y bien, lo primero que tenemos que tener en cuenta es que para poder acceder a los TextMeshPro, ya sea en un botón o ya sea en un texto básico o en una caja de entrada de texto, 5 00:00:50,829 --> 00:00:56,170 pues tenemos que usar la librería tm pro visual estudio en ese sentido nos ayuda porque si nosotros 6 00:00:56,170 --> 00:01:02,710 creamos una variable por ejemplo serializada para atraer nuestro texto y le llamamos tmp todo lo que 7 00:01:02,710 --> 00:01:07,569 tenga que ver con text mes pro son tmp y a continuación guión bajo y por ejemplo un text 8 00:01:07,569 --> 00:01:12,909 pues bien automáticamente como podemos ver visual estudio dice para esto necesitas esta librería yo 9 00:01:12,909 --> 00:01:18,670 sé y me la ha añadido vale la podemos añadir nosotros directamente o dejar que visual estudio 10 00:01:18,670 --> 00:01:21,450 la añada por nosotros y así vamos más rápido. 11 00:01:21,950 --> 00:01:24,609 Le voy a llamar texto contador. 12 00:01:25,870 --> 00:01:28,549 Y ya en este momento, le guardo, por supuesto, 13 00:01:28,750 --> 00:01:30,849 muy importante, lo añado a un elemento en la escena. 14 00:01:32,349 --> 00:01:38,019 Voy a hacerlo a un empty object y lo pongo. 15 00:01:39,420 --> 00:01:41,859 Lógicamente nos pide qué texto queremos. 16 00:01:42,680 --> 00:01:45,079 Si lo buscamos, pues, hombre, como en mi escena solo hay un texto, 17 00:01:45,079 --> 00:01:48,200 pues mira, me viene muy bien lo de buscarlo con la dianita y así tardo menos. 18 00:01:48,640 --> 00:01:49,840 Ya está. Esto es lo mismo que arrastrarlo. 19 00:01:49,840 --> 00:01:52,900 Esto hubiera sido lo mismo que coger este texto y arrastrarlo. 20 00:01:53,000 --> 00:01:54,000 Ya tenemos control sobre él. 21 00:01:54,060 --> 00:01:57,480 Eso significa que, por ejemplo, le puedo cambiar uno de sus atributos. 22 00:01:57,599 --> 00:02:01,099 El más básico, obviamente, es el texto que contiene, es decir, el text. 23 00:02:01,459 --> 00:02:06,459 Y le puedo decir que nada más empezar, pues que hago un hola mundo, que qué menos, ¿no? 24 00:02:06,879 --> 00:02:13,039 Entonces ahora mismo, efectivamente, si le doy al play, hola mundo. 25 00:02:13,219 --> 00:02:14,500 Oh, Dios mío, se ha descontrolado. 26 00:02:14,680 --> 00:02:17,840 Bueno, sí, tenemos que saber qué ocurre con nuestro texto. 27 00:02:17,840 --> 00:02:22,039 ok. En este caso es que el contenedor 28 00:02:22,039 --> 00:02:25,960 obviamente no cabe. Le podría decir 29 00:02:25,960 --> 00:02:29,439 que se autoajuste y así el tamaño sea 30 00:02:29,439 --> 00:02:33,319 el que quepa ahí. Bueno, ahí está. 31 00:02:34,860 --> 00:02:37,000 No solo puedo cambiar el texto, también puedo cambiar 32 00:02:37,000 --> 00:02:41,960 otros atributos como por ejemplo el color. Los colores en Unity 33 00:02:41,960 --> 00:02:45,639 utilizan la clase color que 34 00:02:45,639 --> 00:02:49,300 podemos generar colores a partir de RGB. Bueno, eso es otra historia. Pero bueno, 35 00:02:49,300 --> 00:02:52,759 tenemos también igual que teníamos en CSS, pues tenemos atajos para decirle, 36 00:02:52,759 --> 00:02:58,500 por ejemplo, que sea del color rojo. Vamos a ir un poquito más allá. No quiero 37 00:02:58,500 --> 00:03:04,199 un texto, quiero un número. Y para eso voy a crear una variable de tipo Integir. 38 00:03:04,199 --> 00:03:13,159 Y le voy a decir que empiece en 100. Y le digo a mi texto que su texto es el 39 00:03:13,159 --> 00:03:17,219 countdown nada más empezar y me dará error porque me da error si nos ponemos encima lo sabremos 40 00:03:17,219 --> 00:03:24,800 porque no se puede poner un número entero a un string lo pone ahí claramente podemos hacer dos 41 00:03:24,800 --> 00:03:36,099 cosas uno o concatenarlo con un texto entonces ahora mismo nada más lanzar el juego pondrá que 42 00:03:36,099 --> 00:03:45,330 efectivamente voy a hacerlo más grande para que quepa y pondrá que ahí está y esto sí me deja 43 00:03:45,330 --> 00:03:49,050 porque un número entero concatenado con una cadena de texto es una cadena de 44 00:03:49,050 --> 00:03:54,210 texto en total pero también si no queremos hay un método que es el que nos 45 00:03:54,210 --> 00:03:58,409 sugiere visual estudio que es tu string que significa conviérteme este número en 46 00:03:58,409 --> 00:04:01,710 una cadena de texto y eso ya ahora es una cadena de texto y si tenemos un 47 00:04:01,710 --> 00:04:12,560 poquito de imaginación cuidado con las tildes de acuerdo le voy a decir que 48 00:04:12,560 --> 00:04:19,240 canda un menos menos menos y duplico esta línea y la bajo para 49 00:04:19,240 --> 00:04:29,529 abajo y voy a invocarme a mí mismo dentro de 50 00:04:29,529 --> 00:04:34,569 un segundo. Existe un método también llamado InvokeRepeating que hace más o 51 00:04:34,569 --> 00:04:38,649 menos esto. Podría funcionar, lo que pasa es que a diferencia de las corrutinas, lo 52 00:04:38,649 --> 00:04:42,129 digo por si alguien tiene esa duda, no permite cambiar el intervalo en mitad 53 00:04:42,129 --> 00:04:46,089 de la ejecución y para un invoque es un poco más complicado que para una 54 00:04:46,089 --> 00:04:49,449 cortina. En cualquier caso, esta construcción de baja tecnología me vale 55 00:04:49,449 --> 00:04:55,389 y básicamente lo que voy a hacer es que nada más empezar llamo a este método y 56 00:04:55,389 --> 00:05:02,269 ¿qué va a hacer? Restarle 1 al contador y invocarse a sí mismo dentro de un 57 00:05:02,269 --> 00:05:06,149 segundo. ¿Por dónde va a empezar? ¿Por 100 o por 99? 58 00:05:06,149 --> 00:05:09,449 Bueno, eso es lo que tendríamos que saber si fuésemos programadores. 59 00:05:09,449 --> 00:05:14,670 Obviamente va a empezar por 99. ¿Por qué? Pues os lo dejo a vosotros para que lo penséis.