1 00:00:06,080 --> 00:00:07,980 En este vídeo vamos a hablar de los Arrays. 2 00:00:08,259 --> 00:00:12,880 Los Arrays o listas o listas compuestas son un tipo de variable. 3 00:00:13,039 --> 00:00:16,940 De hecho ya hablamos de ellas en la clase sobre programación 4 00:00:16,940 --> 00:00:21,199 y dijimos que había un tipo de variable muy específica que eran los Arrays 5 00:00:21,199 --> 00:00:23,920 y que lo veremos más adelante. Pues este es el adelante. 6 00:00:24,079 --> 00:00:27,500 Para entender qué son los Arrays tenemos que cambiar nuestra concepción de variable. 7 00:00:27,780 --> 00:00:30,660 Hasta este momento los habíamos visto como cadenas de texto, números, 8 00:00:31,620 --> 00:00:35,600 incluso en Unity hablábamos de variables tipo GameObject, Transform, Vectores. 9 00:00:35,600 --> 00:00:39,140 Bueno, pues los Arrays en realidad son conjuntos de variables. 10 00:00:39,299 --> 00:00:46,259 Es una variable que nos permite introducir varias variables como si fuese una lista de variables o como si fuese una matriz de variables. 11 00:00:46,420 --> 00:00:56,420 De hecho, están asociadas a una clave, a un número que la identifica de forma que podemos acudir a cualquiera de las variables incluidas en esa lista a través de su clave. 12 00:00:56,840 --> 00:00:59,219 Para entenderlo mejor, vamos a ver cómo funciona Unity. 13 00:00:59,479 --> 00:01:02,500 Tengo aquí una escena vacía en la que he creado un empty object. 14 00:01:02,500 --> 00:01:06,959 Pues bien, a este empty object le he añadido este script de StartGame. 15 00:01:07,180 --> 00:01:08,799 Para empezar vamos a declarar un array. 16 00:01:08,879 --> 00:01:12,959 Lo voy a hacer serializado para poder acceder a él a través de la interfaz de Unity. 17 00:01:13,939 --> 00:01:14,920 Eso ya sabemos hacerlo. 18 00:01:16,200 --> 00:01:20,939 ¿De qué tipo? Pues de momento lo voy a crear de tipo número entero para que sea más sencillo. 19 00:01:21,140 --> 00:01:23,040 Pero aquí es donde viene la salvedad. 20 00:01:23,500 --> 00:01:28,640 Cuando declaramos el tipo de variable, le tenemos que poner unos corchetes de inicio y de final 21 00:01:28,640 --> 00:01:32,079 indicando que esto no es una variable común sino que es un array. 22 00:01:32,079 --> 00:01:37,920 Y a partir de ese momento, pues ya si le damos el nombre myPar, por ejemplo, vamos a ser muy genéricos. 23 00:01:38,359 --> 00:01:47,480 Y si nos fijamos, si vamos a Unity, veremos que aparece efectivamente esta variable, igual que hemos visto anteriormente, 24 00:01:47,920 --> 00:01:51,519 pero veremos que se puede desplegar. ¿Por qué? Porque es un array, se lo hemos dicho. 25 00:01:51,700 --> 00:01:55,780 ¿Y eso qué significa? Que nos está pidiendo cuántos elementos tiene ese array. 26 00:01:55,780 --> 00:02:00,760 y en el momento en el que yo le digo, pues va a tener, por ejemplo, cuatro elementos, 27 00:02:01,959 --> 00:02:04,819 le damos Enter, pues efectivamente nos aparecen los elementos. 28 00:02:05,040 --> 00:02:11,199 Y esto indica su clave, su key, que nos permite asociarnos o dirigirnos a ellos. 29 00:02:11,539 --> 00:02:13,759 Como ya sabéis, un programador empieza a contar desde cero, 30 00:02:14,240 --> 00:02:19,860 así que este array que tiene cuatro elementos, tiene el elemento cero, el uno, el dos y el tres. 31 00:02:20,280 --> 00:02:21,919 Como son números enteros, los voy a poner aquí. 32 00:02:21,919 --> 00:02:25,900 Por ejemplo, este va a ser el elemento 1, el 2, el 3 y el 4. 33 00:02:26,020 --> 00:02:26,960 ¿Cómo me dirijo a ellos? 34 00:02:27,240 --> 00:02:33,960 Yo le puedo decir a mi script, por ejemplo, muéstrame en consola el elemento de mi array. 35 00:02:34,120 --> 00:02:35,560 Y aquí es donde viene lo interesante. 36 00:02:35,919 --> 00:02:40,740 Le tenemos que decir a qué elemento nos referimos dentro de ese array. 37 00:02:41,379 --> 00:02:49,060 Si le digo que me muestre el elemento de mi array 0, el nombre del array y entre cochetes el elemento al que me estoy dirigiendo. 38 00:02:49,280 --> 00:02:50,460 En este caso es al 0. 39 00:02:50,680 --> 00:02:51,560 ¿Que quién es? 40 00:02:51,919 --> 00:02:54,960 Pues el elemento cero es al que yo he llamado uno. 41 00:02:55,520 --> 00:03:00,120 Vamos a lanzarlo y efectivamente me pone aquí que es el uno. 42 00:03:00,819 --> 00:03:05,680 Y si le pongo que me muestre el elemento dos, efectivamente el elemento dos de mi array es el tres. 43 00:03:06,319 --> 00:03:08,500 Vamos a hacerlo para que lo entendamos un poquito mejor. 44 00:03:09,520 --> 00:03:17,439 Voy a crear una nueva variable de tipo array, pero en este caso que sea de tipo cadena de texto y le voy a llamar myString. 45 00:03:18,060 --> 00:03:20,240 De nuevo, vamos a ser genéricos. 46 00:03:20,240 --> 00:03:23,379 veremos que efectivamente me ha surgido un array nuevo 47 00:03:23,379 --> 00:03:28,919 que se llama string y le voy a dar también cuatro elementos 48 00:03:28,919 --> 00:03:32,680 y lo puedo escribir porque para eso es un string 49 00:03:32,680 --> 00:03:41,840 y efectivamente si le digo que me muestre en consola 50 00:03:41,840 --> 00:03:48,259 el elemento del array que está en cuarta posición 51 00:03:48,259 --> 00:03:50,639 que en un array eso significa el elemento 3 52 00:03:50,639 --> 00:03:53,439 recordad porque hemos empezado a contar desde cero 53 00:03:53,439 --> 00:03:58,819 efectivamente me muestra el texto que hay en el cuarto 54 00:03:58,819 --> 00:04:03,520 podemos nosotros darle los contenidos del array 55 00:04:03,520 --> 00:04:06,659 desde el código en vez de que sea a través de la interfaz de Unity 56 00:04:06,659 --> 00:04:08,840 por supuesto, podemos hacerlo de hecho de varias formas 57 00:04:08,840 --> 00:04:10,080 vamos a verlo rápidamente 58 00:04:10,080 --> 00:04:12,280 voy a crear de hecho una nueva variable 59 00:04:12,280 --> 00:04:19,860 de tipo bool, por ejemplo 60 00:04:19,860 --> 00:04:22,560 pero le voy a decir que igual es array 61 00:04:22,560 --> 00:04:29,120 y en este caso no voy a darle el número de elementos a través de la interfaz de Unity 62 00:04:29,120 --> 00:04:30,779 sino que se los voy a decir yo desde el principio 63 00:04:30,779 --> 00:04:35,879 ¿cómo hago eso? pues le digo que créeme un nuevo array de tipo booleano 64 00:04:35,879 --> 00:04:39,540 pero le voy a decir que cree un nuevo array 65 00:04:39,540 --> 00:04:45,050 y le digo el número de elementos, por ejemplo en este caso van a ser tres 66 00:04:45,050 --> 00:04:46,850 así es la sintaxis 67 00:04:46,850 --> 00:04:52,350 igual que antes he creado un nuevo array de tipo booleano con su nombre 68 00:04:52,350 --> 00:04:57,569 pero le he dicho que cree un nuevo array con tres elementos. 69 00:04:58,629 --> 00:05:03,490 Es un poco así repetitivo, pero es así como conseguimos que de repente nos vamos a ir a Unity 70 00:05:03,490 --> 00:05:08,470 y efectivamente vemos aquí que ha creado la variable de tipo array 71 00:05:08,470 --> 00:05:12,490 y si la despliego vemos que ya están generados esos tres elementos. 72 00:05:13,790 --> 00:05:15,870 No tienen valor. Vamos a dárselo nosotros. 73 00:05:15,870 --> 00:05:36,189 Por ejemplo, le puedo decir que el elemento 0 de mi array va a ser true, y el elemento 1 va a ser false, y el elemento 2 va a ser true. 74 00:05:36,509 --> 00:05:43,250 ¿Qué ocurre entonces ahora si lanzo el juego? Que veremos que efectivamente esos tres elementos de mi array se ponen con su valor. 75 00:05:43,250 --> 00:05:47,529 y eso vale para todos los arrays, es decir, podemos crear un array de tipo string 76 00:05:47,529 --> 00:05:50,629 de decirle cuantos valores tiene e incluso incluirlos 77 00:05:50,629 --> 00:05:53,970 pero es que es más, incluso podemos incluirlos a la hora de definir el array 78 00:05:53,970 --> 00:05:55,529 vamos a ver ese método 79 00:05:55,529 --> 00:05:58,790 voy a crear un nuevo array de tipo cadena de texto 80 00:05:58,790 --> 00:06:01,089 le indico con corchetes que es un array 81 00:06:01,089 --> 00:06:03,750 le voy a llamar mystr, por ejemplo 82 00:06:03,750 --> 00:06:07,750 y fijaros, ahora nada más crearlo 83 00:06:07,750 --> 00:06:10,209 le puedo decir que es igual a 84 00:06:10,209 --> 00:06:12,089 y entre llaves, muy importante 85 00:06:12,089 --> 00:06:20,050 no entre corchetes, sino entre llaves, le podemos indicar separados por comas todos los elementos que queremos en ese array. 86 00:06:20,550 --> 00:06:30,050 Le voy a decir, por ejemplo, primero, ese va a ser mi primer elemento, segundo, y ese es mi segundo elemento, 87 00:06:30,269 --> 00:06:34,769 tercero, y ese es mi tercer elemento. Cierro la llave y cierro. 88 00:06:34,870 --> 00:06:40,689 Con lo cual, si nos fijamos, en el mismo momento de declarar el array le puedo asignar los valores. 89 00:06:40,689 --> 00:06:56,959 Entonces, si me voy a Unity, descubrimos que efectivamente ha creado esta nueva variable, pero antes que estaba vacío, igual que este y nos pedía cuántos valores queremos, ahora mismo si lo despliego vemos que ya tiene valores asignados 3 y tiene los que yo le he puesto.