1 00:00:02,290 --> 00:00:22,769 Vale, pues estamos aquí en la interfaz, ¿no? Y os voy a enseñar, antes de seguir con Unity, os voy a enseñar la carpeta que he generado, voy a cerrar todo, vamos, cerrar es ocultar, dame un segundillo, y aquí, vale, estáis viendo esta carpeta en mi escritorio, vale. 2 00:00:22,769 --> 00:00:51,329 Si nos metemos aquí, ¿vale? Veis que acabo de generar un proyecto nuevo y ya de primeras, fijaos, dentro de esa carpeta, lo que es el proyecto Unity, la cantidad de cosas que tiene, que esto es por lo que en parte tarda tanto, ¿vale? Aquí vais a ir viendo, ya iremos viendo qué uso tienen algunas carpetas, ¿vale? Que todo esto, cuando queramos moverlo de un ordenador a otro o me queráis compartir el proyecto, hay otra forma que es generar un paquete, ¿vale? Pero de primeras vais a tener que compartirme esta carpeta, padre, ¿vale? 3 00:00:51,329 --> 00:01:07,209 Entonces, que veáis que de momento tenemos aquí un mejunje de carpetas grande. Si queremos mover el proyecto, ya os digo, habrá que mover esta carpeta entera. Mover solo una de estas carpetas descontextualizadas no sirve para mucho. 4 00:01:07,209 --> 00:01:10,790 Prueba Tutoría Inicial 5 00:01:10,790 --> 00:01:14,569 Y vais a ver que aquí el proyecto, lo que es el conjunto de proyectos 6 00:01:14,569 --> 00:01:16,549 Se llama Prueba Tutoría Inicial 7 00:01:16,549 --> 00:01:20,489 Os pondrá aquí para qué se está construyendo 8 00:01:20,489 --> 00:01:21,590 Esto ya veremos 9 00:01:21,590 --> 00:01:24,930 Ahora mismo está configurado para que si este juego se exportara 10 00:01:24,930 --> 00:01:28,329 Este destinado a PC, a ordenador básicamente 11 00:01:28,329 --> 00:01:31,349 Si no habéis visto todavía el tema 12 00:01:31,349 --> 00:01:33,489 Vais a ver que la interfaz 13 00:01:33,489 --> 00:01:36,730 Como sucede en todos los softwares que iréis viendo 14 00:01:36,730 --> 00:01:47,670 Se compone de una cantidad de paneles que son movibles, es decir, podemos estar configurando el espacio de trabajo de manera totalmente flexible, arrastrando. 15 00:01:47,769 --> 00:01:50,549 Muy similar, por ejemplo, a lo que haréis con las aplicaciones de Adobe, ¿vale? 16 00:01:50,989 --> 00:02:04,329 En el tema 1 se explica un poco con detalle qué es cada uno de estos paneles, ¿vale? Os animo a que lo veáis y lo vayáis usando. 17 00:02:04,329 --> 00:02:24,509 Recordad también cuando instalamos el Unity, el editor en installs, que había que instalar el Visual Studio. ¿Os acordáis? Imaginaos que no marcasteis el tick de instalar Visual Studios y decíais, pues no tengo Visual Studio y ahora lo vamos a necesitar. 18 00:02:24,509 --> 00:02:27,289 si vais a installs, vais a ver que cada versión 19 00:02:27,289 --> 00:02:29,370 que hayamos instalado tiene una tuerquecilla aquí 20 00:02:29,370 --> 00:02:31,050 que es para mostrar los 21 00:02:31,050 --> 00:02:32,830 módulos, si damos a add modules 22 00:02:32,830 --> 00:02:34,689 nos vuelve a aparecer esa ventanica 23 00:02:34,689 --> 00:02:36,810 porque a lo mejor en cierto momento vamos a 24 00:02:36,810 --> 00:02:39,009 hacer una aplicación 25 00:02:39,009 --> 00:02:40,930 un juego para Android, pues habrá que instalar esto 26 00:02:40,930 --> 00:02:42,430 y se irá sumando, lo mismo 27 00:02:42,430 --> 00:02:44,810 no se instala todo de golpe porque fijaos 28 00:02:44,810 --> 00:02:46,469 que peso tiene, pues si no se va a usar 29 00:02:46,469 --> 00:02:48,949 pues peso que nos vamos ahorrando 30 00:02:48,949 --> 00:02:50,789 pero siempre se puede volver 31 00:02:50,789 --> 00:02:52,810 veis que por defecto, antes ponía 32 00:02:52,810 --> 00:02:54,870 2022, la 2020 va a tener 33 00:02:54,870 --> 00:02:56,229 una versión de Visual Studio 34 00:02:56,229 --> 00:02:59,150 que es la 2019, ¿vale? Yo ya lo tengo instalado. 35 00:03:00,229 --> 00:03:01,050 Hay una cosa 36 00:03:01,050 --> 00:03:02,810 importante cuando 37 00:03:02,810 --> 00:03:05,009 estemos 38 00:03:05,009 --> 00:03:06,289 luego trabajando, 39 00:03:07,129 --> 00:03:08,789 que es que cuando vayamos a 40 00:03:08,789 --> 00:03:10,710 tocar el código, ¿vale? Que ahora hacemos 41 00:03:10,710 --> 00:03:11,849 alguna prueba, si queréis, 42 00:03:12,509 --> 00:03:14,770 vamos a tener que decirle qué 43 00:03:14,770 --> 00:03:16,750 IDE, qué entorno de desarrollo es el que 44 00:03:16,750 --> 00:03:18,750 queremos emplear, que será ese Visual Studio, 45 00:03:19,129 --> 00:03:20,870 pero por defecto no viene vinculado, 46 00:03:21,310 --> 00:03:21,469 ¿vale? 47 00:03:22,810 --> 00:03:24,550 No os voy a hacer un repaso. 48 00:03:24,949 --> 00:03:28,490 Para eso leed la lección 1. 49 00:03:29,050 --> 00:03:30,370 Eres viendo un poco más en detalle. 50 00:03:30,370 --> 00:03:33,270 Y también hay algún vídeo de Álvaro 51 00:03:33,270 --> 00:03:36,449 que os cuenta más qué hace cada una de las secciones. 52 00:03:36,909 --> 00:03:38,669 Lo podéis ver ahí, creo que está bien explicado. 53 00:03:38,750 --> 00:03:40,550 No es algo que tenga más complejidad. 54 00:03:40,889 --> 00:03:42,689 Pero es importante, aunque también se ve, 55 00:03:43,229 --> 00:03:45,409 que es posteriormente para usar scripts 56 00:03:45,409 --> 00:03:48,629 habrá que ir a la sección de edit, 57 00:03:49,729 --> 00:03:51,129 preferencias, ¿vale? 58 00:03:51,129 --> 00:03:55,629 Y algo importante, la sección de External Tools, herramientas externas. 59 00:03:56,449 --> 00:04:00,150 Aquí es donde le decimos cuál va a ser el editor de scripts que vamos a usar. 60 00:04:00,490 --> 00:04:05,169 Si habéis hecho ya la instalación de Visual Studio, os aparecerá aquí. 61 00:04:05,469 --> 00:04:11,990 Si no, lo podéis buscar en plan en vuestro ordenador, ver dónde está el ejecutable de Visual Studio y lo asociéis ahí. 62 00:04:12,870 --> 00:04:16,230 Según lo pongáis, os recomiendo que le deis a esto de regenerar project files, 63 00:04:16,230 --> 00:04:20,629 porque a veces hay como cachés que se quedan ahí por detrás y puede dificultar algo. 64 00:04:21,129 --> 00:04:23,610 Y para que no de error, pues si le damos no pasa nada, ¿vale? 65 00:04:23,730 --> 00:04:40,149 Esto es necesario para que luego cuando usemos scripts directamente nos asocie esta versión de Visual Studio para hacer lo que es el código que nos va a permitir controlar prácticamente todo lo que vayamos diseñando y desarrollando, ¿vale? 66 00:04:40,149 --> 00:04:52,670 Importante. Cuando descarguéis un Visual Studio, aquí no voy a poder descargar otro, os saldrá una ventana de Visual Studio que os dice si queréis instalar extensiones de Visual Studio. 67 00:04:52,670 --> 00:05:15,970 En principio, la que deberíais instalar, Visual Studio Unity Extension. A ver si sale una foto aquí de lo que os estoy comentando. Os pedirá... Va a salir una ventana que va a empezar a mostrar, como dicen, muchos paquetes y tendréis que buscar una que pondrá herramientas para Unity. 68 00:05:15,970 --> 00:05:36,329 Esta es una versión más antigua, a ver si encuentro otra foto, ¿vale? Eso lo instaláis también. Vale, aquí, cuando salga esta desplegable como de workloads, ¿vale? Seleccionar el de game development con Unity, ¿vale? Y lo instaláis también, ¿vale? Importante. Esto irá saliendo solo a medida que vayáis instalando lo que hemos visto. 69 00:05:36,329 --> 00:05:55,189 Importante, y esto lo digo porque es uno de los errores iniciales que sucede, en el panel de jerarquía, que hay un menú de Windows, que es donde configuramos el espacio de trabajo, la distribución de paneles del software. 70 00:05:55,189 --> 00:06:17,970 Entonces aquí hay muchos desplegables, pero hay uno que es paneles y aquí están los seis paneles principales que aquí ya están desplegados, pero si por ejemplo no vierais la consola, voy a cerrar este tab, esta pestaña, no la tengo, pues siempre se puede abrir desde paneles y decís que queréis la consola. 71 00:06:17,970 --> 00:06:39,490 Mira, se me ha ido. ¿Que queremos otra vez reconfigurar un espacio de trabajo? Pues le decimos quiero el de por defecto y ya os lo abre con todas las pestañas abiertas. Las pestañas como por defecto. Entonces tened en cuenta que los layouts son estos espacios de trabajo que se pueden ir abriendo. 72 00:06:40,370 --> 00:06:45,269 Aparte, si solo queréis abrir un panel, pues aquí vais a ver que hay muchos paneles, esta sección, 73 00:06:45,709 --> 00:06:50,810 y la consola la podría haber recuperado otra vez dando aquí, un poco como en Adobe. 74 00:06:51,290 --> 00:06:55,410 En esta sección se van abriendo los paneles. 75 00:06:55,449 --> 00:06:59,910 Por ejemplo, uno de animación, el Animator, pues lo abro y aquí tengo otra pestaña, 76 00:07:00,750 --> 00:07:03,949 que es donde iremos metiendo los distintos estados de animación. 77 00:07:04,110 --> 00:07:05,009 Ya veremos qué es esto. 78 00:07:05,009 --> 00:07:13,389 Vale, veréis que por defecto sale este fondo, esto pues evidentemente se ve, podrá ir cambiando 79 00:07:13,389 --> 00:07:15,449 Y hay dos paneles, escena y juego 80 00:07:15,449 --> 00:07:22,189 En escena es donde nosotros vamos a ir operando, disponiendo los elementos, podremos navegar 81 00:07:22,189 --> 00:07:27,589 Lo digo porque si de pronto veis un fondo que intentáis navegar con los atajos de navegación 82 00:07:27,589 --> 00:07:31,790 Que os pongo los apuntes y no se mueve, es porque estáis en la ventana juego 83 00:07:31,790 --> 00:07:34,170 que se parecen, según la posición 84 00:07:34,170 --> 00:07:35,529 de la cámara se parecen más o menos 85 00:07:35,529 --> 00:07:38,050 luego aparecen gizmos, como estos 86 00:07:38,050 --> 00:07:39,889 elementos que están aquí, la rejilla 87 00:07:39,889 --> 00:07:41,250 pero bueno, más o menos se parece 88 00:07:41,250 --> 00:07:42,850 y puedo decir, anda, si esto no va 89 00:07:42,850 --> 00:07:46,250 eso es porque estáis en una ventana destinada a testear el juego 90 00:07:46,250 --> 00:07:48,149 ¿vale? veis que incluso se pueden 91 00:07:48,149 --> 00:07:49,410 separar 92 00:07:49,410 --> 00:07:51,810 y aquí tenemos en la que si nos podemos mover 93 00:07:51,810 --> 00:07:53,810 y otra que no, solo nos moveremos cuando le demos 94 00:07:53,810 --> 00:07:55,329 al play para probar el juego 95 00:07:55,329 --> 00:07:57,949 ¿vale? importante, que las distingáis para no 96 00:07:57,949 --> 00:07:59,850 tener conflicto 97 00:07:59,850 --> 00:08:01,430 de que no responde el programa 98 00:08:01,430 --> 00:08:11,490 En el panel jerarquía es donde vamos a ir pudiendo meter los elementos, como en Maya el outliner o las capas en Photoshop, etc. 99 00:08:12,269 --> 00:08:27,449 Por ejemplo, para que veáis, voy a añadir un cubo. Se me ha creado un objeto cubo, está aquí, con su guismo de las direcciones, que yo podría mover, subir, bajar, bastante similar a un editor de 3D, estándar. 100 00:08:28,449 --> 00:08:35,429 Cuando seleccionamos un objeto, y vais viendo que yo a medida que voy seleccionando objetos en esta jerarquía, aquí van cambiando los menús. 101 00:08:37,250 --> 00:08:43,570 El inspector lo que hará es mostrar las opciones asociadas a ese objeto. 102 00:08:44,250 --> 00:08:48,610 Por ejemplo, el cubo trae ya unos cuantos de los que se llaman componentes. 103 00:08:48,610 --> 00:08:56,809 Y los componentes, si voy recogiendo todo esto, son como fragmentos de código que están configurados para que cumplan funciones. 104 00:08:56,809 --> 00:09:05,809 Cuando digo esto de componente, es importante saber lo que es un componente porque por código luego tendremos que poner componente. Me estoy refiriendo a un componente. Quiero coger un componente. 105 00:09:06,309 --> 00:09:16,389 Componente es cada uno de estos bloques con funcionalidades. Por ejemplo, todo lo que se ocupa de dónde están las coordenadas del objeto. 106 00:09:16,389 --> 00:09:29,830 Veis que si yo voy aquí desplazando el objeto en X o lo desplazo en cualquier eje, pues se ve reflejado aquí. Esto es el componente llamado transform. Cuando luego por código queramos cambiar algo del transform, pues será el componente con este nombre. 107 00:09:29,830 --> 00:09:43,769 Que queremos cambiar algo de un box collider, pues tened en cuenta que el componente se llama box collider. Y aquí, si quisiéramos ir metiendo más funcionalidades, pues tenemos este añadir componentes, que hay unos cuantos, ¿no? Pues de física. 108 00:09:43,769 --> 00:09:53,929 Por ejemplo, un RigidBody, lo agrego y ahora hay otro componente que tiene unas cuantas secciones, unos cuantos parámetros posibles, desplegables, etc. 109 00:09:54,529 --> 00:10:07,350 Al final, lo que tenéis que ir haciendo en vuestra cabeza es la idea de que todo esto que vamos viendo aquí, que son menús, este campo que se puede poner un 5, todo esto va a ser accesible mediante código. 110 00:10:07,350 --> 00:10:12,129 entonces aquí digamos que es la versión asequible 111 00:10:12,129 --> 00:10:15,049 como habéis hecho normalmente en todos los softwares que usáis 112 00:10:15,049 --> 00:10:16,330 pero detrás hay código 113 00:10:16,330 --> 00:10:18,950 aquí lo que vamos a hacer es que vamos a poder alterar el código 114 00:10:18,950 --> 00:10:22,190 directamente en nuestros scripts escribiendo 115 00:10:22,190 --> 00:10:26,090 entonces cuando queráis recurrir a por ejemplo 116 00:10:26,090 --> 00:10:29,350 cambiar la masa de este RigidBody 117 00:10:29,350 --> 00:10:32,450 tened en cuenta que hay un componente que se llama RigidBody 118 00:10:32,450 --> 00:10:34,830 y luego un parámetro que se llama masa 119 00:10:34,830 --> 00:10:37,169 entonces sabiendo esto ya sabremos acceder 120 00:10:37,169 --> 00:10:49,990 Si empezáis a leer el tema 0, el inicial, que es bastante árido, sobre todo cuando comencéis, va a hablar de programación orientada a objetos, de clases, de cosas así. 121 00:10:50,830 --> 00:11:00,990 Las clases al final son como objetos, son un poco relacionados, son fragmentos de código que se recogen bajo un nombre. 122 00:11:00,990 --> 00:11:18,549 Entonces, este componente RigidBody significa que hay un objeto con una clase, ahora vemos que es una clase de una forma menos abstracta, que se llama RigidBody. Entonces, cuando queramos recurrir a este componente, será lo mismo que recurrir a una clase también. 123 00:11:18,549 --> 00:11:38,490 Voy a poner un ejemplo. Yo cuando hago un script nuevo, y para eso os presento el panel Project, aquí es donde vamos a ir teniendo los paquetes que vayamos instalando, los assets, aquí podremos ir metiendo los modelos, 3D o 2D, los sprites, todo se va a centralizar en estos assets. 124 00:11:38,490 --> 00:11:59,409 E importante, si os fijáis en la estructura de carpetas, y vuelvo a abrir lo que nos ha generado antes, vais a ver que algunas de estas carpetas sean igual. Por ejemplo, Assets o Packages. Packages está aquí y ahí. Si nos metemos aquí, vais a ver que dentro de Assets hay una carpeta que se llama Escenas, que casualidad se llama igual. 125 00:11:59,409 --> 00:12:12,669 O en Packages, si me meto, voy a tener unas cuantas carpetas, aquí no se ven porque están instaladas de otra forma, por código también, pero digamos que están ahí dentro también. 126 00:12:12,769 --> 00:12:24,590 Cuando se vayan incorporando más paquetes, ahí se verán. Incluso los Project Settings que se pueden ir alterando, como aquí, se van guardando todas esas configuraciones en esta carpeta. 127 00:12:24,590 --> 00:12:44,049 Entonces, por ejemplo, en Assets vais a ver que dentro de Assets ya hay lo que se llama una escena. Esta escena se llama Sample Scene. Cuando no veáis bien el nombre o tal, tened en cuenta que tenéis aquí una palanquita que os permite, incluso si lo lleváis al mínimo, que os lo ponga en forma de verlo en vista. 128 00:12:44,049 --> 00:12:59,830 Si le dais a la tecla Control y a la ruleta del ratón, también podéis ir haciendo como zoom. Esto para cosas como el prefaz, que el icono es muy representativo, es importante conocerlo. Y veis que hay una escena ya por defecto que se llama Sample Scene. 129 00:12:59,830 --> 00:13:17,029 Y si veis aquí también, además con el mismo iconito, en la parte superior de la jerarquía está Sample Scene. Las escenas, la forma más fácil que yo creo que hay para explicar lo que es, son lo que se podrían llamar pantallas o niveles en el juego. 130 00:13:17,029 --> 00:13:20,269 Pues el nivel 1. Luego nos pasamos a ese nivel y vamos al nivel 2. 131 00:13:20,850 --> 00:13:23,470 Todo lo que tengamos aquí dentro será la escena 1. 132 00:13:24,070 --> 00:13:27,070 Podremos ir creando más escenas para ir cambiando entre una u otra. 133 00:13:27,970 --> 00:13:31,750 O incluso se podrá abrir una estando en otra para ampliar un mundo. 134 00:13:31,970 --> 00:13:37,210 Porque no se carga todo, sino primero una parte del nivel y luego se va ampliando el mundo cargándose más escenas. 135 00:13:37,669 --> 00:13:43,110 Esto es importante porque si veis este asterisquito, significa que esta escena no está guardada. 136 00:13:43,490 --> 00:13:44,610 También aparece aquí arriba. 137 00:13:44,610 --> 00:14:04,269 Si yo le doy al control S, pues básicamente todo lo que hemos hecho en esta escena se ha guardado. Importante, hay que ir guardando las escenas. A lo mejor estamos trabajando, puedo crear aquí con clic derecho, crear otra escena, a ver, a ver, a ver, aquí está, y llamarla nivel 2. 138 00:14:04,269 --> 00:14:07,070 y me meto en el nivel 2 139 00:14:07,070 --> 00:14:09,190 y veis que, ahora porque el fondo 140 00:14:09,190 --> 00:14:11,350 es el mismo, pero veis que cuando me meto en el nivel 2 141 00:14:11,350 --> 00:14:12,669 aquí paso al nivel 2 142 00:14:12,669 --> 00:14:15,190 y está virgen otra vez, es decir, no tiene 143 00:14:15,190 --> 00:14:17,049 el cubo que teníamos antes 144 00:14:17,049 --> 00:14:18,629 entonces yo a lo mejor aquí 145 00:14:18,629 --> 00:14:21,009 creo una esfera 146 00:14:21,009 --> 00:14:22,169 por poner algo 147 00:14:22,169 --> 00:14:25,049 cuando yo voy al sample 2, te va a pedir 148 00:14:25,049 --> 00:14:27,110 guardar, porque hasta que no guardes 149 00:14:27,110 --> 00:14:28,389 no te deja irte 150 00:14:28,389 --> 00:14:30,669 entonces, importante, para ir cambiando de nivel 151 00:14:30,669 --> 00:14:33,090 damos doble clic y podremos ir variando 152 00:14:33,090 --> 00:14:40,649 Esto ya lo veremos de todo modo más avanzado, pero que sepáis que las escenas son como los niveles y siempre hay que estar trabajando dentro de una escena. 153 00:14:40,850 --> 00:14:48,750 Por defecto nos crea esta sample, pero podemos decirle que la renombremos a nivel 1 por tenerlo así. 154 00:14:49,629 --> 00:14:57,190 Dice, bueno, va a cambiar en el assets, scenes, nos está diciendo que en esta carpeta van a ir cambiando el nombre. 155 00:14:57,190 --> 00:15:03,429 De hecho, ya si nos metemos, veréis que dentro de la carpeta de escenas, que es esta aquí, ya hay dos niveles. 156 00:15:03,909 --> 00:15:08,289 Veis que todo lo que se vaya haciendo en este panel de proyectos luego se ve reflejado en esta carpeta. 157 00:15:08,370 --> 00:15:09,250 Y ha creado el nivel 2. 158 00:15:09,950 --> 00:15:17,309 Y vais a ver también, esto simplemente para que lo veáis, que asociado a cada elemento va a haber otro archivo llamado igual con finalización en .meta. 159 00:15:17,750 --> 00:15:20,110 Estos archivos, no lo borréis, son metadatos. 160 00:15:20,389 --> 00:15:23,970 Son como archivos que genera automáticamente con los cambios que vayamos haciendo. 161 00:15:23,970 --> 00:15:46,490 Entonces, que no os asuste, que no veáis aquí esos archivos porque están destinados para trabajar por debajo, ¿no? Nosotros no los vamos a manipular directamente, pero veis que se va viendo reflejado, ¿no? Uy, va, que aquí me ha salido otro lado. Vale, lo voy a recargar con el nuevo nombre de escena porque le cambié el nombre y ahora se llama nivel 1 y en la carpeta también se llamará nivel 1, ¿vale? 162 00:15:46,490 --> 00:15:49,529 vuelvo a los assets, que aquí ahora mismo 163 00:15:49,529 --> 00:15:51,090 solo tengo esta carpeta de escenas 164 00:15:51,090 --> 00:15:53,529 igual que tenemos esta carpeta 165 00:15:53,529 --> 00:15:55,509 de escenas, pues ahora por ejemplo 166 00:15:55,509 --> 00:15:57,029 podemos en el 167 00:15:57,029 --> 00:15:58,490 clic derecho y crear 168 00:15:58,490 --> 00:16:00,929 otra carpeta, podemos hacer 169 00:16:00,929 --> 00:16:03,049 todas las carpetas que queramos, y aquí vamos a hacer una 170 00:16:03,049 --> 00:16:05,269 y esta es buena práctica, una carpeta 171 00:16:05,269 --> 00:16:06,750 que es la que tiene los scripts 172 00:16:06,750 --> 00:16:09,210 los scripts básicamente van a ser 173 00:16:09,210 --> 00:16:11,370 los fragmentos de código con los que nosotros vamos a 174 00:16:11,370 --> 00:16:12,669 dar instrucciones 175 00:16:12,669 --> 00:16:15,350 tanto automáticas de que se mueva 176 00:16:15,350 --> 00:16:22,110 un objeto que es decir en unity siempre hay un panel de animación muy parecido al típico que 177 00:16:22,110 --> 00:16:27,970 veréis en maya con keyframes etcétera claro por eso va a ejecutar animaciones pre hechas lo bueno 178 00:16:27,970 --> 00:16:32,149 y diferente de maya con respecto a esto es que también aquí lo que vamos a querer es que los 179 00:16:32,149 --> 00:16:38,509 elementos interactúen a medida que nosotros pues vamos introduciendo inputs en el teclado en ratón 180 00:16:38,509 --> 00:16:44,070 o en el móvil o donde sea no eso lo tenemos que hacer mediante scripts mediante programación sí 181 00:16:44,070 --> 00:16:51,009 que hay esto no lo vamos a ver en el curso porque esto aparte de ser más avanzado es digamos una 182 00:16:51,009 --> 00:16:56,730 forma menos controlable ahí lo que se llama el visual scripting vale que es una especie de 183 00:16:56,730 --> 00:17:02,309 paquete esto lo digo para que os suene de paquete que se instala y os permite cómo hacer todas las 184 00:17:02,309 --> 00:17:07,289 acciones que se pueden hacer por código o muchas no todas no están customizable mediante nodos no 185 00:17:07,289 --> 00:17:12,930 un poco no seguramente ya también lo sabréis visto en algún momento en otro software pues mediante 186 00:17:12,930 --> 00:17:17,930 nodos pero es verdad que primero para saber que estás controlando con esos nodos tienes que saber 187 00:17:17,930 --> 00:17:22,890 a qué hacen referencia y básicamente es a lo mismo que la programación entonces esto se puede 188 00:17:22,890 --> 00:17:28,690 simplificar cosas pero es bastante más avanzado luego si alguno a lo mejor habéis usado otro motor 189 00:17:28,690 --> 00:17:34,349 de render como unreal tiene lo que se llama los blueprints y esos blueprints son como fragmentos 190 00:17:34,349 --> 00:17:39,569 de código muy similar a esto del visual scripting y están más desarrollados aunque en unity y hay 191 00:17:39,569 --> 00:17:47,710 Hay gente que usa esos nodos para programar, pero llegados a ciertos puntos se pueden encontrar con límites 192 00:17:47,710 --> 00:17:53,329 o que no puedan customizar lo que quieran, que es lo que vamos a intentar hacer aquí todo lo posible. 193 00:17:54,750 --> 00:17:58,190 Entonces, para hacer esos códigos, básicamente tendremos que generar scripts. 194 00:17:59,190 --> 00:18:04,430 En esta carpeta de scripts me meto, vamos a crear, y este momento es importante, nuestro primer script. 195 00:18:04,690 --> 00:18:07,690 Es una tarea que vais a hacer de manera muy recurrente. 196 00:18:07,690 --> 00:18:18,309 Para crear un script se puede hacer con clic derecho, crear, como casi todos los elementos que vamos a crear en el panel proyecto estarán dentro de esta opción de crear porque hay un montón de cosas. 197 00:18:19,210 --> 00:18:29,049 Y aquí podéis generar lo que es un C-SARP script. Esto de C-SARP o C almohadilla, no sé, es el lenguaje de programación que se usará en Unity. 198 00:18:29,049 --> 00:18:42,170 En otros, por ejemplo, en Unreal se usa uno que se llama C++. En este se usa César. Cada uno es programación con unas reglas y una sintaxis diferenciada. 199 00:18:43,109 --> 00:18:52,690 Lo que os decía, César es el lenguaje de scripting que usamos, de programación, y cuando lo creéis, al crearlo, lo primero que os va a dar fallos. 200 00:18:52,690 --> 00:19:11,390 Cuando le deis, os pide un nombre. Por defecto os pone esto de New Behavior Script. Y aquí es donde vamos a crear el nombre de una clase. Antes os he dicho, voy a poner ya el nombre y luego os sigo explicando. Voy a poner esto, script1, así con letras. 201 00:19:12,029 --> 00:19:18,150 Fijaos además, cuando escribo este nombre, que no ponemos espacios, esto lo ponen los temas, que no ponemos espacio. 202 00:19:18,690 --> 00:19:23,730 En el nombre de una clase, de un método, hay que empezar con una mayúscula, se escribe luego minúsculas, 203 00:19:23,829 --> 00:19:30,670 y si vamos a usar otra palabra en vez de dejar un espacio, es todo seguido y lo vamos distinguiendo con las mayúsculas. 204 00:19:30,670 --> 00:19:36,910 Y una vez ya tengamos el nombre, script1, pincho fuera, donde sea, y se guarda. 205 00:19:36,910 --> 00:19:46,750 Importante, cuando ponemos este nombre la primera vez, si luego lo vamos a cambiar el nombre, hay que hacer más operaciones, no solo cambiar el nombre. 206 00:19:46,750 --> 00:19:57,990 Por eso, es fácil, tampoco tiene mucho misterio. Pero de primeras para no liarnos y que no de error, tened en cuenta que el nombre en principio solo se puede poner una vez y ponerlo bien. 207 00:19:58,769 --> 00:20:05,730 Ahora os explico el por qué. Tened en cuenta lo que os he dicho, que teníamos un montón de bloques de funcionalidades. 208 00:20:05,730 --> 00:20:10,789 Por ejemplo, el RigidBody para dar atributos de gravedad a nuestros objetos. 209 00:20:10,950 --> 00:20:16,390 O el BoxCollider sirve para que se detecten las colisiones en el área de este cubo, por ejemplo. 210 00:20:16,769 --> 00:20:23,009 Entonces, cada una de estas funcionalidades, si no tuviera el BoxCollider, no detectaría las colisiones. 211 00:20:23,349 --> 00:20:25,029 De hecho, como un ejemplo rápido. 212 00:20:25,130 --> 00:20:26,309 Ah, vale, perdonad, no lo veía. 213 00:20:26,589 --> 00:20:27,890 Este cubo verde es el Collider. 214 00:20:28,250 --> 00:20:30,890 De hecho, veis que cuando lo activo y lo desactivo es el Collider. 215 00:20:30,890 --> 00:20:45,910 Aunque la geometría esté ahí, si el Collider está aquí, esto lo veremos en un tema solo de física, ¿vale? Pero si no configuramos dónde tienen que estar las colecciones, pues actuará de una forma diferente. 216 00:20:45,910 --> 00:20:48,910 si vemos aquí podemos activar y desactivar 217 00:20:48,910 --> 00:20:50,250 este collider y como ejemplo 218 00:20:50,250 --> 00:20:53,269 hemos puesto un componente, una funcionalidad 219 00:20:53,269 --> 00:20:54,349 que es que tenga 220 00:20:54,349 --> 00:20:56,710 gravedad, por ejemplo, RigidBody de momento 221 00:20:56,710 --> 00:20:58,630 es que tenga gravedad, cuando yo le doy al play 222 00:20:58,630 --> 00:21:00,750 ejecuto el juego, vais a ver 223 00:21:00,750 --> 00:21:01,450 que este objeto 224 00:21:01,450 --> 00:21:04,769 y lo estamos viendo, la escena juego, recordad 225 00:21:04,769 --> 00:21:06,410 que cuando le damos al play 226 00:21:06,410 --> 00:21:08,970 nos vamos a la sección 227 00:21:08,970 --> 00:21:09,650 de juego 228 00:21:09,650 --> 00:21:12,769 y podemos tener abiertas las dos 229 00:21:12,769 --> 00:21:14,730 porque habéis visto que aunque yo estaba viendo 230 00:21:14,730 --> 00:21:20,690 escena de pronto me salta juego que está viendo lo que ve la cámara principal vale entonces a 231 00:21:20,690 --> 00:21:25,230 veces queremos seguir aunque esté en play el juego vamos a querer seguir tocando nuestros 232 00:21:25,230 --> 00:21:30,549 objetos entonces de buenas prácticas tener el panel de escena y el panel de juego los dos 233 00:21:30,549 --> 00:21:34,829 abiertos y vais a ver ahora que sí que se va a ver aunque esté fuera de cámara que a ver yo podría 234 00:21:34,829 --> 00:21:41,009 llevar el objeto delante de cámara a ver dónde tenemos la cámara la tenemos ahí y no se ve 235 00:21:41,009 --> 00:21:47,549 porque está por detrás de la cámara. 236 00:21:47,690 --> 00:21:51,029 Entonces yo voy a ponerlo aquí, lo bajo y ya se empieza a ver el objeto. 237 00:21:51,609 --> 00:21:55,329 Estáis viendo que aquí, si pincho en la cámara que viene por defecto, 238 00:21:55,769 --> 00:21:56,769 sale el frustrum. 239 00:21:57,109 --> 00:21:59,849 Frustrum no sé si es un término que habéis estudiado en otros módulos, 240 00:22:00,289 --> 00:22:03,950 que es la representación visual de que está captando la cámara. 241 00:22:03,950 --> 00:22:09,190 Está apuntando para ahí y hasta que el cubo no está dentro de ese frustrum 242 00:22:09,190 --> 00:22:10,990 no se ve, ¿vale? 243 00:22:11,589 --> 00:22:13,609 Tenemos por un lado en la ventana juego 244 00:22:13,609 --> 00:22:15,970 la vista de ese juego 245 00:22:15,970 --> 00:22:17,970 y aquí en escena, pues, donde podemos navegar 246 00:22:17,970 --> 00:22:19,470 ¿vale? Cuando demos a play 247 00:22:19,470 --> 00:22:21,710 como ese cubo tiene el RigidBody 248 00:22:21,710 --> 00:22:23,190 vais a ver que por defecto va a hacer 249 00:22:23,190 --> 00:22:25,430 ¡Piu! 250 00:22:25,549 --> 00:22:27,569 y se va a ir cayendo con la gravedad que tenga, ¿no? 251 00:22:28,130 --> 00:22:29,849 Si yo, por ejemplo, con 252 00:22:29,849 --> 00:22:31,369 estos punticos que tengo aquí 253 00:22:31,369 --> 00:22:33,910 quito este componente, vais a 254 00:22:33,910 --> 00:22:35,690 ver que el cubo no se cae 255 00:22:35,690 --> 00:22:37,690 porque no se le está aplicando esta fuerza 256 00:22:37,690 --> 00:22:52,890 de la gravedad, ¿vale? De fuerza física, ¿vale? Entonces, importante, cada uno de estos componentes, ¿vale? Este nombre que tiene aquí se corresponde con, cuando estudiéis la parte de programación orientada a objetos de la unidad 0, 257 00:22:52,890 --> 00:23:12,150 Que vais a decir, jue, qué árido es esto. Básicamente cada objeto o clase, ahora nos relacionamos, es el nombre con el que se ha guardado a cada una de estas funcionalidades. Voy a ir más allá y lo vais a entender mejor. Esto es importante para ir haciendo la cabeza. 258 00:23:12,150 --> 00:23:29,210 Cuando abramos el script, tenemos aquí el script esperando algo. Para abrirlo, recordad que tiene que estar asociado en External Tools el Visual Studio correspondiente que lo va a gestionar. Entre el 2019 y el 2022 habrá diferencias para programadores avanzados, para nosotros es lo mismo. 259 00:23:29,210 --> 00:23:57,450 Pero esta versión de verdad, que la que yo os digo 2020, la asociada que instala como módulo por defecto es la 2019, ¿vale? Para abrir, doble clic sobre ese botón, ¿vale? Se os abrirá una ventana de Visual Studio, cargará y os abrirá esto por defecto. Esperamos un poco, que sobre todo el primero tarda más, ¿vale? A ver, que lo tengo con bastante zoom. Aquí podemos cambiar un poco el zoom. Bueno, no voy a dejar 150. Yo creo que se ve bien, ¿verdad? 260 00:23:57,450 --> 00:24:15,029 Vale, esta parte de código, que es de la forma que viene planteada de primeras, pues tranquilidad, esto lo iremos viendo, pero vais a ver que hay una cosa que nos suena, que es este script1, que se llama así, igual que el script que hemos creado aquí. 261 00:24:15,029 --> 00:24:34,569 Y se llama igual, ¿vale? Porque cuando creamos un script, ¿vale? Lo que estamos generando es una clase nueva, un objeto nuevo de programación. Entonces, aquí vais a ver, aunque todavía no sepamos muy bien qué quiere decir todo esto, que se ha creado, aquí hay una clase que se llama, ¿vale? Script1, ¿vale? 262 00:24:34,569 --> 00:25:02,650 Para que este objeto que está en Unity se asocie bien al código que estamos tocando en Visual Studio, se tiene que llamar exactamente igual, ¿vale? Si yo aquí, por ejemplo, digo, lo voy a hacer aquí, es decir, ahí va, me he equivocado del nombre y no, yo lo quería llamar disparar porque es el script que vamos a usar para disparar y lo guardo, ¿vale? Nada te va a dar error, ¿eh? Pero como aquí, vuelvo al Visual Studio, de hecho, mira, ya no lo está reconociendo y algo pasa, ¿vale? 263 00:25:02,650 --> 00:25:28,069 Yo aquí, cuando abra, le doy doble clic, como esto se va a seguir llamando, que no se va a actualizar solo, script1, todo lo que vayamos haciendo en este código no se va a traducir bien. De hecho, cuando clicáis aquí vais a ver que sale el mismo código y sigue poniendo script1. Vais a ver que no se van a relacionar, os va a dar fallo. Por eso, si se cambia el nombre aquí, hay que ir con mucho cuidado aquí y cambiar el nombre de la clase. Se tienen que llamar siempre igual. 264 00:25:28,069 --> 00:25:30,750 y cuidado con las líneas 265 00:25:30,750 --> 00:25:33,609 con los saltos, disparar 266 00:25:33,609 --> 00:25:35,309 luego importante 267 00:25:35,309 --> 00:25:37,470 y esto también pasa en todos los softwares, igual que os he dicho 268 00:25:37,470 --> 00:25:39,029 antes, aquí hay una estrellita 269 00:25:39,029 --> 00:25:40,549 un asterijillo que 270 00:25:40,549 --> 00:25:43,029 nos indica que no está guardado 271 00:25:43,029 --> 00:25:45,230 los avances, los cambios que hemos hecho 272 00:25:45,230 --> 00:25:47,589 para guardar, como siempre, control S 273 00:25:47,589 --> 00:25:49,450 le he dado y se ha guardado 274 00:25:49,450 --> 00:25:51,309 para que los cambios que yo vaya 275 00:25:51,309 --> 00:25:53,470 haciendo del código también se vean reflejados 276 00:25:53,470 --> 00:25:54,970 veis que ahora cuando clico aquí 277 00:25:54,970 --> 00:25:57,390 ya si pone disparar, para que se vean reflejados 278 00:25:57,390 --> 00:26:05,589 De hecho, mira, si yo pongo aquí disparar dos y vuelvo a Unity y no he guardado, pues aunque yo le dé, aquí no se ha actualizado. 279 00:26:05,910 --> 00:26:07,690 Así que importante, todo cambia. 280 00:26:07,750 --> 00:26:10,349 Y vuelvo a poner el mismo nombre que tiene el script. 281 00:26:10,890 --> 00:26:13,869 Todo cambia que vayamos haciendo, control S, ¿vale? 282 00:26:14,109 --> 00:26:15,049 Para que no dé problema. 283 00:26:18,130 --> 00:26:24,049 Cuando vayamos viendo ejemplos de qué se hace con scripts, vais a ver que pasa otra cosa, que es que igual estáis aquí diciendo, 284 00:26:24,049 --> 00:26:24,650 diciendo 285 00:26:24,650 --> 00:26:28,009 esto ya lo veremos 286 00:26:28,009 --> 00:26:30,029 pero transform position es igual a 287 00:26:30,029 --> 00:26:32,190 las coordenadas que doy donde tiene que estar la posición 288 00:26:32,190 --> 00:26:33,970 es, esto ya lo veremos 289 00:26:33,970 --> 00:26:35,789 pero aquí estoy diciéndole que 290 00:26:35,789 --> 00:26:37,170 al empezar el juego 291 00:26:37,170 --> 00:26:39,329 vale, el 292 00:26:39,329 --> 00:26:40,529 y guardo 293 00:26:40,529 --> 00:26:44,269 al empezar el juego el objeto se ubique en las coordenadas 294 00:26:44,269 --> 00:26:45,049 0, 0, 0 295 00:26:45,049 --> 00:26:47,890 y esto vamos a ver 296 00:26:47,890 --> 00:26:50,349 que hemos guardado 297 00:26:50,349 --> 00:26:51,950 y todo eso, pero yo 298 00:26:51,950 --> 00:27:06,109 Si voy al objeto, importante, para hacer zoom al objeto y verlo de cerca, en el panel de escena podéis seleccionarlo y darle a la tecla F o, me vuelvo a alejar, darle doble clic al objeto y os acerca a ese objeto. 299 00:27:09,109 --> 00:27:12,549 Todo esto lo ponen los contenidos igualmente. 300 00:27:13,329 --> 00:27:20,049 Las coordenadas que tiene ahora mismo este cubo las voy a poner en las que sean que no sean cero. 301 00:27:20,049 --> 00:27:41,369 Por ejemplo, 0, 62, 0, 5, 17, 52. Es decir, muy alejado del 0, 0, 0. Cuando yo le dé al play, vais a ver que yo le he dicho, cuando empiece el juego, que la posición del objeto vaya a 0, 0, 0. Le doy al play y el objeto no se ha movido en absoluto. Sigue en las coordenadas que estaba. 302 00:27:42,190 --> 00:27:44,730 ¿Por qué? Y esto es la lógica que hay que seguir también. 303 00:27:45,109 --> 00:27:50,990 ¿Por qué? Primero, porque en qué momento hemos dicho que el script que estamos escribiendo se asocia a este cubo. 304 00:27:51,349 --> 00:27:54,769 Podría estar hablando de la cámara o de la luz que viene por defecto. 305 00:27:55,450 --> 00:27:59,890 Hay que pensar siempre que queramos que un script se aplique a un objeto, un GameObject. 306 00:27:59,890 --> 00:28:04,670 Aquí todo se llama GameObjects, todos los cubitos estos, todos los elementos. 307 00:28:04,789 --> 00:28:10,890 Que veis que tanto la luz como las cámaras suelen tener el mismo iconito, algunos variarán, pero de momento todos son GameObjects. 308 00:28:12,089 --> 00:28:18,009 Al final, hasta que no le asociemos este script, que es otro componente, no va a saber que hay que aplicarlo. 309 00:28:18,630 --> 00:28:22,410 ¿Cómo se aplica este script a este objeto? 310 00:28:22,589 --> 00:28:31,230 Pues lo seleccionamos y el script que queramos, que puede haber más, pues este disparar, que en realidad sirve para que se reubique la posición, lo arrastramos como componente. 311 00:28:31,670 --> 00:28:33,349 Y veis que se añade como componente. 312 00:28:35,269 --> 00:28:40,430 Ya sí que el cubo sabe que tiene un script que dentro tendrá código tal que en este caso es que se reubique. 313 00:28:40,430 --> 00:29:01,769 Y si le damos al play ahora, vais a ver que al comenzar el juego se ha movido y si selecciono al cubo, pues está en el 0, 0, 0. Hasta que no se aplique este script en el objeto que lo quiera, hasta que no asociemos el componente, pues nadie sabe a quién tiene que aplicarse este script. 314 00:29:01,769 --> 00:29:16,349 Vale, importante, que son como los primeros errores que surgen. Vale, importante también para que vayáis viendo la lógica, que al meterlo es como otro componente, es decir, otro objeto con otra clase, vale, que en este caso se llama disparar, que es la que hemos puesto aquí. 315 00:29:16,349 --> 00:29:33,569 Y vais a ver también que si yo este nombre lo llamo disparar, bueno, le voy a poner mover objeto. Recordad que no se pueden poner espacios. Todo seguido y con lo que vemos la separación de palabras es con las mayúsculas. 316 00:29:33,569 --> 00:29:55,109 Vais a ver que primero ya como que me está dando aquí un fallo raro de que no me lo reconoce, ¿vale? A veces no lo hace. Y cuando voy a cubo, no está funcionando porque no está detectando qué clase es a la que estamos hablando. ¿Por qué? Nuevamente, porque no está asociada el nombre del objeto, que es moverObjecto, con la clase que está gestionando este script. 317 00:29:55,109 --> 00:30:09,670 Por tanto, como he vuelto a cambiar el nombre, aquí con cuidadete, mover objeto y guardamos. Y ahora cuando volvamos a Unity, pues recargará. Y ahora sí que sí, volvemos a cubo y ahí está mover objeto. 318 00:30:09,670 --> 00:30:32,869 Y fijaos cómo es que aquí nos ha puesto un espacio. Esta es la forma en la que el editor, el inspector, lo visual que vamos viendo aquí, cómo se reflejan todos los parámetros, nos lo intenta hacer fácil y amigable, tan amigable que aunque a nivel de código hay que escribirlo así, porque si no da fallos, aquí nos lo va separando cuando detecta que estamos poniendo estas mayúsculas. 319 00:30:32,869 --> 00:30:45,329 Y recordad, os he dicho, cada componente es una clase, un objeto. Estos que vamos añadiendo aquí son ya clases como esta, que se llamarán BoxCollider. 320 00:30:45,549 --> 00:30:56,210 Ahí en algún punto, si buscáramos un código, un script que se llama BoxCollider, que lo han configurado a otro iconito y ciertos parámetros, pero al final es otro código cuya clase es BoxCollider. 321 00:30:56,210 --> 00:31:13,109 Entonces, pensar en cada uno de estos apartados o de los componentes, por ejemplo, en el Physics Raycaster, pues esto es otro componente. Hay otro componente que es la cámara. Si nos vamos metiendo en el código, llegaremos a la cámara. 322 00:31:13,109 --> 00:31:17,069 aquí vais a ver que hay muchos elementos 323 00:31:17,069 --> 00:31:21,150 que son como lo que se llaman librerías o namespaces 324 00:31:21,150 --> 00:31:23,789 que importante, cuando os ponéis encima de cualquier elemento 325 00:31:23,789 --> 00:31:26,849 en el Visual Studio tiene muchas ayudas 326 00:31:26,849 --> 00:31:28,450 y de hecho es bastante esencial 327 00:31:28,450 --> 00:31:31,109 que por ejemplo la primera línea vais a ver que os pone 328 00:31:31,109 --> 00:31:33,170 de qué tipo es este objeto 329 00:31:33,170 --> 00:31:34,910 y aquí os pone namespace 330 00:31:34,910 --> 00:31:36,710 si por ejemplo nos ponemos en star 331 00:31:36,710 --> 00:31:39,269 os pondrá voy mover objeto punto star 332 00:31:39,269 --> 00:31:41,730 y paréntesis, esto es lo que se llama una función 333 00:31:41,730 --> 00:31:44,670 En MonoBehaviour vais a ver que es una clase 334 00:31:44,670 --> 00:31:46,109 Otra vez lo de clase 335 00:31:46,109 --> 00:31:47,769 Si me pongo en mover objeto al ponerme encima 336 00:31:47,769 --> 00:31:49,309 Te dice esto es la clase mover objeto 337 00:31:49,309 --> 00:31:51,730 Aquí está muy claro porque está aquí lo de clase 338 00:31:51,730 --> 00:31:53,390 Pero es que luego en cierto momento 339 00:31:53,390 --> 00:31:55,690 También vamos a poder recurrir a mover objeto 340 00:31:55,690 --> 00:31:56,769 Sin ponerlo de clase 341 00:31:56,769 --> 00:32:00,369 Y pues está muy útil 342 00:32:00,369 --> 00:32:02,410 Saber que esto es mover objeto 343 00:32:02,410 --> 00:32:03,490 Y es una clase 344 00:32:03,490 --> 00:32:05,970 Aquí ya habría que hacer más operaciones 345 00:32:05,970 --> 00:32:07,549 Esto ya lo veremos también 346 00:32:07,549 --> 00:32:09,890 Pero que tengáis en cuenta que al poneros 347 00:32:09,890 --> 00:32:11,789 encima de los objetos os va diciendo 348 00:32:11,789 --> 00:32:13,910 pues posición es de la clase transform 349 00:32:13,910 --> 00:32:15,690 un parámetro que se llama posición 350 00:32:15,690 --> 00:32:16,809 un vector 3 es 351 00:32:16,809 --> 00:32:20,289 tiene una estructura de 3 floats 352 00:32:20,289 --> 00:32:21,930 todo esto 353 00:32:21,930 --> 00:32:24,049 lo iremos viendo ¿vale? pero bueno 354 00:32:24,049 --> 00:32:25,829 que es importante, igual que cuando vayamos 355 00:32:25,829 --> 00:32:26,970 escribiendo ciertas palabras 356 00:32:26,970 --> 00:32:30,109 pues nos va ayudando y a veces nos sugiere 357 00:32:30,109 --> 00:32:30,829 pues transform 358 00:32:30,829 --> 00:32:34,170 y os va sugiriendo opciones dentro de 359 00:32:34,170 --> 00:32:35,809 lo que tenga lógica 360 00:32:35,809 --> 00:32:37,950 en el momento que estáis escribiendo 361 00:32:37,950 --> 00:32:39,250 ¿vale? entonces es una ayuda 362 00:32:39,250 --> 00:32:41,769 como importantísima. Igual que 363 00:32:41,769 --> 00:32:43,450 cuando vamos escribiendo ciertas cosas 364 00:32:43,450 --> 00:32:45,930 si salen estos tachados rojos 365 00:32:45,930 --> 00:32:47,049 estos subrayados rojos 366 00:32:47,049 --> 00:32:49,250 significa que hay un error, un error 367 00:32:49,250 --> 00:32:51,509 además grave. Si aparece ese 368 00:32:51,509 --> 00:32:52,789 rojo y guardara 369 00:32:52,789 --> 00:32:55,029 esto lo he escrito al tuntún, es decir 370 00:32:55,029 --> 00:32:57,089 hay un código que no sabe qué hacer el programa 371 00:32:57,089 --> 00:32:58,230 y cuando el programa se pone 372 00:32:58,230 --> 00:33:01,369 hay algo que no sabe qué hacer, se pone 373 00:33:01,369 --> 00:33:03,410 de esta guisa, que es que sale 374 00:33:03,410 --> 00:33:05,450 un aviso rojo y cuando intento ejecutar el juego 375 00:33:05,450 --> 00:33:06,529 no me deja 376 00:33:06,529 --> 00:33:25,630 ¿Vale? Vais a ver que la programación en sí es muy exquisita porque con tener una letra mal escrita ya sale, por ejemplo, aquí, que se me ha olvidado poner la S. Y de pronto sale este error y yo digo, ah, vale, voy a seguir. Pues no os deja jugar, no os deja testear el juego, no os va a dejar avanzar. 377 00:33:25,630 --> 00:33:48,130 Entonces, siempre que veáis este subrayado rojo, sabéis que os va a dar error, que no es lo mismo que si en cierto momento, a ver, un ejemplo, voy a poner una cosa que tampoco sabemos qué es, yo qué sé, vale, y hacemos esto y sale un subrayado verde. 378 00:33:48,130 --> 00:34:02,529 El subrayado verde, como los propios colores indican, significa que algo pasa, pero esto no es un error fatal, ¿vale? Esto, aunque hayamos declarado algo y nos dé esa especie de error, ahora nos sale un warning que es amarillo y este sí deja testear el juego, ¿vale? 379 00:34:02,529 --> 00:34:23,250 Si dejará hacer lo que haya que hacer, ¿vale? En este caso es que ha puesto el objeto en el 0, 0, 0. Cuando hay este tipo de subrayados verdes significa, esto ya lo veremos también, que hemos declarado una variable pero luego no se usa, es decir, que ahora mismo esta línea no molesta pero no aporta nada, no está mal escrita, sabe que es, pero no está aportando nada, ¿vale? 380 00:34:23,250 --> 00:34:44,489 De hecho, cuando nos ponemos encima, veis que os pone aquí una cosa en plan, a ver, vamos a ver qué es lo que pone la segunda línea. La variable comprobación se ha declarado, pero nunca se usa. No es un problema error fatal, pero bueno, si no se va a usar, pues fuera y todo más tranquilo. Pero los verdes se pueden dejar ahí, no hay problema. Cosas que os irán surgiendo. 381 00:34:44,489 --> 00:34:49,730 Todas estas funcionalidades que digamos que van saliendo aquí a medida que escribimos no salen de la nada 382 00:34:49,730 --> 00:34:56,349 Es porque se están viendo librerías aquí que tienen un montón ya de configuraciones pre-hechas 383 00:34:56,349 --> 00:34:59,849 Que nos permite ir detectando parámetros 384 00:34:59,849 --> 00:35:04,570 Ah, pues hay un parámetro que se llama transform, otro red transform, tal 385 00:35:04,570 --> 00:35:07,610 Eso es porque tenemos aquí librerías instaladas 386 00:35:07,610 --> 00:35:11,489 Más adelante tendremos que ir incorporando más librerías 387 00:35:11,489 --> 00:35:20,429 como por ejemplo Unity, Unity Engine, bueno, pues una. 388 00:35:21,030 --> 00:35:25,389 Cuando queramos hacer gestión de escenas, hasta que no pongamos esta línea, 389 00:35:26,090 --> 00:35:30,269 no nos van a salir, por ejemplo, estos parámetros. 390 00:35:30,690 --> 00:35:32,369 Imaginaos que pongo aquí Scene Manager. 391 00:35:34,469 --> 00:35:36,750 A ver, espera, voy a poner algo que no dé error. 392 00:35:38,409 --> 00:35:39,449 Active Exchange. 393 00:35:39,449 --> 00:35:43,150 y uno, a ver 394 00:35:43,150 --> 00:35:44,829 si esto no da error 395 00:35:44,829 --> 00:35:51,349 getActiveScene, por ejemplo 396 00:35:51,349 --> 00:35:54,090 y ahora no da error, ¿vale? 397 00:35:54,090 --> 00:35:56,230 no sabemos qué es, pero vemos que no da error 398 00:35:56,230 --> 00:35:57,750 importante, cuando más adelante 399 00:35:57,750 --> 00:36:00,110 estemos trabajando, imaginaos que yo 400 00:36:00,110 --> 00:36:02,130 borro esta línea porque no está 401 00:36:02,130 --> 00:36:04,409 o tal, veréis que da error 402 00:36:04,409 --> 00:36:06,230 ¿por qué? porque no está 403 00:36:06,230 --> 00:36:08,050 detectando una librería que contiene 404 00:36:08,050 --> 00:36:09,630 la información de qué hace esta orden 405 00:36:09,630 --> 00:36:27,329 ¿Vale? Importante, ¿vale? Por defecto vamos a ir tirando con estas tres librerías y, ojo, con esto que pone MonoBehavior, que es otra clase, digamos, que tiene Unity, específica de Unity, de la que heredan todas las clases que iremos viendo con también atributos. 406 00:36:27,329 --> 00:36:38,929 Hay como librerías externas y luego los propios códigos que ya tiene Unity incorporado a través de una programación especial que tenía. De hecho, lo pone ahí. 407 00:36:38,929 --> 00:36:56,369 Bueno, el behavior es la base de clase desde la cual cualquier script de Unity deriva, ¿vale? Pues esto que es una operación de herencia, bueno, pues al final también permite que haya ciertos comportamientos que si no, no estarían por defecto en el lenguaje C Sharp, ¿vale? 408 00:36:56,369 --> 00:37:12,769 Esto quiere decir que no podemos, por ejemplo, borrar cosas al tuntún, porque va a empezar a dar fallos. Por ejemplo, el transform no viene de estos namespace. El transform es una instrucción, una palabra clave, por decirlo de alguna forma, que viene de MonoBehavior. 409 00:37:12,769 --> 00:37:36,630 Si de hecho le dierais a control y a esta clase, os abre aquí un montón de cosas que es lo que hay detrás de estas clases y podemos ir entrándonos en el agujero hasta infinito porque ya es cosa muy avanzada, pero digamos que todo está heredando de otra información que ha hecho quien haya desarrollado Unity, por ejemplo. 410 00:37:36,630 --> 00:37:54,510 Vale, cuando empezamos a trabajar en Unity vais a ver que están estas llavecitas que vais a ver constantemente. Las llavecitas, digamos que es de abertura y cierre, implica el ámbito dentro del que se van a dar ciertas instrucciones. 411 00:37:54,510 --> 00:38:07,449 Por ejemplo, esto que es un método, ya veremos que es un método, que implica que todo lo que esté aquí dentro de estas llaves asociado a este método, esto digamos que es un paquete, todo lo que pongamos aquí se va a ejecutar en el start. 412 00:38:07,449 --> 00:38:29,510 Si yo, como he hecho antes, pongo transform position new vector 3, que es una ubicación, pues al empezar el juego o cuando se inicie este script, que puede ser porque lo lancemos durante el juego, todo lo que esté en start se va a aplicar en el primer momento que se use este objeto. 413 00:38:29,510 --> 00:38:39,230 Por eso, al empezar el juego, el objeto cubo al que le hemos aplicado este script, que sigue estando aquí, mover objeto, pues al empezar el juego se ha aplicado. 414 00:38:40,150 --> 00:38:46,349 Sin embargo, hay otra sección, otro método, se llama, otra función, que es el update. 415 00:38:46,769 --> 00:38:52,630 Y de hecho, aquí vais a ver que ya por defecto vienen estas dos líneas verdes, una referida al start y otra al update. 416 00:38:52,630 --> 00:38:55,789 vale, esto son lo que se llaman 417 00:38:55,789 --> 00:38:57,670 comentarios, cuando el código 418 00:38:57,670 --> 00:38:59,690 se va ejecutando, toda línea 419 00:38:59,690 --> 00:39:02,050 que veáis que empieza con estas dos barras 420 00:39:02,050 --> 00:39:03,789 así 421 00:39:03,789 --> 00:39:05,369 inclinadas, significa que es 422 00:39:05,369 --> 00:39:07,170 como un comentario que se ha dejado 423 00:39:07,170 --> 00:39:09,349 que no se va a tener en cuenta 424 00:39:09,349 --> 00:39:11,610 a nivel de ejecución, pero por ejemplo 425 00:39:11,610 --> 00:39:13,389 para aclarar en plan, yo ahora mismo aquí 426 00:39:13,389 --> 00:39:14,670 puedo poner dos líneas de estas 427 00:39:14,670 --> 00:39:17,369 que veis que se vuelve verde y ponerme 428 00:39:17,369 --> 00:39:19,210 un comentario en plan, con esto 429 00:39:19,210 --> 00:39:21,409 consigo que el objeto 430 00:39:21,409 --> 00:39:23,349 bla bla bla, se vaya a cero 431 00:39:23,349 --> 00:39:25,110 por ponerlo rápido, ¿vale? 432 00:39:25,150 --> 00:39:26,630 esto es muy útil para ir comentando 433 00:39:26,630 --> 00:39:28,489 para ir dejándote notas 434 00:39:28,489 --> 00:39:31,269 si os fijáis aquí pone, justo antes 435 00:39:31,269 --> 00:39:33,030 como aclaración, start, este método 436 00:39:33,030 --> 00:39:35,289 y lo que hay en sus llaves, se llama 437 00:39:35,289 --> 00:39:37,170 es decir, se activa 438 00:39:37,170 --> 00:39:39,010 antes justo del primer frame 439 00:39:39,010 --> 00:39:41,389 de actualización, es decir 440 00:39:41,389 --> 00:39:43,289 en el primer frame en el que se 441 00:39:43,289 --> 00:39:45,210 ponga en uso este script 442 00:39:45,210 --> 00:39:47,289 va a ocurrir esto, ¿vale? 443 00:39:47,289 --> 00:39:49,170 y el comentario de lo que esté 444 00:39:49,170 --> 00:39:51,349 dentro de este void, nos ha dejado 445 00:39:51,349 --> 00:39:57,289 que programar update es llamado una vez por frame vale cuando vais jugando a un juego igual que pasa 446 00:39:57,289 --> 00:40:04,070 también al ver un vídeo o al hacer cualquier cosa audiovisual la reproducción se compone de frames 447 00:40:04,070 --> 00:40:10,489 es decir se irá desarrollando en un número de frames determinado por en este caso la potencia 448 00:40:10,489 --> 00:40:16,190 del ordenador cuanta más potencia tenga más frames por segundo podrá ir ejecutando no 449 00:40:16,190 --> 00:40:22,289 De hecho, si alguna vez habéis jugado a videojuegos 450 00:40:22,289 --> 00:40:25,289 Muchas veces podéis, en las opciones en el menú del videojuego 451 00:40:25,289 --> 00:40:27,550 Podéis seleccionar cuántos frames por segundo 452 00:40:27,550 --> 00:40:32,190 Incluso podéis decir a qué velocidad de reproducción se va generando 453 00:40:32,190 --> 00:40:35,289 Porque a diferencia de lo que ocurre en algo renderizado 454 00:40:35,289 --> 00:40:37,849 Como un render que hagáis de Maya 455 00:40:37,849 --> 00:40:39,869 Por poner un ejemplo, de Premiere o de After 456 00:40:39,869 --> 00:40:41,550 O de un video cualquiera 457 00:40:41,550 --> 00:40:44,889 Ahí ya está definido el número de frames que tiene ese video 458 00:40:44,889 --> 00:41:07,050 Pero en un videojuego se va generando a lo largo de la... vamos, se va creando a medida que se va jugando, ¿no? Entonces, podremos ir definiendo cuántos fotogramas por segundo tiene el juego. Aquí, por defecto, lo que va a intentar es hacer tantos fotogramas por segundo se puedan con respecto a la potencia que tenga el ordenador, ¿vale? 459 00:41:07,050 --> 00:41:23,969 Entonces, cuando lanzamos este script le decimos, quiero que la posición transform esté en el 0, 0, ¿vale? Pero a lo mejor queremos que luego otra orden, cada fotograma vaya variando, ¿vale? Y para eso tendríamos que meterla dentro de esta función de update, de actualización, ¿no? 460 00:41:23,969 --> 00:41:38,969 Por ejemplo, se me ocurre, para no llevarlo a algo muy avanzado, a ver si se me ocurre algo, voy a hacer como un contador. 461 00:41:39,969 --> 00:41:50,389 Esperad un segundillo que hago una cosa, escribo, esto ya lo iremos viendo, pero esto ya lo veremos. 462 00:41:50,389 --> 00:42:04,420 y ahora os explico alguna cosilla de esto que estoy poniendo 463 00:42:04,420 --> 00:42:06,480 no todo, pero alguna cosilla 464 00:42:06,480 --> 00:42:15,860 esto ya es avanzado 465 00:42:15,860 --> 00:42:19,139 pero lo que os digo es básicamente que he hecho un bucle 466 00:42:19,139 --> 00:42:21,940 que va a estar leyendo lo que hay dentro de estas llaves 467 00:42:21,940 --> 00:42:24,980 recordad que hay una llave de apertura y una de cierre que están asociadas 468 00:42:24,980 --> 00:42:26,239 y lo que hay aquí dentro 469 00:42:26,239 --> 00:42:52,369 Lo que le estábamos diciendo es que nos represente un número que se está ejecutando cada fotograma hasta llegar al número 9. Si esto lo vamos ejecutando cada fotograma, cuando le demos a play al juego, si vamos a la consola, 470 00:42:52,369 --> 00:42:58,449 La consola al final lo que hace es darnos comprobaciones de qué está haciendo el juego 471 00:42:58,449 --> 00:43:00,750 De ciertos parámetros que vayamos poniendo 472 00:43:00,750 --> 00:43:05,170 Entonces, cuando queráis por ejemplo poner una orden 473 00:43:05,170 --> 00:43:06,150 Voy a parar el juego 474 00:43:06,150 --> 00:43:08,409 Cuando queramos ir comprobando algo del juego 475 00:43:08,409 --> 00:43:12,769 Lo vamos a tener que mandar a esa carpeta que se llama consola 476 00:43:12,769 --> 00:43:16,710 Por ejemplo, imaginaos que yo tengo una opción que es decirle 477 00:43:16,710 --> 00:43:22,030 Cuando a un objeto le toque otro, pues que se muera 478 00:43:22,030 --> 00:43:48,769 Eso ya diremos que eso lo haga efectivamente el juego, pero si yo quiero verlo en consola hay un comando que se llama debug.log, esto lo tenéis que aprender, lo veréis también en el primer tema, y dentro de los paréntesis es donde ponemos qué mensaje tiene que mostrar esa consola a medida que juguemos. 479 00:43:48,769 --> 00:44:08,789 Por ejemplo, yo voy a querer que al empezar el juego, en el start lo pongo todavía, voy a poner que me diga, pues por ejemplo, hola mundo, que es como se suele poner. Entonces cuando arranque el juego, al empezar en la consola se va a ver este mensaje de hola mundo como comprobación. 480 00:44:08,789 --> 00:44:24,489 E importante, como ahora solo quiero ver este debug log de Hola Mundo, que antes he puesto un código, ahora vuelvo a explicarlo, que igual me he adelantado un poco. Imaginaos que yo este código no quiero que se ejecute, pero tampoco quiero borrarlo porque ya lo tengo escrito y igual más adelante lo recupero. 481 00:44:24,489 --> 00:44:47,030 Para esto vuelven a servir los comentarios. Si yo en una línea vuelvo a poner las dos líneas, veis que de pronto se comenta, se convierte en verde todo, y entonces esto lo tengo aquí, que en cualquier momento yo lo puedo borrar y vuelve a activarse, pero es muy útil para ir dejando en comentario, en algo que a lo mejor luego uso, ciertas líneas, para ir comprobando el código. 482 00:44:47,030 --> 00:44:58,389 Esto está muy bien para eso, para ir sin borrar. Estamos probando cosas y hemos escrito bastante código, en vez de borrarlo, que a lo mejor luego solo estamos testeando que funciona o no, pues se comenta y listo. 483 00:44:59,349 --> 00:45:13,349 ¿Qué pasa? Aquí, por ejemplo, claro, digo, voy a comentar esto que no me interesa. Aquí he comentado esta línea, pero es nada más incluido hasta la llave y ahora esta llave de cierre no está cerrando aquí, sino que está cerrando esta llave de aquí. 484 00:45:13,349 --> 00:45:25,949 Entonces, al final hay una llave aquí que no está cerrando nada porque las he desemparejado, ¿vale? Entonces, habría que ir comentando todas las líneas, ¿vale? Hasta que todo lo que tenga lógica, veis que se ha quitado ya el error. 485 00:45:26,010 --> 00:45:42,789 O hay otra forma de comentar, esto creo que no lo ponen los apuntes, ¿vale? Que es para comentar varias líneas de golpe, ¿vale? Hay otra forma que es poner la línea en vez de 2, 1 y un asteriskillo, ¿vale? Y en la línea que queramos que deje de comentar, al revés, asteriskillo y línea. 486 00:45:43,349 --> 00:45:56,269 Y ahora veis que se ha comentado todo esto, está en verde. Ahora mismo este código yo lo podría recuperar enseguida borrando esto, y ahí está otra vez. Bueno, aquí como he comentado antes esto también, pero no lo borro. 487 00:45:56,269 --> 00:46:12,820 Entonces esto es muy útil para, en plan, estoy probando una línea y no me funciona, la voy a dejar comentada y luego vemos. Entonces ahora mismo en el update no se está ejecutando nada, y al empezar el objeto que tenga el script se va a ir al 000, 488 00:46:12,820 --> 00:46:18,699 cero y aparte quiero que la consola vale esto ahora mismo es muy abstracto por decir si para 489 00:46:18,699 --> 00:46:23,440 qué voy a querer que ponga hola mundo la consola bueno ya veremos que esto tiene más aplicaciones 490 00:46:23,440 --> 00:46:30,440 en el futuro pero guardo y si voy aquí ahora al editor al darle a play vale en la consola 491 00:46:30,440 --> 00:46:37,139 vais a ver que va a poner hola mundo vale a funcionar y solo una vez porque solo se ha 492 00:46:37,139 --> 00:46:44,320 ejecutado al empezar el juego vale que no es lo mismo y vuelvo al código que corto esta línea 493 00:46:44,320 --> 00:46:51,179 control x y la pego en el update vale y ahora lo que le estoy diciendo es esta línea esta 494 00:46:51,179 --> 00:46:56,460 comprobación este hola mundo que aparezca en cada fotograma del juego vale esta instrucción vais a 495 00:46:56,460 --> 00:47:01,739 ver que ha cambiado radicalmente en el sentido de que cuando desactivó y en la consola cuando 496 00:47:01,739 --> 00:47:06,139 ya tengáis muchos elementos para no confundir es entre un play y otro aunque lo suelo hacer 497 00:47:06,139 --> 00:47:10,340 por defecto le podéis dar a clear vale que son los mensajes no pasa nada no estáis borrando nada 498 00:47:10,340 --> 00:47:16,280 si volvemos a ejecutar el juego ahora se generará los mensajes de esta nueva reproducción y vais a 499 00:47:16,280 --> 00:47:21,960 ir viendo que aparecen muchos hola mundo uno por cada fotograma vais viendo que aquí pone la hora 500 00:47:21,960 --> 00:47:27,300 en la que se está ejecutando y como habrá pues bastantes fotogramas por segundo pues por eso 501 00:47:27,300 --> 00:47:32,840 hay varios de cada segundo vale para el juego se quedan aquí los comentarios y a lo mejor en cierto 502 00:47:32,840 --> 00:47:37,460 momento quiero decir esto vais a ver que al pulsar os pone cosas como en qué 503 00:47:37,460 --> 00:47:41,880 script que es el mover objetos incluso dicen qué línea es la que está 504 00:47:41,880 --> 00:47:46,559 ejecutando esto que está ocurriendo que si vamos aquí vamos a ver que la línea 505 00:47:46,559 --> 00:47:50,800 22 es donde estamos dando esta orden fijaos que aquí os dice en qué línea se 506 00:47:50,800 --> 00:47:55,079 está ejecutando la orden incluso si damos a doble clic aquí cuando salgan 507 00:47:55,079 --> 00:48:00,460 errores o lo que sea al dar doble clic te lleva al sitio del script donde que 508 00:48:00,460 --> 00:48:03,900 en el que se ha provocado que aparezca este mensaje. Esto es útil. 509 00:48:04,599 --> 00:48:09,980 ¿Vale? Veis que no es lo mismo ejecutar las órdenes en Start que en Update, 510 00:48:10,360 --> 00:48:11,820 que va un fotograma tras otro. 511 00:48:12,320 --> 00:48:18,159 Si yo, por ejemplo, voy a comentar, ¿vale? Para no borrar, este de Backlog, ¿vale? 512 00:48:18,159 --> 00:48:24,360 Y vuelvo a coger este for, ¿vale? Simplemente, y lo pongo, sin comentar, en Start. 513 00:48:24,579 --> 00:48:28,239 Es decir, solo una vez se va a ejecutar que me enseñe la consola, esto de Backlog, 514 00:48:28,239 --> 00:48:30,400 Veis que otra vez está aquí 515 00:48:30,400 --> 00:48:32,340 Que se ejecute hasta el número 516 00:48:32,340 --> 00:48:34,739 8, en realidad, menor de 9 517 00:48:34,739 --> 00:48:36,239 ¿Vale? Esto ya sé que igual 518 00:48:36,239 --> 00:48:38,300 Vamos, seguro que no estaréis siguiendo 519 00:48:38,300 --> 00:48:40,679 Pero os voy explicando lo que hace, ya veremos cómo se hace 520 00:48:40,679 --> 00:48:42,400 Pero quiero que veáis el funcionamiento 521 00:48:42,400 --> 00:48:44,199 De la consola, al darle a play 522 00:48:44,199 --> 00:48:45,719 Vais a ver que va 523 00:48:45,719 --> 00:48:48,320 Que se ha generado el 0 al 8 524 00:48:48,320 --> 00:48:49,980 Una vez y ya está 525 00:48:49,980 --> 00:48:52,320 Porque al arrancar el juego le he dicho 526 00:48:52,320 --> 00:48:54,659 Ponme una cuenta del 0 al 8 527 00:48:54,659 --> 00:48:56,820 Al comenzar el juego 528 00:48:56,820 --> 00:49:01,199 Pues me lo ha hecho y lo ha hecho todo, independientemente de que haya más frames en ejecución después. 529 00:49:01,559 --> 00:49:12,539 Me lo ha hecho en el primer frame, en el first frame, que no es lo mismo que si esto lo vuelvo a mover, corto y pego aquí en el update, guardo y lo ejecuto aquí, 530 00:49:12,539 --> 00:49:18,659 que lo que vais a ver es que en cada fotograma me va a contar hasta 8. 531 00:49:18,659 --> 00:49:29,579 Le doy y veis que aquí se está moviendo, están cambiando los segundos y aunque no se vea muy claro, veis que aquí hay más de 999 mensajes. 532 00:49:29,699 --> 00:49:36,820 Ya llega un punto que se para. Si yo paro y empiezo a comprobar, veréis que ha contado hasta 8 cada fotograma de los que lo ha ido haciendo. 533 00:49:37,619 --> 00:49:41,179 Entonces, imaginaos que queréis hacer un contador de tiempo. 534 00:49:41,179 --> 00:49:44,340 Pues tendremos que ir consiguiendo 535 00:49:44,340 --> 00:49:46,139 Que cada uno de estos fotogramas 536 00:49:46,139 --> 00:49:48,380 En el update vaya generando 537 00:49:48,380 --> 00:49:49,699 Un nuevo número 538 00:49:49,699 --> 00:49:51,139 Que vaya sumando uno a uno 539 00:49:51,139 --> 00:49:53,860 Para empezar estas dos funciones 540 00:49:53,860 --> 00:49:55,679 Que como ya hemos visto 541 00:49:55,679 --> 00:49:58,380 Vienen de lo que tenemos aquí arriba 542 00:49:58,380 --> 00:50:00,000 Sirven para decir 543 00:50:00,000 --> 00:50:02,039 Que esto no ocurre en Cesar por defecto 544 00:50:02,039 --> 00:50:04,380 Para decir en qué momento se tiene que ejecutar 545 00:50:04,380 --> 00:50:04,900 Tal código 546 00:50:04,900 --> 00:50:08,059 De hecho hay más momentos de ejecución 547 00:50:08,059 --> 00:50:09,500 Ahí está el void update 548 00:50:09,500 --> 00:50:28,000 Pero hay, por ejemplo, otro que sería, esto ya lo veremos nuevamente, el awake. Pues aquí, en estas llaves de aquí, lo que iremos poniendo son los eventos que se van realizando según se arranca el juego. 549 00:50:28,000 --> 00:50:44,840 Es decir, aunque no se esté ejecutando un frame porque este screen todavía no está en juego, no ha aparecido ese objeto, no se ha provocado, esto ya ha cargado, digamos, en ese objeto en potencia ciertos parámetros, ¿no? Lo hace a priori. Bueno, esto ya lo veremos. Que sepáis que hay más métodos. 550 00:50:44,840 --> 00:50:48,460 hasta aquí ya creo que voy a ir parando 551 00:50:48,460 --> 00:50:49,400 porque es mucha información 552 00:50:49,400 --> 00:50:52,039 me interesa mucho que vayáis viendo el tema 1 553 00:50:52,039 --> 00:50:54,420 sobre todo, que se lo vayáis haciendo 554 00:50:54,420 --> 00:50:56,480 y también ya una vez 555 00:50:56,480 --> 00:50:58,579 digamos el tema 1 os pongáis con la tarea 556 00:50:58,579 --> 00:51:00,820 que vayáis chequeando también el tema 0