1 00:00:00,000 --> 00:00:05,880 el final de la tarea una vez teníamos el script realizado hay que conseguir pues que al lanzar el 2 00:00:05,880 --> 00:00:11,320 juego dado que se ubica en el start si no me equivoco aquí está descrito sólo se hará una 3 00:00:11,320 --> 00:00:17,440 vez y se instanciará ese prefab que es la nave una sola vez es cierto que y abro aquí un código 4 00:00:17,440 --> 00:00:25,400 lo pongo por aquí que dependiendo de qué sobrecarga hayas usado del método instantiate hará 5 00:00:25,400 --> 00:00:32,120 una opción u otra vale el otro día dijimos vale veis que aquí hay tres formas pasarán tres cosas 6 00:00:32,120 --> 00:00:39,000 y se instanciarán tres naves y cada una tiene digamos unas diferentes consecuencias cuando 7 00:00:39,000 --> 00:00:44,280 empezamos a escribir el método instantiate a ver si quiere que no empeza a escribir ya 8 00:00:44,280 --> 00:00:49,080 incorrectamente vale cuando abrimos estos paréntesis que definen a las funciones o 9 00:00:49,080 --> 00:00:57,720 métodos teníamos estas sobrecargas que nos iba indicando qué pues qué propiedades está esperando 10 00:00:57,720 --> 00:01:05,320 no en principio las tres primeras digamos las cuatro primeras casi son las que más se utilizan 11 00:01:05,320 --> 00:01:12,520 bueno cada una tiene sus propias sus propias pues eso consecuencias pero no es lo mismo no es 12 00:01:12,520 --> 00:01:17,840 exactamente lo mismo suele estar todo relacionado y instantiate pues sirve para generar un clon 13 00:01:17,840 --> 00:01:23,160 de lo que se haya referenciado pero no es lo mismo realizar y ahora aquí paso a ejecutar tres si 14 00:01:23,160 --> 00:01:29,400 queréis la una instancia en el que sólo se le pasa un parámetro que es el objeto que hemos 15 00:01:30,680 --> 00:01:36,960 introducido digamos capturada a través del serialize fill que recordemos que es que luego 16 00:01:36,960 --> 00:01:46,080 una vez tenemos este script a ver perdonad que es importante cuando queramos ver lo relativo a un 17 00:01:46,800 --> 00:01:52,000 a un script no olvidar que ese script tiene que ser componente de alguno de los elementos que 18 00:01:52,000 --> 00:01:59,400 están en la escena ejecutándose vale por tanto voy a poner este instantiate prefab vale que es el 19 00:01:59,400 --> 00:02:04,080 script que estaba revisando hace un segundete este de aquí instantiate prefab 20 00:02:04,080 --> 00:02:09,760 perdonad mi inglés instantiate prefab si yo guardo vale tengo aquí tres 21 00:02:09,760 --> 00:02:17,040 instantiate diferentes cada uno tiene sus particularidades como acabo de decir y cuando 22 00:02:17,040 --> 00:02:24,520 yo ejecuto en el start se van a generar los tres o eso debería hacer vamos a dar la play y a ver si 23 00:02:24,520 --> 00:02:32,200 lo hace no hace nada y de hecho da fallo porque porque ya que os tengo aquí y entiendo que 24 00:02:32,200 --> 00:02:36,200 habéis estado con la tarea porque no porque no se ha instanciado nada porque da error 25 00:02:39,320 --> 00:02:42,200 que esto ya lo vimos el otro día y bueno y si habéis hecho la tarea pues 26 00:02:43,920 --> 00:02:51,680 lo tendréis claro porque no lo tienes instanciado no a qué te refieres porque yo aquí básicamente 27 00:02:52,600 --> 00:02:58,720 ya tengo un instancia de my prefab que está aquí preparado y debería instanciar ese prefab 28 00:02:58,720 --> 00:03:04,760 pero no lo tienes vinculado en unity en la columna de la derecha es genial aquí si nos 29 00:03:04,760 --> 00:03:10,240 damos cuenta vale se han generado los campos para introducir pues pues ojo que es mi prefab 30 00:03:10,240 --> 00:03:16,120 no y que gameobject es el que quiero instanciar aquí es donde podemos arrastrar este prefab y 31 00:03:16,880 --> 00:03:22,320 pues está aquí preparado y ahora todo lo que en el código tenga una variable referenciada con mi 32 00:03:22,320 --> 00:03:27,560 prefab pues se refiere a ese objeto por tanto esta línea por ejemplo este primer instantiate 33 00:03:27,680 --> 00:03:33,920 ya tiene lo que necesita para hacer la instancia cuando sólo se usa uno de los parámetros que 34 00:03:33,920 --> 00:03:42,880 además es la primera la primera sobrecarga vale es vale hacemos el instantiate sólo con dando 35 00:03:42,880 --> 00:03:47,400 un objeto que es el original que se va a clonar que es lo que acabamos de hacer aquí vale cuando 36 00:03:47,400 --> 00:03:53,000 yo ahora no olvidéis de guardar siempre que hagáis algún cambio en el código para que se ejecute vale 37 00:03:53,000 --> 00:03:57,840 yo ahora cuando lanza el juego al menos una nave tiene que aparecer vale y de hecho se han generado 38 00:03:57,840 --> 00:04:04,680 alguna más y ver de hecho que si nos fijamos a ver tenemos una aquí tenemos otra aquí las estoy 39 00:04:04,680 --> 00:04:10,200 moviendo bueno perdonad que estoy cogiendo partes de la nave de este prefab si la arrastro para acá 40 00:04:10,200 --> 00:04:16,200 y de este prefab para acá vale se han generado dos naves y las dos si nos damos cuenta están 41 00:04:16,320 --> 00:04:24,440 deshago y marco una en el 0 0 0 vale por tanto una de estas naves básicamente esta primera vale 42 00:04:24,440 --> 00:04:29,520 es la primera que ha aparecido porque recordad que el código como os dije el otro día a menos 43 00:04:29,520 --> 00:04:36,120 de a medida que lo vayamos complicando esto no es así pero en este momento sí que lo es el código 44 00:04:36,120 --> 00:04:42,000 se va ejecutando de arriba abajo entonces la primera nave que se genera en la jerarquía de 45 00:04:42,000 --> 00:04:46,280 objetos vale que si os dais cuenta a medida que voy incorporando pues se van añadiendo de arriba 46 00:04:46,280 --> 00:04:51,920 abajo la primera nave se hacía hacía referencia a esa es verdad que aquí tenemos otros dos 47 00:04:51,920 --> 00:05:01,040 instant seats vale que pues no se están no se están produciendo como ya os comenté para hacer 48 00:05:01,040 --> 00:05:05,480 pruebas de qué funciona y qué no vale y esto me sirve un poco para explicar que un mismo método 49 00:05:05,480 --> 00:05:10,720 como este instancia y tiene varias sobrecargas y cada una tiene unas consecuencias que lo que 50 00:05:11,720 --> 00:05:15,640 no ahora si guardo y lanzó el juego pues nuevamente 51 00:05:18,760 --> 00:05:26,280 como el prefab está instanciado pues placa y aquí tenemos la nave vale por tanto este instant 52 00:05:26,280 --> 00:05:32,040 seat primero está funcionando bueno pues ya si quisieramos usar ese instant seat está ahí preparado 53 00:05:32,040 --> 00:05:40,040 vamos a ver qué pasa con el resto es decir voy a comentar el resto y voy a ver esta línea según 54 00:05:40,040 --> 00:05:44,920 empieza es verdad que aquí está generando como una variable si os fijáis no que le está poniendo 55 00:05:44,920 --> 00:05:52,400 un nombre que se llama instancia que si no vemos mal aquí pone game object may prefab no está generando 56 00:05:52,400 --> 00:05:59,160 una variable de un tipo de variable que es game object es decir una clase vale un digamos una 57 00:05:59,160 --> 00:06:04,360 un conjunto de código que se refiere a todo lo relativo a los game objects si ya habéis estado 58 00:06:04,440 --> 00:06:10,360 estudiando un game object en unity se refiere a cada uno da igual que sea la cámara la luz un cubo 59 00:06:10,360 --> 00:06:15,240 cualquier geometría vale todo lo que vamos teniendo aquí introducido genéricamente se llama como un 60 00:06:15,240 --> 00:06:22,640 game object esta cajita digamos hecha de alambre no que no está rellena es un game object aquí 61 00:06:22,640 --> 00:06:26,600 representado que no es lo mismo que meter un prefab que veis que sí que está lleno pero en 62 00:06:26,600 --> 00:06:33,320 genérico todo lo que se va introduciendo aquí son game objects por eso cuando queremos referenciar 63 00:06:33,360 --> 00:06:39,720 un objeto usamos esta clase game object que usamos como tipo de la variable y por eso todo lo que 64 00:06:39,720 --> 00:06:45,360 metamos en esta caja si recordáis la analogía que hacía el otro día con cajas vale si lo que 65 00:06:45,360 --> 00:06:52,960 queremos es que recoja ese game object vale pues habrá que usar la clase game object voy a seguir 66 00:06:52,960 --> 00:06:59,160 y ahora vamos al transform y vemos un par de cosas si yo ahora guardo y digo a ver a ver qué ocurre 67 00:06:59,160 --> 00:07:03,960 cuando yo ahora lanzó el juego no que sólo se va a ejecutar esta línea en el start vamos a ver 68 00:07:05,920 --> 00:07:14,640 y me voy a poner aquí a mi lado el juego vale acabo de lanzar el juego y hay una nave en el 15 69 00:07:14,640 --> 00:07:24,600 a buena perdón en el 0 0 0 igual vale pues eso significa que crea una instancia en la posición 70 00:07:24,600 --> 00:07:28,760 aquí os lo he comentado y está ya indicado crea una instancia la posición del objeto de referencia 71 00:07:28,920 --> 00:07:34,520 y como hijo suyo pero es verdad que está ocurriendo algo si os dais cuenta que es que 72 00:07:34,520 --> 00:07:41,360 aunque aquí he puesto dos parámetros vale my prefab y referencia referencia si lo pensamos 73 00:07:41,360 --> 00:07:45,320 bien me podéis contestar a qué se está refiriendo en este momento 74 00:07:45,320 --> 00:07:59,480 ahí vacío no tener en cuenta que yo he generado aquí una variable de tipo transform y transform 75 00:07:59,480 --> 00:08:05,440 sin si recordáis es el primer componente que tiene las coordenadas de posición rotación y escala de 76 00:08:05,440 --> 00:08:11,360 cualquier objeto de casi cualquiera todos suelen empezar teniendo ese componente y luego muchos 77 00:08:11,360 --> 00:08:17,280 otros dependiendo de cuál sea la función vale fijaos que yo en referencia que es otra variable 78 00:08:17,280 --> 00:08:24,280 que he generado por medio de un campo serializado no le he dado ninguna referencia ahora mismo está 79 00:08:24,280 --> 00:08:31,320 vacía es nula no existe por eso la ha generado en el 0 0 0 y no es hija de nada como pongo ahí que 80 00:08:31,320 --> 00:08:38,200 es si os fijáis es exactamente el prefab el 0 0 porque no tiene esa referencia es decir ahora 81 00:08:38,200 --> 00:08:43,760 mismo esta línea está funcionando como esta primera porque aquí lo que tiene es nada no 82 00:08:43,760 --> 00:08:49,680 lo existe no para aprovechar esta sobrecarga y que tenga sentido meter dos dos variables aquí 83 00:08:49,680 --> 00:08:56,160 dentro pues habría que decir cuál es ese cuál es esa referencia vale y ahora mismo pone ninguna 84 00:08:56,160 --> 00:09:04,680 y está esperando un objeto un vínculo no digamos en este campo del tipo transform eso que significa 85 00:09:05,080 --> 00:09:11,040 que si yo en este campo igual que hecho en este de aquí arriba arrastro aquí la nave vais a ver 86 00:09:11,040 --> 00:09:18,120 que pone esa nave prefab es el mismo objeto pero fijaos en dos cosas primero cambia el icono no y 87 00:09:18,120 --> 00:09:24,160 cambia también da como una indicación de qué es lo que está cogiendo de esta referencia que hemos 88 00:09:24,160 --> 00:09:28,840 metido ahí si os fijáis además esto no sé si lo dije el otro día este iconito es el mismo que el 89 00:09:28,840 --> 00:09:34,840 del componente transform porque de este de esta variable sólo está recogiendo lo relativo al 90 00:09:34,840 --> 00:09:42,200 transform del objeto vale de este por ejemplo no se va a poder decir si este game object tiene 91 00:09:42,200 --> 00:09:47,920 un componente otro tipo a tal no podremos hacer ningún tipo de operación en algo que no sea 92 00:09:47,920 --> 00:09:53,560 el componente transform de su objeto igual que aquí accedemos al objeto completo vale que aquí 93 00:09:53,560 --> 00:09:59,080 lo hemos hecho para que se instancie completamente aquí sólo estamos cogiendo una parte de ese objeto 94 00:09:59,080 --> 00:10:04,240 ese componente transform esto me sirve nuevamente el otro día para introducir que las variables 95 00:10:04,240 --> 00:10:11,400 pueden ser de tipos casi ilimitados en relación con la cantidad de componentes que hay es decir 96 00:10:11,400 --> 00:10:18,400 aquí si yo busco no hay un transform porque como ya viene aplicado no está preparado pero también 97 00:10:18,400 --> 00:10:24,960 os dije el otro día que por ejemplo no vais a ver en la elección 3 existe este rigidbody pues yo 98 00:10:24,960 --> 00:10:30,840 si por ejemplo en este objeto que le añadió un rigidbody quisiera en algún momento cambiar las 99 00:10:30,840 --> 00:10:36,520 propiedades del componente rigidbody vale esto ya lo iremos viendo que es básicamente lo que 100 00:10:36,520 --> 00:10:45,840 activa el motor de físicas de unity siempre va a haber la posibilidad no de si confirmadme que me 101 00:10:45,840 --> 00:10:52,960 escucháis que un compañero acaba de decir que no yo creo que está entrando el audio a ver si debería 102 00:10:52,960 --> 00:11:04,480 entrar bien si me oís a mí sí Jesús yo sí te oí hola buenas tardes qué tal no oigo mi entrecortado 103 00:11:04,480 --> 00:11:15,240 no sé si se oye yo mi conexión o el resto que lo confirme no lo sé supongo que será a lo mejor 104 00:11:15,240 --> 00:11:22,880 algo relacionado con tu yo digo bien aunque me pone que tiene buena conexión no sé igual 105 00:11:22,880 --> 00:11:29,320 nada igual es una tontería si es un portátil a mí me pasa esto es una chorrada cuando no lo 106 00:11:29,320 --> 00:11:40,000 tengo conectado a la luz no creo que sea eso pero hoy nada espero que se solucione eso imaginaos 107 00:11:40,000 --> 00:11:43,960 que yo también puedo hacer una variable fijaos que está aquí preparado y rigidbody 2d es otro 108 00:11:43,960 --> 00:11:51,200 tipo de variable no pues haremos una variable de tipo físicas yo que sé recordad que esto es el 109 00:11:51,200 --> 00:11:57,000 tipo de variable y esto es el nombre que podemos poner el que queramos que asignamos a esta caja 110 00:11:57,000 --> 00:12:03,920 que recoge lo de variable y ahora fijaos que si bueno si yo guardo lo primero recordar la 111 00:12:03,920 --> 00:12:09,840 estrellita de aquí si yo guardo y vuelvo a ir al objeto en el que he puesto el script ahora 112 00:12:09,840 --> 00:12:14,600 hay otra bueno tiene que estar este rigidbody para poder referenciarlo ahora pero ahora está 113 00:12:14,600 --> 00:12:20,920 esperando otro que metan que introduzcamos algo en este campo de tipo rigidbody no un poco del 114 00:12:20,920 --> 00:12:26,960 tipo de la caja que hemos creado si yo aquí arrastro ahora la nave vale veréis que la nave 115 00:12:26,960 --> 00:12:33,120 prefab como no tiene rigidbody vale no lo va a coger porque sí que tiene transform sí que se puede 116 00:12:33,120 --> 00:12:38,800 arrastrar como todos los gameobjects un gameobject pero no tiene un rigidbody por tanto aunque yo 117 00:12:38,800 --> 00:12:43,480 intente podéis hacer la prueba arrastrar igual que si me deja introducirlo en las otras dos en 118 00:12:43,480 --> 00:12:49,840 los otros dos campos aquí no me deja sí que podré por ejemplo meter el propio gameobject del script 119 00:12:49,840 --> 00:12:55,520 fijaos que si yo el arrastro si me deja porque porque tiene un rigidbody al cual yo podría 120 00:12:55,520 --> 00:13:00,640 acceder luego para cambiar variables y veis que además el iconito vale en estos componentes que 121 00:13:00,640 --> 00:13:05,920 ya vienen generados directamente por unity pues les ponen estos iconitos para facilitar veis que 122 00:13:05,920 --> 00:13:13,800 aunque la caja aunque parece que es un poco lo mismo esto ya profundizaremos más luego al final 123 00:13:13,800 --> 00:13:21,240 cada variable tiene su tipo no aquí lo que estamos haciendo en esta línea es crear sin pasar por el 124 00:13:21,240 --> 00:13:27,360 comienzo de la clase vale que es donde vamos generando lo que se llaman las variables miembro 125 00:13:27,360 --> 00:13:32,400 que son variables que podréis usar en todo el código porque su ámbito vale esto si ya habéis 126 00:13:32,400 --> 00:13:37,400 visto ahora vamos un poco a esto pero si ya habéis leído el tema cero cosa que deberíais haber hecho 127 00:13:37,400 --> 00:13:45,080 al menos una pasada hay un tipo de variables que si se ubican al comienzo de la clase podrán ser 128 00:13:45,080 --> 00:13:51,760 luego empleadas por cualquier método en este caso estar vale lo que también se puede hacer es declarar 129 00:13:51,760 --> 00:13:58,120 es decir construir esta caja dentro ya de un método no dentro de la clase en general sino dentro de un 130 00:13:58,120 --> 00:14:04,120 método de su propio bloque entonces estamos generando una caja de tipo game object vale 131 00:14:04,120 --> 00:14:10,880 que estamos llamando instancia y a diferencia de aquí lo que estamos haciendo es que en ningún 132 00:14:10,880 --> 00:14:17,240 momento hemos creado un serialize que te permita arrastrar y saber que esta caja se llena con un 133 00:14:17,240 --> 00:14:22,800 objeto que metes por el inspector no aquí lo que estamos haciendo es rellenar la caja instancia 134 00:14:22,920 --> 00:14:30,920 de tipo game object con la instancia que generamos es decir que si yo en esta instancia luego cambio 135 00:14:30,920 --> 00:14:37,720 alguno de sus parámetros ahora lo vemos no está refiriéndose a nada que hemos capturado por el 136 00:14:37,720 --> 00:14:44,480 inspector sino que hemos llenado la caja directamente con una instrucción que hemos dado aquí vale hasta 137 00:14:44,480 --> 00:14:45,480 aquí me vais siguiendo 138 00:14:51,320 --> 00:14:57,800 vale esto qué significa un ejemplo rápido vale veremos que hay un montón de instrucciones y 139 00:14:57,800 --> 00:15:04,240 recordar esto lo vimos el otro día que había un operador al escribir sentencias que es el punto 140 00:15:04,240 --> 00:15:10,600 vale que esto lo indiqué por ejemplo cuando ponemos transform podemos acceder a la posición 141 00:15:10,600 --> 00:15:17,640 de un objeto pues si escribimos position vale porque estamos accediendo a las propiedades del 142 00:15:17,640 --> 00:15:22,720 transform vale lo único es que como ya os dije que como el transform es tan utilizado porque es todo 143 00:15:22,720 --> 00:15:28,240 lo que se refiere a los GameObjects pues han generado a parte de la clase transform que 144 00:15:28,240 --> 00:15:32,960 siempre se escriben las clases con mayúscula empezando por mayúscula vale importante esto 145 00:15:32,960 --> 00:15:39,000 también lo pone las buenas prácticas en el tema cero ha generado una propiedad vale que se llama 146 00:15:39,000 --> 00:15:43,920 transform con minúscula que es el nombre en el que se da a las propiedades como por ejemplo 147 00:15:43,920 --> 00:15:50,720 position no estamos aquí refiriéndonos a la clase directamente sino que es una especie de es un poco 148 00:15:50,720 --> 00:15:55,640 ambiguo porque al final es la misma palabra pero las mayúsculas y las minúsculas tienen influencia 149 00:15:55,640 --> 00:16:00,280 al escribir código entonces una manera de simplificar y digamos no tener que acceder a 150 00:16:00,280 --> 00:16:05,080 una clase que es como una entidad superior sino de meter una operación que se puede hacer de manera 151 00:16:05,080 --> 00:16:10,120 más simple vale podemos acceder a las propiedades del transform con este transform en minúscula y 152 00:16:10,120 --> 00:16:15,760 luego al ir poniendo el position pues podemos decir igual a 10 que va a dar fallo porque por más 153 00:16:15,760 --> 00:16:22,840 cuestiones pero veis que lo importante de esto ahora mismo es que cuando ponemos un punto vamos 154 00:16:22,840 --> 00:16:28,280 abriendo opciones hijas de ese primer elemento que hemos puesto como lo que el otro día os dije de 155 00:16:28,280 --> 00:16:38,200 país comunidad autónoma vale o estado si fuera eeuu ciudad punto calle punto número vale si estas 156 00:16:38,200 --> 00:16:44,200 propiedades existieran configuradas vale pues sería esta la forma la sintaxis para ir accediendo 157 00:16:44,200 --> 00:16:51,560 digamos de un elemento a otro pero para poder acceder por ejemplo elemento ciudad si no lo 158 00:16:51,560 --> 00:16:56,880 hemos configurado de otra forma siempre que hay que ir accediendo de un padre digamos que reconozca 159 00:16:56,880 --> 00:17:02,800 o que hemos guardado como variable como punto de partida y luego podemos ir llegando a los hijos 160 00:17:02,800 --> 00:17:09,160 esto que quiere decir que si hemos generado y les comento esto que tengo aquí si hemos generado un 161 00:17:09,160 --> 00:17:14,840 game object que llamamos instancia vale que será esa instancia que hemos generado luego podremos 162 00:17:14,840 --> 00:17:22,000 acceder esto también es ir sabiendo poco a poco más y más herramientas podemos acceder por ejemplo 163 00:17:22,000 --> 00:17:27,200 al nombre de esa instancia eso qué significa que si decimos vale aparte de guardar esta instancia 164 00:17:27,200 --> 00:17:33,440 con el nombre de instancia yo quiero que esta instancia tenga el nombre vale el nombre del 165 00:17:33,440 --> 00:17:39,720 objeto del game object y que se llame hola vale voy a probar a ejecutarlo y ahora vemos útil 166 00:17:39,720 --> 00:17:49,440 esta línea si yo arranco este este juego vais a ver bueno lo primero que algo se cae porque le puse 167 00:17:50,240 --> 00:17:55,400 el rigidbody vale ya veis que al meter un componente está haciendo algo pero lo importante la nave ahora 168 00:17:55,400 --> 00:17:59,760 no se llama clon como se llamaba antes ahora se llama hola y aquí está dentro todo lo de la 169 00:17:59,760 --> 00:18:05,640 nave el prefab que habíamos ejecutado vale fijaos y esto me sirve para ir introduciendo que las 170 00:18:05,640 --> 00:18:10,520 variables se pueden ir creando en muchos sitios que aquí he puesto varias juntas y si por ejemplo 171 00:18:10,520 --> 00:18:16,040 examináis que esto también lo iremos viendo el script de la unidad 0 de la tarea que os he dejado 172 00:18:16,320 --> 00:18:21,040 como referencia habrá variables que se van generando al principio para tenerlas todas digamos 173 00:18:21,040 --> 00:18:25,440 usables a lo largo de todo el proyecto pero también en momentos nos puede interesar que 174 00:18:25,440 --> 00:18:30,400 esa variable se cree al empezar el juego vale en este momento se crea esta instancia de tipo 175 00:18:30,400 --> 00:18:36,520 gameobject y aquí hemos generado una instancia que ojo todavía no hemos resuelto qué diferencia 176 00:18:36,520 --> 00:18:40,480 hay entre esto y esto porque no hemos asignado nada de referencia bueno está ahí preparado 177 00:18:40,480 --> 00:18:50,400 pero no lo hemos llegado a hacer a ver que detengo esto vale y aquí está esperando a que 178 00:18:50,400 --> 00:18:56,240 sigamos trabajando vale ahora sí que está cogiendo una referencia ahora usamos a conveniencia lo que 179 00:18:56,240 --> 00:19:01,240 queramos pero lo importante es que una vez guardamos una instancia de tipo gameobject 180 00:19:01,240 --> 00:19:06,040 también podemos acceder a las propiedades de ese gameobject como acabamos de hacer aquí vale 181 00:19:06,640 --> 00:19:13,480 entonces vamos a hacer un poco la lógica que pone aquí que tiene usar esta sobrecarga de 182 00:19:13,480 --> 00:19:17,600 instancia que es que crea una instancia la posición del objeto de referencia que es este 183 00:19:17,600 --> 00:19:24,200 segundo que tenemos aquí vale y como hijo suyo es decir de este de esta referencia vale todo 184 00:19:24,200 --> 00:19:28,680 esto yo me lo sé aparte de porque ya lo usa más veces porque os vuelvo a repetir que si vamos 185 00:19:28,680 --> 00:19:36,520 pasando por las sobrecargas que en este caso es esta la que estamos usando vale nos pide un 186 00:19:36,520 --> 00:19:40,440 gameobject aquí lo pone como object cuando pone object significa gameobject vale es otra forma 187 00:19:40,440 --> 00:19:47,480 de llamarlo y bueno si luego bueno es que no quiero liar mal la madeja necesita un objeto que 188 00:19:47,480 --> 00:19:52,680 es el que va a referenciar y luego un transporte va a ser ese padre pone clona el objeto existente 189 00:19:52,840 --> 00:20:00,920 y retorna el clon si quisiéramos saber más esto ya lo comenté el otro día saber más de qué hace 190 00:20:00,920 --> 00:20:09,160 cada método la buena forma de hacerlo es meternos en el API vale en el manual de uso del código 191 00:20:09,160 --> 00:20:16,440 en el propio desde el propio google se puede hacer si ponemos el método o la propiedad que 192 00:20:16,440 --> 00:20:25,280 queramos consultar y ponemos unity después lo primero que va a poner va a ser digamos el acceso 193 00:20:25,280 --> 00:20:33,920 no al a cómo se usa este este elemento o este método aquí veis que vienen ya varias sobrecargas 194 00:20:33,920 --> 00:20:40,080 no y si vamos pasando aquí pone object original vale que aquí es lo mismo que ponía en el intel 195 00:20:40,080 --> 00:20:44,640 y sens que hemos visto antes en el código y aquí sí que podemos ir más con detalle por si tenemos 196 00:20:44,640 --> 00:20:49,560 dudas ir viendo qué significa cada cosa pues oye es algo de tipo objeto de gameobject no podemos 197 00:20:49,560 --> 00:20:55,040 meterle otra cosa quiere un gameobject aquí y en original es el nombre que le ha dado esta variable 198 00:20:55,040 --> 00:21:01,320 digamos a este parámetro que está esperando que hagamos algo con él vale y aquí si bajamos en 199 00:21:01,320 --> 00:21:05,640 los parámetros nos dice vale lo que yo ponga como original que es en todas estos en esta posición 200 00:21:05,640 --> 00:21:11,520 de los parámetros dice un objeto existente que del que quieras hacer una copia vale pues ya sabemos 201 00:21:11,520 --> 00:21:17,440 que aquí habría que meter ese objeto que queremos copiar vale cuando pone paren pues podemos ir a 202 00:21:17,440 --> 00:21:24,880 paren padre que será asignado al nuevo objeto vale pues aquí meteremos un transform vale y ese 203 00:21:24,880 --> 00:21:30,320 será padre en este caso podemos hacer igual con más tipos para que vayáis viendo cómo se usa aquí 204 00:21:30,320 --> 00:21:37,280 os puede ir diciendo más pues más digamos características de en este caso instantiate 205 00:21:37,440 --> 00:21:42,280 y si vais bajando incluso podréis ir viendo ejemplos vale el problema de los ejemplos igual 206 00:21:42,280 --> 00:21:48,200 a estas alturas es que son siempre más avanzados pero a medida que vayáis teniendo más bagaje 207 00:21:48,200 --> 00:21:53,840 iréis entendiendo más todos los ejemplos fijaos que luego incluso instantiate bueno yo lo he hecho 208 00:21:53,840 --> 00:21:59,600 así un poco a las bravas pero incluso fijaos que instantiate si lo vuelvo a declarar aquí tiene 209 00:21:59,600 --> 00:22:05,200 más tipos vale con estas llavecitas que se abren aquí y si me pongo encima pues no da muchas 210 00:22:05,200 --> 00:22:10,800 descripciones y en ese caso para desambiguar para saber qué significa pues tendríamos que meternos 211 00:22:10,800 --> 00:22:18,040 nuevamente en el manual o en la API vale aquí más abajo pues están las declaraciones de este estático 212 00:22:18,040 --> 00:22:25,840 vale que es es diferente vale en vez de un objeto tiene una referencia de tipo bueno esto ahora mismo 213 00:22:25,840 --> 00:22:31,000 nos da un poco igual pero sí sí que me sirve para que vayáis viendo que las sobrecargas se pueden 214 00:22:31,000 --> 00:22:37,920 ir como entendiendo mejor si vamos viendo este este manual vale y luego importante aquí arriba 215 00:22:37,920 --> 00:22:42,400 en la documentación de unity que es a donde va a referenciar si ponéis el la propiedad del parámetro 216 00:22:42,400 --> 00:22:48,680 la función seguido de unity en google podéis acceder al API que es donde os va a decir el 217 00:22:48,680 --> 00:22:53,600 uso digamos a nivel de programación vale como estamos haciendo ahora mismo y también al manual 218 00:22:53,600 --> 00:23:00,800 vale al manual los bueno es el manual del programa para acceder al manual de esta operación vale en 219 00:23:00,840 --> 00:23:04,640 vez de hacerlo desde aquí pues se puede cambiar a manual no que si tiene una sección en el manual 220 00:23:04,640 --> 00:23:09,760 digamos de del propio programa pues os puede contar una descripción que no está tan basada 221 00:23:09,760 --> 00:23:15,600 en el código sino del uso tal cual esto lamentablemente no suele estar en español vale igual 222 00:23:15,600 --> 00:23:22,280 que el software en sí en unity no está en español pero bueno con poco a poco en inglés es bastante 223 00:23:22,280 --> 00:23:26,240 técnico pero bueno se puede ir traduciendo y veis que aquí un poco ya va explicando qué hace 224 00:23:26,240 --> 00:23:32,320 nuevamente estas explicaciones a veces pueden pecar un poco de muy técnicas en el momento que 225 00:23:32,320 --> 00:23:37,400 nos encontramos pero sí que nos puede dar ciertas pistas vale a lo mejor hay líneas que empieza a 226 00:23:37,400 --> 00:23:42,560 hablar de herencia de bueno behavior bueno pues esto no sé si seguimos seguramente algo iremos 227 00:23:42,560 --> 00:23:49,160 pillando y poco a poco podremos seguir avanzando vale que me importaba ver un poco pues qué qué 228 00:23:49,160 --> 00:23:55,520 significan estos nombres que aparecen bajo original position veis en la sobrecarga pone 229 00:23:55,520 --> 00:24:00,600 original pues original es un nombre que sirve de referencia para luego ver en el lab en la 230 00:24:00,600 --> 00:24:05,280 api qué significa o qué te está pidiendo en cada momento vale vuelvo aquí 231 00:24:07,200 --> 00:24:13,360 vale qué tal hasta aquí más o menos me vais siguiendo doy vueltas que poco a poco se irán 232 00:24:13,360 --> 00:24:19,080 completando vale que de primera son muy complicado explicar todo más o menos me seguís 233 00:24:25,520 --> 00:24:32,440 más o menos vale vamos a quedarnos con lo más mundano de todo esto vale que es que estamos 234 00:24:32,440 --> 00:24:37,560 generando una variable de tipo game object y dentro de esa caja vale llamada instancia 235 00:24:39,000 --> 00:24:45,760 si esto claro bueno me está diciendo un compañero que es un poco complicado acordarse de todo esto 236 00:24:45,760 --> 00:24:51,000 lo dije el primer día va a ser un constante una constante iteración va a haber que ir volviendo 237 00:24:51,000 --> 00:24:57,000 todo el rato a lo mismo e ir machacándolo no es importante no sé si lo estáis haciendo leer bien 238 00:24:57,000 --> 00:25:03,440 los temas e ir intentando hacer las tareas poco a poco pues no acordarse es digamos ir teniendo 239 00:25:03,440 --> 00:25:09,120 conciencia de cómo era pero una vez vamos usando las cosas varias veces y ya os digo con el uso de 240 00:25:09,120 --> 00:25:14,600 la app y de la inteligencia por eso soy tan pesado digamos con ir entendiendo cómo cuando escribimos 241 00:25:14,600 --> 00:25:21,400 algo aquí pues qué significa no si ponemos invoke pues yo a lo mejor no sé qué es invoke pero me 242 00:25:21,400 --> 00:25:27,720 suena que algo se usaba y aquí podemos ir sabiendo cuando es un método podemos ir sabiendo qué cosas 243 00:25:27,720 --> 00:25:35,040 son deduciéndolo o metiéndonos en la api y poco a poco iremos salvando todo ya veréis vale si 244 00:25:35,040 --> 00:25:41,720 seguimos viendo esto nos falta decirle cuál es la referencia de este prefab vale y la referencia que 245 00:25:41,720 --> 00:25:46,560 nosotros queramos aquí la tenemos preparada la variable para usarla pero todavía no lo estamos 246 00:25:46,560 --> 00:25:53,640 haciendo bien porque aquí os lo he puesto como ejemplo la voy a quitar vale si dais a este 247 00:25:53,640 --> 00:25:58,560 circulito podéis decirle que no creen ninguna que es como estaba y claro yo lo que voy a querer en 248 00:25:58,560 --> 00:26:05,520 cierto momento es usar las capacidades que me está dando ese esa sobrecarga de instantiate para 249 00:26:05,520 --> 00:26:08,520 decirle yo el punto en el que quiero que se instancia no quiero que existancia a lo mejor 250 00:26:08,520 --> 00:26:15,480 en el 0 0 0 vale sino que yo quiero que se instancie donde punto vale estoy generando un 251 00:26:15,480 --> 00:26:20,520 gameobject vacío recordad que igual que se puede generar estos cubos y estos elementos con los que 252 00:26:20,520 --> 00:26:26,520 habéis hecho el prefab de la nave puede generar un vacío un empty que es como los nulos en los 253 00:26:26,520 --> 00:26:30,760 software de 3d que sirve simplemente para tener una referencia de la espacia no contiene nada 254 00:26:30,760 --> 00:26:37,160 más allá de una referencia del espacio y lo voy a llamar el borro este que genera 2 en el proceso 255 00:26:37,320 --> 00:26:43,400 voy a llamar punto referencia para saber bien qué es ese y ojo que cuando generamos un nuevo 256 00:26:43,400 --> 00:26:50,040 entiendo cualquier elemento puede no estar ubicado en el 0 0 que de partida no me gustaría no lo pone 257 00:26:50,040 --> 00:26:57,200 en el centro del visor donde estamos mirando vale ojo que suelen ir ya a las posiciones modificadas 258 00:26:57,200 --> 00:27:04,240 si queremos colocar algo en origen en el 0 0 en los tres puntos de ese componente si le vamos a 259 00:27:04,240 --> 00:27:10,440 reset se colocará y vale vale esto lo he hecho un poco para que veáis el punto de partida pero 260 00:27:10,440 --> 00:27:17,200 ahora lo que puedo hacer es decir no yo quiero que este elemento la nave se instancie en él y lo voy 261 00:27:17,200 --> 00:27:26,080 a meter a mano menos 40 y en y 10 vale porque es donde yo quiero que comience si ya acepta incluso 262 00:27:26,080 --> 00:27:32,480 vamos a ponerle un 15 el punto que sea está un poco igual esto lo que nos va a permitir es que 263 00:27:32,480 --> 00:27:39,480 luego cuando nosotros digamos que este gameobject punto de referencia vale y sin teniendo aquí abierta 264 00:27:39,480 --> 00:27:45,600 está en el inspector de donde tenemos el código las variables preparadas arrastramos ese objeto 265 00:27:45,600 --> 00:27:50,280 vale lo que va a hacer es coger el transform de este punto referencia que nosotros hemos ubicado 266 00:27:50,280 --> 00:27:57,800 donde queremos que esté vale entonces ahora mismo ya tenemos preparada una referencia que se coge con 267 00:27:57,800 --> 00:28:06,440 esta variable referencia y que nosotros usamos aquí como segundo parámetro vale de del instant 268 00:28:06,440 --> 00:28:11,960 seat si yo ahora ejecuto el juego va a hacer dos cosas como bien dice aquí crea una estancia la 269 00:28:11,960 --> 00:28:17,400 posición del objeto de referencia está los puntos en esta ubicación que acabamos de poner y como hijo 270 00:28:17,400 --> 00:28:23,640 suyo además tiene una pequeña sutileza entonces yo cuando ahora arranque el juego vais a ver 271 00:28:23,640 --> 00:28:32,320 que esa nave primero se ha colocado si recordáis en este punto donde está punto referencia y además 272 00:28:32,320 --> 00:28:39,320 se ha hecho su hijo vale se llama hola porque en el código hemos dicho que la instancia que el nombre 273 00:28:39,320 --> 00:28:48,360 de esa instancia sea hola vale entonces vez que no es lo mismo tener activo este esta instanciación 274 00:28:48,880 --> 00:28:54,640 bien referenciado todo que simplemente generar instancia a secas vale esto me sirve para que 275 00:28:54,640 --> 00:29:04,240 poco a poco vaya viviendo que la que hay dentro de estos paréntesis en un método vale pues influye 276 00:29:04,240 --> 00:29:11,800 un método o una función que son lo mismo ya comenté el otro día que son digamos operaciones 277 00:29:11,800 --> 00:29:16,800 de acción de algo que ocurre en este caso vamos a instanciar en este caso esto es otro método 278 00:29:16,920 --> 00:29:23,000 que sirve para marcar que va a ocurrir al empezar el juego o al iniciarse este script no recordad 279 00:29:23,000 --> 00:29:29,440 que era cuando el objeto se iniciaba y si veis cuando hay un método tiene pues el nombre de 280 00:29:29,440 --> 00:29:36,040 esa acción que va a hacer y siempre va a ir a continuación un paréntesis vale a veces vacío 281 00:29:36,040 --> 00:29:42,920 a veces lleno pero cuando vemos una palabra que está escrita en mayúsculas la primera letra y 282 00:29:42,920 --> 00:29:47,600 luego tiene paréntesis eso significa que estamos usando lo que se llama un método función es decir 283 00:29:47,600 --> 00:29:55,560 una acción que vamos a hacer vale que no es lo mismo que si yo pongo transform position igual a 284 00:29:57,880 --> 00:30:04,920 referencia vale que esto básicamente a ver reference position había que poner 285 00:30:04,920 --> 00:30:14,160 vale esto ya os explicaré un poco más que es vale pero al final no es lo mismo decir oye 286 00:30:14,160 --> 00:30:19,400 instanciate aquí y tal cosa que en esta línea que no vemos ni un solo paréntesis esto significa 287 00:30:19,400 --> 00:30:23,640 que aquí no hay ningún método los paréntesis pueden indicar más cosas pero lo general son 288 00:30:25,520 --> 00:30:32,120 métodos o funciones vale ahora volveremos otra vez a los métodos entonces ya simplemente por 289 00:30:32,120 --> 00:30:38,160 terminar este esta aplicación como de las sobrecargas de las sobrecargas que puede tener 290 00:30:38,160 --> 00:30:46,120 instanciate y a ver un segundo que esto esté vale tenemos una tercera forma de instanciar vale 291 00:30:46,120 --> 00:30:54,600 comentó todo menos esta última que yo sé que es y borro todo lo relacionado con con los comentarios 292 00:30:55,360 --> 00:31:02,720 que es que crea una instancia en el punto de referencia pero sin rotación vale vale aquí si 293 00:31:02,720 --> 00:31:08,320 os fijáis tenemos tres elementos y es igual que el anterior en el sentido de que primero el primero 294 00:31:08,320 --> 00:31:15,440 de ellos es el prefab vale y voy a ir a la API un segundo de instanciate que la tenía por aquí 295 00:31:15,440 --> 00:31:21,080 abierta si no me equivoco aquí está vale esta es la primera que hemos usado esta es la segunda y 296 00:31:21,080 --> 00:31:27,560 ahora vamos a ir a esta tercera vale esta no la saltamos porque tampoco aporta mucho pero aquí 297 00:31:27,560 --> 00:31:36,040 básicamente nos pide vale un objeto ahora el segundo parámetro aunque es parecido es una 298 00:31:36,040 --> 00:31:42,880 posición vale y de tipo vector 3 esto es verdad que todavía no lo hemos visto lo veréis a partir 299 00:31:42,880 --> 00:31:48,040 de mañana que abro un nuevo tema vale como está anunciado y luego la rotación está ahora mismo 300 00:31:48,040 --> 00:31:53,160 es un poco enrevesado y por eso no voy a meterme mucho volvemos a ello si queréis más adelante 301 00:31:53,160 --> 00:32:00,880 pero esta sobrecarga al final lo que me está pidiendo son otro tipo de valores entonces si 302 00:32:00,880 --> 00:32:09,000 os fijáis incluso aquí cuando vemos esta referencia aquí no me está pidiendo un transform un transform 303 00:32:09,000 --> 00:32:15,960 completo como como si que hacía en la otra sobrecarga vale aquí me pedía el transform completo 304 00:32:16,160 --> 00:32:21,720 del objeto que iba a ser el padre aquí me pide sólo la posición vale entonces quiero que vayáis 305 00:32:21,720 --> 00:32:29,320 también teniendo en la cabeza que ciertos parámetros tienen más parámetros dentro como hemos dicho 306 00:32:29,320 --> 00:32:34,240 antes que podemos ir abriendo con punto porque he pensado una cosa si me está pidiendo la posición 307 00:32:34,240 --> 00:32:41,840 de un elemento y yo tengo un transform en referencia no yo al final lo que estoy haciendo es en este 308 00:32:41,840 --> 00:32:47,320 transform vale estoy cogiendo todo lo que hay en este componente la posición la rotación y la 309 00:32:47,320 --> 00:32:52,800 escala que al final son tres valores de la posición tres valores de la rotación y tres valores de la 310 00:32:52,800 --> 00:32:59,680 escala verdad entonces cuando me piden sólo la posición vais a ver que al final lo que estoy 311 00:32:59,680 --> 00:33:04,520 haciendo aquí es decirle vale de este transform que yo he llamado reference vale sólo voy a 312 00:33:04,520 --> 00:33:11,240 coger la posición porque si intento meter todo esto me da fallo porque está en dice vale no sé 313 00:33:11,240 --> 00:33:16,560 que de todo lo que tiene dentro en la posición o en la rotación pues yo que sé la 314 00:33:19,120 --> 00:33:24,920 pues si yo pongo aquí rotation veis que puedo meter la rotación vale me da fallo también por 315 00:33:24,920 --> 00:33:30,160 otras sutilezas pero si es porque habría que ponerlo en ángulo cellular básicamente que es 316 00:33:30,160 --> 00:33:36,200 una cosa que ya veremos en este tema vale pero veis que a medida que yo le voy dando la instrucción 317 00:33:36,200 --> 00:33:42,520 correcta esto me puede dar que algo se puede ejecutar o no vale sutilezas que a veces hay 318 00:33:42,520 --> 00:33:47,320 que ir pensando qué valores estoy guardando en este transform pues estoy guardando en los de 319 00:33:47,320 --> 00:33:53,120 posición los de rotación los de escala y aquí sólo me pide posición vale y luego aquí bueno me pide 320 00:33:53,120 --> 00:33:56,760 la rotación que esto sí que es verdad que más avanzado entonces no me voy a meter mucho pero 321 00:33:56,760 --> 00:34:01,400 aquí básicamente con esta instrucción estoy diciéndole cógeme la rotación que tenga por defecto 322 00:34:03,880 --> 00:34:12,320 el objeto vale entonces yo cuando usé esta forma de este método de instanciación vais a ver que a 323 00:34:12,320 --> 00:34:18,800 diferencia de antes cuando yo lo generó me lo genera la posición pero ahora no es hijo de nada 324 00:34:18,800 --> 00:34:24,640 no es hijo de el punto de referencia como ocurría antes vale que lo usaba como padre e igualmente 325 00:34:24,640 --> 00:34:29,800 como no estoy poniendo que esta instancia sea una caja a la que yo puedo cambiar el nombre pues no 326 00:34:29,800 --> 00:34:36,160 se llama hola se llama pues nave prefab clon que es el nombre genérico que ha cogido de del objeto 327 00:34:36,160 --> 00:34:41,120 cuando le hemos metido aquí el objeto como se llama nave prefab pues dice vale por de nave prefab 328 00:34:41,120 --> 00:34:47,680 he hecho un clon ya está vale sé que esto os sonará complicado pero quiero que vayáis viendo un poco 329 00:34:47,680 --> 00:34:51,920 en la forma de funcionar de los métodos vale también porque lisa me ha preguntado algo sobre 330 00:34:51,920 --> 00:34:57,440 la tarea y un poco para completar esto de la tarea ahora voy a volver a cosas más básicas 331 00:34:57,440 --> 00:35:04,480 digamos del tema cero pero hasta aquí más o menos me vais siguiendo más o menos más o menos vale yo 332 00:35:04,480 --> 00:35:10,160 entiendo que ahora mismo os digo acepta el cosa y no la sabéis hacer pero si me interesa vamos más 333 00:35:10,160 --> 00:35:15,840 allá de lo que se pedía la tarea que eso entiendo que sí pero digamos hacerlo de más formas es lo 334 00:35:15,840 --> 00:35:20,160 que poco a poco quiero que vayáis entendiendo vale porque esto se irá complicando progresivamente 335 00:35:20,920 --> 00:35:25,720 vale para aquellos que lo bueno y para vosotros también para aquellos que lo estáis viendo en 336 00:35:25,720 --> 00:35:31,040 diferido y para vosotros mismos os vuelvo a sugerir y nunca serán pocas veces que os diga 337 00:35:31,040 --> 00:35:36,200 que vayáis leyendo los temas según se van lanzando y vayáis intentando hacer las tareas sino cada vez 338 00:35:36,200 --> 00:35:42,840 se va a volver todo más complicado de coger el ritmo vale y dudas que tengáis pues me las vais 339 00:35:42,840 --> 00:35:50,160 diciendo vale hasta aquí un poco lo relacionado con instantiate vale cuando ya vais entendiendo 340 00:35:50,160 --> 00:35:55,560 cómo se usan más métodos pues instantiate lo iréis entendiendo mucho mejor vale voy a otro 341 00:35:55,560 --> 00:35:59,680 archivo que tengo aquí preparado para ir al tema cero que es el que me interesa en esta 342 00:35:59,680 --> 00:36:09,080 tutoría si no tenéis más dudas de la tarea del tema 1 no sé si ya la habéis realizado si la 343 00:36:09,080 --> 00:36:14,240 habéis entregado todavía no yo digo hasta el domingo si no me equivoco no no voy a ir viendo 344 00:36:14,240 --> 00:36:20,320 quién la entrega y quién no que es cuando cierro vale perfecto daniel estás en ello pues pues pues 345 00:36:20,320 --> 00:36:31,240 ánimo yo creo que con los vídeos y siguiendo pues pues podéis ir haciéndolo vale vamos al tema 346 00:36:32,120 --> 00:36:40,280 voy a guardar vale recordado esta estrella está esta pequeña estrella y voy a ello vale 347 00:36:41,280 --> 00:36:48,960 tengo aquí otro script que simplemente va a servir para para practicar ahora no va a tener 348 00:36:48,960 --> 00:36:54,120 como hemos hecho ahora en instantiate que se vea un resultado claro en el visor pero me sirve para 349 00:36:54,120 --> 00:36:58,880 que vayamos entendiendo mejor qué tipos de variables existen y usos y aplicaciones que se 350 00:36:58,880 --> 00:37:03,560 pueden hacer de momento quizá un poco abstractas en el sentido de pues solo estamos viendo sumas y 351 00:37:03,560 --> 00:37:08,400 restas pero luego es que esas sumas y restas como dije el otro día puede ser como sube y baja el 352 00:37:08,400 --> 00:37:15,640 número de puntos que tiene un contador vale y se va a basar un poco en lo mismo entonces recordar 353 00:37:15,640 --> 00:37:24,800 a ver que creo que alguien se ha metido perdona os ha salido no lo sé vale recordad cómo se generaba 354 00:37:24,800 --> 00:37:29,480 un script que es lo voy a hacer en esta carpeta de script que tengo aquí preparada de durante la 355 00:37:29,480 --> 00:37:37,000 tutoría pues yo hago mis este script no recordad que en este cesar script podemos generar un script 356 00:37:37,000 --> 00:37:45,320 que vamos a llamar durante recordad que el nombre que vayamos asignando aquí luego debe ser el mismo 357 00:37:45,320 --> 00:37:50,360 de la clase de dentro del script esto ya lo he dicho como en dos tutorías previas por tanto entiendo 358 00:37:50,360 --> 00:37:56,160 que no habrá problema y además en el tema 0 va poniendo buenas prácticas de cómo escribir 359 00:37:56,160 --> 00:38:06,480 las los nombres de los scripts los nombres de las de los métodos de las variables vale y habla de 360 00:38:06,480 --> 00:38:14,240 una cosa que es el pascal case y el camel case vale cuando generamos una clase o lo que es lo 361 00:38:14,240 --> 00:38:21,560 mismo generamos en dentro de unity un script siempre vale lo digo porque luego nos va a ayudar 362 00:38:21,560 --> 00:38:27,000 a que todo sea más fácil de ir siguiendo siempre deberíamos empezar a escribir el nombre del script 363 00:38:27,000 --> 00:38:35,000 con mayúscula vale y a diferencia de nuestro lenguaje del día a día los espacios no existen 364 00:38:35,000 --> 00:38:39,680 o no se usan correctamente vale cuando estamos escribiendo órdenes si os fijáis todo lo que 365 00:38:39,680 --> 00:38:44,840 os he ido enseñando antes no había espacios o práctica había muy pocos ahora hasta que no 366 00:38:44,840 --> 00:38:50,920 termine escribir esto no quiero volver a enseñaros en script pero vais a ver que normalmente se 367 00:38:50,920 --> 00:38:58,880 escriben las palabras juntas y cómo se distingue que una palabra pues es la pues hay un espacio 368 00:38:58,880 --> 00:39:03,360 entre ellos en vez de dar al típico espacio que hacemos con la barra espaciadora lo que hacemos 369 00:39:03,360 --> 00:39:10,400 es empezar la siguiente palabra con mayúscula durante la tutoría importante lo que son tildes 370 00:39:10,400 --> 00:39:18,240 y éñes no las uséis nunca en nada relacionado con programación me explico incluso aunque esto 371 00:39:18,240 --> 00:39:23,360 sea el nombre de un script recordad que vale guardo y se genera que cuando yo genero esta 372 00:39:23,360 --> 00:39:29,040 script al final estoy realizando un código cuya nombre el cuyo nombre de clase también está dentro 373 00:39:29,040 --> 00:39:34,440 del código si yo empiezo a poner tildes esto va a empezar a dar ciertos problemas vale y aunque 374 00:39:34,440 --> 00:39:40,120 ahora parezca lo mejor que no lo da tarde o temprano lo va a dar igual sucede si ponemos una 375 00:39:40,120 --> 00:39:48,240 ñ o si ponemos un signo que no esté reconocido vale que pueda haber algunos vale entonces atención 376 00:39:48,240 --> 00:39:53,960 fijaos que siempre he escrito con la primera letra mayúscula en lo que se llama pascal que 377 00:39:53,960 --> 00:39:59,680 es pascal fue un si no me acuerdo si no recuerdo mal un matemático y como es un nombre propio por 378 00:39:59,680 --> 00:40:04,720 eso se llama así con mayúscula pascal que es que no es lo mismo si nos fijamos a lo que hemos estado 379 00:40:04,720 --> 00:40:09,400 bueno y fijaos también que los métodos los de los paréntesis también van con mayúsculas es decir 380 00:40:09,400 --> 00:40:16,360 instantiate existe con mayúsculas vale pero si yo me pongo a buscar los con minúscula no existe 381 00:40:16,360 --> 00:40:21,160 firme sí que intenta ayudarme diciéndome que esto está mayúsculas pero vais a ver que yo cuando lo 382 00:40:21,160 --> 00:40:28,760 ponga me lo ponen mayúsculas vale los métodos esas palabras que sirven para indicar que se ejecute 383 00:40:28,760 --> 00:40:32,880 una acción que van con estos paréntesis siempre empiezan a escribirse con mayúsculas y lo mismo 384 00:40:32,880 --> 00:40:39,600 si instantiate tuviera otra palabra sería instantiate double yo que sé pues no se separa no 385 00:40:39,600 --> 00:40:46,560 se separa así porque esto significa hacer dos instrucciones distintas o otro tipo de orden 386 00:40:46,560 --> 00:40:52,560 vale si es solo una orden llamada instantiate double no hay espacio en el medio se van separando 387 00:40:52,560 --> 00:40:58,320 digamos marcando la diferencia la separación de palabras con esta mayúscula no que va separando 388 00:40:58,320 --> 00:41:03,880 estas palabras del mismo modo si pongo el script que hemos estado viendo antes vale un segundo que 389 00:41:03,880 --> 00:41:10,560 lo tengo por aquí en los preparados el de instantiate lo vuelvo a abrir si quiere 390 00:41:10,560 --> 00:41:17,920 a ver que le está costando un poquito 391 00:41:19,800 --> 00:41:29,640 y no sé por qué aquí está instantiate vale aquí lo estamos viendo si os fijáis ojo las clases y os 392 00:41:29,640 --> 00:41:33,800 recuerdo que siempre digo que esto es una clase luego el nombre que le ponemos al script es una 393 00:41:33,800 --> 00:41:39,160 clase y estos son clases que os recuerdo que si le dais con la letra control os podéis meter vale 394 00:41:39,160 --> 00:41:43,680 esto es simplemente curiosidad y podéis ver todo el código que digamos ya alguien ha preparado para 395 00:41:43,680 --> 00:41:49,520 que nosotros podamos usarlo vale vuelvo aquí entonces cuando generamos clases fijaos cómo 396 00:41:49,520 --> 00:41:54,800 es la gramática de esta declaración del tipo de variable que es una clase no como hemos dicho 397 00:41:54,800 --> 00:42:01,120 antes una g mayúscula y para separar mayúscula no y luego aquí hay un espacio que si yo no pusiera 398 00:42:01,120 --> 00:42:06,440 significa que es todo la misma palabra vale y daría fallo porque significa otra cosa cuidado 399 00:42:06,440 --> 00:42:14,000 los espacios se usan se deben usar cuando se deben usar y las variables vale por convención se escriben 400 00:42:14,000 --> 00:42:19,240 del mismo modo pero empezando en minúscula vale igual que instantiate va con mayúscula fijaos 401 00:42:19,240 --> 00:42:25,040 que may prefab cuando lo hemos declarado aquí al principio va con minúscula vale igual cuando 402 00:42:25,040 --> 00:42:31,280 queramos separar veis que el may bien porque es el nombre que le hemos dado a GameObject pero 403 00:42:31,280 --> 00:42:35,400 este prefab aquí no pinta nada para que lo interprete como el nombre de la caja aunque sean 404 00:42:35,400 --> 00:42:40,880 dos palabras distintas empieza con minúscula y para separar las palabras hay que poner una 405 00:42:40,880 --> 00:42:45,600 mayúscula aquí y os lo dije el otro día y si no os habéis dado cuenta fijaos si está preparado 406 00:42:45,600 --> 00:42:53,800 esto que aunque no dejemos esos espacios el propio el propio unity ya va viendo dónde meter los 407 00:42:53,800 --> 00:42:58,920 espacios aquí nos ha metido un espacio en donde en el nombre del script no lo había recordado o 408 00:42:58,920 --> 00:43:04,400 incluso en el may prefab vale que es el nombre de la variable que hemos puesto la m si la ha 409 00:43:04,400 --> 00:43:11,000 puesto en mayúsculas y ha puesto este espacio vale fijaos que el propio software sabe interpretarlo 410 00:43:11,000 --> 00:43:14,920 entonces nosotros nos tenemos que hacer a la forma en la que tenemos que escribir el código 411 00:43:14,920 --> 00:43:21,760 vale importante es decir recapitulando las clases barra porque lo mismo scripts siempre comenzando 412 00:43:21,760 --> 00:43:29,320 con mayúsculas los métodos a medida que vayamos sabiendo cómo llamarlos o cómo crearlos también 413 00:43:29,320 --> 00:43:37,120 en mayúsculas vale y lo que son las variables en minúsculas vale la diferencia de esto es que 414 00:43:37,120 --> 00:43:42,440 esto es pascal que es porque empieza en mayúscula y esto es lo que se llama camel case lo de camel 415 00:43:42,440 --> 00:43:47,280 porque aparece como la joroba de un camello vale esto también viene en los apuntes si os sirve 416 00:43:47,280 --> 00:43:51,960 para acordaros pues camel case es cuando empieza en minúscula pascal que es cuando es un nombre 417 00:43:51,960 --> 00:44:00,720 propio vale vamos un poco con durante la tutoría que son digamos operaciones más básicas para ir 418 00:44:00,720 --> 00:44:06,880 viendo el tema cero el tema cero de vosotros todos lo habéis echado un vistazo ya al tema cero 419 00:44:08,120 --> 00:44:12,320 sí vale qué tal os parecerá bastante árido entiendo 420 00:44:12,320 --> 00:44:22,560 a ver que si mucho un poco sí pero despacio exacto daniel lo ha dicho un poco sí es árido 421 00:44:22,560 --> 00:44:28,520 yo os aseguro que cuando hubiera entrado a dar este curso a recibir este curso si fuera alumno 422 00:44:28,520 --> 00:44:34,000 lo hubiera leído no me hubiera enterado de mucho vale la cosa es eso poco a poco vale y para eso 423 00:44:34,000 --> 00:44:38,440 estoy yo aquí y para eso está que lo podemos leer varias veces que eso también es muy importante por 424 00:44:38,440 --> 00:44:42,320 eso os digo siempre que este tema cero es transversal al curso vale porque es algo que 425 00:44:42,320 --> 00:44:48,880 iremos entendiendo poco a poco vale bueno tenéis aquí dos secciones primeras que 426 00:44:50,680 --> 00:44:56,120 en plan me he centrado más las demás lecciones bueno realmente sólo hay otra más las demás no 427 00:44:56,120 --> 00:45:04,160 en la otra elección no pero si era el objetivo que primero vierais la ut1 vale que entendierais 428 00:45:04,160 --> 00:45:10,560 un poco pues cómo se navega por la interfaz de unity qué partes tiene cómo se genera un script 429 00:45:10,560 --> 00:45:15,920 pues escribir vuestro primer script hacer vuestro primer prefab oye son bastantes cosas y ya vais 430 00:45:15,920 --> 00:45:20,160 aunque aunque a lo mejor todavía no se es consciente ya poniendo un juego ciertas cosas 431 00:45:20,160 --> 00:45:24,880 de aquí vale pero ya os digo iremos pasando por todo esto para ir viendo más pormenorizadamente 432 00:45:24,880 --> 00:45:31,400 que es mañana ya os digo mañana se abre el tema 2 por favor y poniéndoos con él ya según lo vaya 433 00:45:31,400 --> 00:45:37,520 abriendo vale cuanto antes nos pongamos antes tendremos duda y antes podremos ir avanzando que 434 00:45:37,520 --> 00:45:43,120 es como se supone que hay que hacer el curso vale sobre las variables el otro día estuvimos ya 435 00:45:43,120 --> 00:45:48,680 hablando bastante y de hecho aquí volvemos a hablar de hecho lo de camel case está aquí puesto que hay 436 00:45:48,680 --> 00:45:53,840 que darle un nombre vale a la variable que cada uno puede tener un tipo de valor que es lo que 437 00:45:53,840 --> 00:45:59,880 el otro día estuvimos hablando que eran los ins los floats los strings las cadenas recordáis esto 438 00:46:00,360 --> 00:46:08,600 ya lo hemos visto más o menos hasta aquí lo tenemos doy un repaso rápido o lo sabemos lo que 439 00:46:08,600 --> 00:46:14,320 es cada cosa hemos visto incluso ya tipos de variables de tipo clase no como este game object 440 00:46:14,320 --> 00:46:19,800 o este transform en el que guardábamos la referencia que cogíamos por el inspector en el serialize 441 00:46:19,800 --> 00:46:29,600 field si por ejemplo imaginaos que yo en el código vale aquí justo dentro de la clase recordad que 442 00:46:29,600 --> 00:46:39,440 las llaves delimitan que hay dentro de cada uno de los apartados del código vale y las clases vale 443 00:46:39,440 --> 00:46:45,840 cuando empezamos una clase vamos generando estas variables como he dicho antes que luego podrán 444 00:46:45,840 --> 00:46:53,320 ser usadas dentro de todo este bloque vale cuando vamos trabajando en un lenguaje como cesar vale 445 00:46:53,960 --> 00:47:00,840 al final existe un proceso bueno una lógica que es el encapsulamiento vale el encapsulamiento 446 00:47:00,840 --> 00:47:05,960 significa que dentro de estas llaves vale de cada uno de los bloques de ésta o de ésta que es otro 447 00:47:05,960 --> 00:47:11,240 bloque o de éste que es otro bloque podemos ir usando variables que queremos nos puede interesar 448 00:47:11,240 --> 00:47:16,840 que sólo existan dentro de este bloque o que existan este bloque y por defecto pues también 449 00:47:16,840 --> 00:47:22,160 existen los de dentro vale el encapsulamiento sirve para que digamos partes del código se 450 00:47:22,160 --> 00:47:26,520 puedan comunicar entre sí o no vale esto también lo iremos viendo pero este concepto de encapsulamiento 451 00:47:26,520 --> 00:47:32,480 si a alguien le interesa existe y ya me sirve para explicar eso que cuando tenemos una clase 452 00:47:32,480 --> 00:47:36,920 que es donde vamos generando todas las instrucciones que hay dentro de este script pues ya vamos a lo 453 00:47:36,920 --> 00:47:43,040 mejor haciendo variables y esto es el script de el movimiento del jugador vale imaginaos que fuera 454 00:47:43,040 --> 00:47:48,280 esta la función de este script que luego meteremos como componente al GameObject del jugador no 455 00:47:49,280 --> 00:47:56,080 pues ese jugador a lo mejor vamos a querer que tenga una vida inicial no y creo que esa vida 456 00:47:56,080 --> 00:48:03,760 inicial sea de 100 puntos imaginaos vale esto veis que yo por defecto si pongo un 100 no sirve para 457 00:48:03,760 --> 00:48:11,160 nada me da falla 100 que no sabe que es incluso cuando empieza el juego yo puedo decir aquí 100 458 00:48:11,800 --> 00:48:19,200 y punto y coma vale pero me va a decir 100 que no tenéis que ir entendiendo que es que los números 459 00:48:19,200 --> 00:48:25,920 y los datos no existen en el código no son operativos hasta que no se encierran en una 460 00:48:25,920 --> 00:48:30,960 variable que es lo que ya vimos el otro día si queremos generar una variable de la vida del 461 00:48:30,960 --> 00:48:38,840 personaje que guarde un valor 100 que habría que generar o cómo sería que esto del otro día un poco vimos 462 00:48:41,600 --> 00:48:50,840 una variable no vale y cómo dime un poco que cómo la generó pues pones y nt vale y nt ahora 463 00:48:50,840 --> 00:48:59,400 vemos vale espacio vale vida muy bien vida igual a 100 y punto y coma vale mira que me digas esto 464 00:48:59,400 --> 00:49:03,720 así significa que ya se ha aprendido cómo se declara una variable muy bien aprendido así que 465 00:49:03,720 --> 00:49:10,320 vamos a ello porque ha sido int y no float o string otra cosa porque es un número entero vale 466 00:49:10,320 --> 00:49:17,360 entonces también esto habría que ver el juego pero la vida normalmente si tiene un valor como 100 que 467 00:49:17,360 --> 00:49:23,120 es el máximo acabo de decir y vamos a decir ya por defecto que la muerte es que llega al 0 vale 468 00:49:24,080 --> 00:49:28,400 pues normalmente en un contador de eso no va a ir tan fino como ir a decimales entonces para no 469 00:49:28,400 --> 00:49:34,280 complicar al programa pues no declaramos un float que si no recordamos si para refrescar 470 00:49:34,280 --> 00:49:41,840 un float era un parámetro una variable perdonad con decimales vale imaginaos que quisiera guardar 471 00:49:41,840 --> 00:49:48,360 una con decimales y en ese caso pues podríamos decir cosas como 5 con 5 no vale esto lo recordamos 472 00:49:48,360 --> 00:49:54,680 del otro día que la f sirve para indicar que este punto al final es el separador de los decimales y 473 00:49:54,680 --> 00:50:01,640 si no lo ponemos o ponemos una coma veis que ya empieza a dar errores o si no ponemos el punto 474 00:50:01,640 --> 00:50:06,320 también el efe también empieza a dar errores vale la sintaxis hay que aprenderla entonces tenemos 475 00:50:06,320 --> 00:50:12,080 aquí una variable que es vida 100 y esto significa que en este script ya podremos ir en cualquier 476 00:50:12,080 --> 00:50:19,840 momento e ir diciendo que la vida cuando arranca el juego la vida del personaje es 100 vale y veis 477 00:50:20,000 --> 00:50:25,360 que yo tengo esta vida y es verdad que cuando generamos una declaramos una variable que es 478 00:50:25,360 --> 00:50:33,080 darle una forma a la caja y un nombre vale también la inicializamos o podemos decir vale que la vida 479 00:50:33,080 --> 00:50:40,760 cuando arranque el juego dentro de esa caja al empezar vale tenga un 100 no que esto lo vimos 480 00:50:40,760 --> 00:50:48,640 el otro día también ahora es verdad vale que hemos guardado este dato pero como es aquí en este estar 481 00:50:48,640 --> 00:50:54,040 al empezar pero como el dato está declarado aquí arriba todos los cambios que vayamos haciendo vale 482 00:50:54,040 --> 00:50:59,320 se estarán guardando en la caja que está aquí arriba eso que significa que antes os he hablado 483 00:50:59,320 --> 00:51:06,840 de que existían bloques para ir pues declarando las variables incluso usándolas no porque os he 484 00:51:06,840 --> 00:51:12,000 dicho también antes cuando hemos visto lo de la instancia que guardamos como variable que se puede 485 00:51:12,000 --> 00:51:18,000 generar incluso una instancia dentro de un estar de un método no de un momento de acción yo puedo 486 00:51:18,000 --> 00:51:24,360 decir vale esta variable vida se genera aquí con un valor de 100 vale y luego decir vale y en el 487 00:51:24,360 --> 00:51:31,840 update que vida pase a llamarse en pase a valer 500 vale porque cuando el primer frame queremos 488 00:51:31,840 --> 00:51:37,840 que sea 100 pero ya los siguientes 500 veis que aquí vida da un fallo vale y esto es simple ya 489 00:51:37,840 --> 00:51:44,120 alguien me sabría decir el por qué a ver si eso más o menos vamos se explica en el tema 0 pero oye 490 00:51:49,000 --> 00:51:51,840 si no lo explico yo pero oye que igual hay alguien que 491 00:51:54,840 --> 00:52:01,400 nadie nadie adivina vale os he dicho antes que existía este encapsulamiento que servía para ir 492 00:52:01,400 --> 00:52:08,280 digamos generando bloques fijaos que cuando yo genero la caja barra la variable le pongo el tipo 493 00:52:08,280 --> 00:52:14,080 de variable que es y yo he generado esta caja aquí en el start y esto es un bloque vale a diferencia 494 00:52:14,080 --> 00:52:19,400 de cuando lo generamos a la clase que veis que comprende todo aquí sólo comprende esto por tanto 495 00:52:19,400 --> 00:52:24,480 cuando llamamos a esta variable en otro punto que no es de su bloque pues no existe vale aquí 496 00:52:24,480 --> 00:52:31,080 podríamos incluso generar otra variable llamada vida que es una vida diferente a esta son dos 497 00:52:31,080 --> 00:52:37,480 variables distintas vale esto no es lo mismo que lo que habíamos hecho antes de decir vale yo genero 498 00:52:37,480 --> 00:52:44,000 declaro esta variable aquí arriba y ahora existe digamos esta caja preparada en todo este ámbito 499 00:52:44,720 --> 00:52:51,960 y aquí es donde digo vale vida 100 y aquí pues el 100 se está guardando aquí arriba es decir este 500 00:52:51,960 --> 00:52:58,840 100 se está guardando en todo este tránsito si yo aquí por ejemplo dijera voy a enseñar por 501 00:52:58,840 --> 00:53:05,400 consola esto ya lo vimos otro día que es el debug log voy a querer que me vaya en cada fotograma 502 00:53:05,400 --> 00:53:10,760 enseñando lo que vale vida y veis que no me da ningún fallo me está enseñando vida que está aquí 503 00:53:10,760 --> 00:53:16,280 creada la caja y la he cargado con un valor aquí vale es verdad que en este ámbito donde he dicho 504 00:53:16,280 --> 00:53:20,480 que vale 100 vale y vais a ver que lo que me va a mostrar el 100 que este valor de 100 505 00:53:23,480 --> 00:53:29,240 lo he generado aquí y este 100 ya está fuera del bloque pero es que la caja donde está guardando 506 00:53:29,240 --> 00:53:34,440 los valores si está fuera y sí que está en la cápsula digamos en el bloque que luego permite 507 00:53:34,440 --> 00:53:39,600 que se comunique con una inferior que es el update no si yo ahora ejecuto esta instrucción 508 00:53:40,480 --> 00:53:47,240 lo primero es que probablemente de fallo pase algo raro yo voy a la consola y no 509 00:53:47,240 --> 00:53:51,400 veo ni 100 ni cero ni nada porque a ver quién me lo sabe responder 510 00:53:56,800 --> 00:54:02,840 esto si habéis hecho la tarea 1 deberíais saberlo no has asignado el código no efectivamente no hay 511 00:54:02,840 --> 00:54:08,960 ningún objeto dentro del juego ni le hemos dicho de otra forma que se ejecute no hay ningún objeto 512 00:54:08,960 --> 00:54:12,920 en el juego que tenga este script por tanto el script no se está ejecutando es decir no hay 513 00:54:12,920 --> 00:54:20,440 ningún momento start de nada en donde se ejecute esto no entonces pues en punto referencia me da 514 00:54:20,440 --> 00:54:27,120 igual porque sólo van a ser números vale voy a asignar este durante la tutoría como componente 515 00:54:27,120 --> 00:54:33,080 vale a ver he guardado recordad que hay que guardar el script ahí está y ahora lanza el 516 00:54:33,080 --> 00:54:39,400 juego a ver y ahora sí que cada fotograma está generando un 100 y se van sumando hasta que llegue 517 00:54:39,400 --> 00:54:45,480 a 1000 que ya no sea más pero aquí son 100 100 100 vale entendéis que al final lo que estamos 518 00:54:45,480 --> 00:54:51,480 consiguiendo es cambiar las variables en distintos puntos del código esto es importante entenderlo 519 00:54:51,480 --> 00:54:56,720 porque es lo que os he dicho antes si yo genero aquí la caja y aquí no existiera y guardo la 520 00:54:56,720 --> 00:55:02,360 caja aquí al final vida no existe para el update porque está fuera del ámbito donde se ha generado 521 00:55:02,360 --> 00:55:10,280 esta caja vale esto también es por algo que se llama los ámbitos que voy un algunos pasos más 522 00:55:10,280 --> 00:55:15,200 adelante dentro del tema 0 aquí se habla de los ámbitos de las variables y habla un poquito de 523 00:55:15,200 --> 00:55:21,600 estas bueno pues de estos bloques y de estos ámbitos y un poco también de lo que os estoy 524 00:55:21,600 --> 00:55:26,120 comentando aquí vale igual está sintax este código es un poco más avanzado por eso lo estoy 525 00:55:26,120 --> 00:55:31,720 simplificando pero básicamente de lo que habla es que están las variables globales que se declaran 526 00:55:31,720 --> 00:55:35,760 al comienzo y están disponibles en todo el script incluso dentro de las funciones como sería el 527 00:55:35,760 --> 00:55:41,840 estar y el update y aquí saludar vale y luego las locales perdón que se declaran dentro de 528 00:55:41,840 --> 00:55:48,280 una función y por eso sólo están disponibles dentro de ella vale por tanto para cuando más 529 00:55:48,280 --> 00:55:55,240 adelante hablemos aquí he declarado una variable local porque está en un bloque muy concreto una 530 00:55:55,240 --> 00:56:01,200 función y aquí las que se generan dentro de la clase son las variables que se llaman globales 531 00:56:04,000 --> 00:56:11,480 es verdad que el otro día ya os deje caer también que cuando y voy a quitar esta variable global y 532 00:56:11,480 --> 00:56:17,440 vuelve a dar este fallo no os dije que por defecto si una variable y bueno vuelvo al de instanciar 533 00:56:17,440 --> 00:56:23,640 si una variable le ponemos sería el ice field es cuando conseguimos que podamos referenciar o 534 00:56:23,640 --> 00:56:27,800 capturar cosas desde el inspector no que es lo que hemos hecho con el prefax que hemos arrastrado 535 00:56:27,800 --> 00:56:33,480 vale y también nos dije otra forma de hacerlo que era poniendo delante la palabra public 536 00:56:33,480 --> 00:56:37,800 pública vale vais a ver que yo cuando ponga public aquí 537 00:56:37,800 --> 00:56:41,440 a ver si quiere 538 00:56:43,360 --> 00:56:46,800 pero que algo he hecho y he abierto 539 00:56:48,720 --> 00:56:49,520 el que está pasando 540 00:56:52,000 --> 00:56:53,680 vale cuando también tengamos 541 00:57:00,160 --> 00:57:02,120 no está bien en un segundo 542 00:57:02,760 --> 00:57:07,240 cuando tengamos variables públicas aunque ahora me esté dando fallo vale ya veremos que esto no 543 00:57:07,240 --> 00:57:13,000 sucede cuando lo hagamos en otros momentos voy a volver a declararla como variable global vale 544 00:57:13,000 --> 00:57:19,160 cuando es pública significa que va a trascender vale ahora os digo el por qué sucede esto va a 545 00:57:19,160 --> 00:57:25,880 trascender su propia cápsula e incluso en otros scripts distintos vale en otros en otras clases 546 00:57:25,880 --> 00:57:30,960 que tengamos podremos acceder a esta variable vale esto es más avanzado pero me sirve para 547 00:57:30,960 --> 00:57:35,960 entender que por defecto si no pone nada aquí como hemos tenido hasta ahora como me ha dicho el 548 00:57:35,960 --> 00:57:42,440 isa las variables son privadas vale es lo mismo poner esto de private que no poner nada vale 549 00:57:42,440 --> 00:57:48,280 porque se entiende que una variable que no declaramos su ámbito es privada cuando es privada 550 00:57:48,280 --> 00:57:53,280 es cuando ocurre esto que os estoy diciendo de que pues se encierra digamos la cápsula 551 00:57:53,280 --> 00:57:58,320 y sólo se puede referenciar a esta variable en su bloque vale cuando la ponemos en pública 552 00:57:58,320 --> 00:58:08,240 además unity tiene la aparte de permitir que en otros scripts podamos acceder vale si yo ahora 553 00:58:08,240 --> 00:58:14,800 mismo por ejemplo pusiera bueno es que es un poco avanzado esto ya lo veremos vale si pusiera un 554 00:58:14,800 --> 00:58:20,000 acceso a esta clase podría acceder a variable con decimales desde otro punto no desde el 555 00:58:20,000 --> 00:58:25,600 podría acceder a variable con decimales desde otro punto no desde otro código vale pero aparte 556 00:58:25,600 --> 00:58:32,720 tiene la capacidad de que cuando guardamos y volvemos a unity vais a ver que ahora existe 557 00:58:32,720 --> 00:58:37,760 esa variable igual que con el serialize fill vale que lo podemos aquí modificar venía por defecto 558 00:58:37,760 --> 00:58:43,200 el 5 con 5 que está declarado aquí vale pero aquí lo podemos modificar si os fijáis vale está 559 00:58:43,200 --> 00:58:49,440 preparada esto significa que no es lo mismo vale para que veáis y lees una cosa que no es lo mismo 560 00:58:49,800 --> 00:59:02,560 poner serialize fill tipo in lo que sea y variable serializada también me sirve para que veáis cómo 561 00:59:02,560 --> 00:59:09,400 voy escribiendo las variables es algo muy importante y la signo y le pongo un 5 con 8 562 00:59:09,400 --> 00:59:17,320 porque es un float vale vais a ver que yo cuando bueno porque da fallo porque he intentado guardar 563 00:59:17,320 --> 00:59:22,880 una variable float en un int vale entonces es igual es importante los tipos de variables cómo 564 00:59:22,880 --> 00:59:30,640 los vamos gestionando cuando ahora vaya al al escribir tengo las dos variables veis que aquí 565 00:59:30,640 --> 00:59:37,400 en apariencia hacen lo mismo pero si nos si aterrizamos aquí vemos que una es pública vale 566 00:59:37,400 --> 00:59:42,600 y eso será accesible desde otras clases de hecho veis que la clase ya por defecto no la declara 567 00:59:42,600 --> 00:59:48,680 pública también para que podamos comunicarnos con esta clase en otros puntos de del juego con 568 00:59:48,680 --> 00:59:53,680 este script en otros puntos del juego en otros códigos pero ésta realmente al no poner nada 569 00:59:53,680 --> 01:00:00,480 del ámbito vale en realidad privada no podremos acceder a esta variable desde otros puntos del 570 01:00:00,480 --> 01:00:05,960 script vale de los scripts de este sí porque está dentro de su ámbito pero no podremos ir a otros 571 01:00:05,960 --> 01:00:11,800 códigos que se llamen tal cual lo he hecho lo voy a hacer muy rápido vale aunque no entendamos 572 01:00:11,800 --> 01:00:16,800 tampoco tengo el script durante la tutoría y el script instancia y prefab que he preparado antes 573 01:00:16,800 --> 01:00:24,320 imaginaos que yo quiero cambiar desde instancia y prefab la variable variable con decimales por 574 01:00:24,320 --> 01:00:30,120 lo primero que habrá que hacer igual que hemos hecho aquí vale es decir durante la tutoría y 575 01:00:30,120 --> 01:00:37,120 veis que ahora voy a generar una variable que se ama igual que otro script y es que recordad al 576 01:00:37,120 --> 01:00:42,520 final las clases vale como os he dicho aquí se corresponde con el nombre de los componentes y 577 01:00:42,520 --> 01:00:48,440 cuando arrastramos un script como componente al final igual que existe transform pues existe 578 01:00:48,440 --> 01:00:54,600 el componente durante la tutoría es una caja que podemos crear entonces por eso existe aquí una 579 01:00:54,600 --> 01:01:01,760 caja y no da ningún fallo que se llama durante la tutoría y aquí lo puedo llamar como otro y en 580 01:01:01,760 --> 01:01:06,840 minúscula porque es una variable vale otro script y aquí está preparado y yo en el transform 581 01:01:06,840 --> 01:01:13,880 puedo decirle oye quiero que otro script vale acceder a sus propiedades y vais a ver que yo 582 01:01:13,880 --> 01:01:18,960 a medida que me vaya metiendo en sus propiedades con el punto como estoy apelando aquí hay una 583 01:01:18,960 --> 01:01:24,760 variable suya de durante la tutoría se llama variable con decimales pues vais a ver que yo 584 01:01:24,760 --> 01:01:31,800 doy al punto aquí existe una variable llamada variable con decimales y yo puedo decir oye pues 585 01:01:31,800 --> 01:01:39,800 esto quiero que valga 10 y aquí está cambiando el valor vale si yo guardo esto desde otro código 586 01:01:39,800 --> 01:01:48,280 estoy cambiando el valor de este 5 con 5 vale y de hecho vais a ver cuando empiece el juego vale 587 01:01:48,280 --> 01:01:54,760 que variable con decimales que por defecto debería ser 5 con 5 ahora como lo he cambiado pues está 588 01:01:54,760 --> 01:02:00,680 cambiado cuando lo como ahora os explico otra cosa como lo he cambiado en él en el componente pues se 589 01:02:00,680 --> 01:02:05,840 ha quedado con otro comportamiento pero yo cuando arranco el juego y pasa por ese start vais a ver 590 01:02:05,840 --> 01:02:13,320 que vale a ver hazme caso claro lo he cambiado aquí un segundito tú tú tú tú variable con decimales 591 01:02:13,320 --> 01:02:20,200 durante la tutoría instant si prefa vale y no se está ejecutando porque nuevamente este instant 592 01:02:20,200 --> 01:02:26,280 si prefa ahora no está en ninguno de los objetos a por si sí que está a ver está en script retainer 593 01:02:30,240 --> 01:02:34,920 vamos a hacer otra cosa porque no lo está cambiando en el editor pero sí que lo está cambiando 594 01:02:34,920 --> 01:02:42,440 realmente si aquí decimos en el update borro esto que en vez de enseñarme la vida me enseña lo que 595 01:02:42,440 --> 01:02:48,080 vale variable con decimales vale vais a ver que lo que pone cada fotograma es 10 y no el 5 con 5 596 01:02:48,080 --> 01:02:51,840 que está ahí vale entonces vuelvo a ejecutar 597 01:02:54,240 --> 01:03:01,600 5 con 5 pero bueno esto que está haciendo a ver un segundito 5 con 5 bla bla bla me enseña esto 598 01:03:15,640 --> 01:03:16,240 vale 599 01:03:18,080 --> 01:03:23,760 vale genial jesús 600 01:03:28,520 --> 01:03:31,520 un segundo solo por probar si es esto hasta luego jesús 601 01:03:34,960 --> 01:03:42,240 vale hay otro problema vale que es por lo que se usa el serialize fill en ocasiones que es que 602 01:03:42,240 --> 01:03:48,280 cuando tenemos aquí un script que vamos cambiando el valor vale lo que vamos escribiendo aquí se 603 01:03:48,280 --> 01:03:55,000 sobre impone a todo lo que vayamos cambiando entonces si aquí dejamos un valor ya puesto que 604 01:03:55,000 --> 01:04:00,000 es diferente al que venía por defecto se sobre escribe esa vale de hecho veis que yo aquí pongo 605 01:04:00,000 --> 01:04:10,000 33 con 2 y el que sale es 33 con 2 vale en ese caso habrá que ir operando de distinto modo porque 606 01:04:10,000 --> 01:04:15,960 como está haciendo público lo está variando aquí pero bueno no así no debería no debería 607 01:04:20,520 --> 01:04:25,240 pero porque esto en realidad lo estoy haciendo pero por porque veáis una cosa que no es ni 608 01:04:25,240 --> 01:04:29,200 siquiera esto pero un segundo que ya es por saber que estoy haciendo yo 609 01:04:30,520 --> 01:04:36,920 iba a ponerte entre 3 con 2 claro porque el ser que está sobre escribiendo vale este es el típico 610 01:04:36,920 --> 01:04:42,920 problema que pasa cuando tenemos un public vale y al final lo que estamos haciendo es cambiar el 611 01:04:42,920 --> 01:04:50,360 valor igual que hemos hecho con él con los valores de estos puntos vale lo estamos cambiando en él en 612 01:04:50,360 --> 01:04:55,400 el editor que es que básicamente en el editor estamos marcando que tiene que hacer unity y 613 01:04:55,400 --> 01:04:59,840 está sobreponiéndose a lo que hace el código lo que me importa de todo esto es simplemente que 614 01:04:59,840 --> 01:05:06,720 veáis vale esto suele tener otro uso pero lo que me interesa es que veáis que variable serializada 615 01:05:06,720 --> 01:05:13,440 como es private si yo voy aquí a durante la tutoría e intento acceder a cómo se llamaba igual 616 01:05:13,440 --> 01:05:18,720 que he podido acceder a variable con decimales a variable será serializada otro script 617 01:05:20,320 --> 01:05:26,320 vale no va a aparecer es decir no va a aparecer variable serializada e incluso aunque yo me ponga 618 01:05:26,320 --> 01:05:35,440 a intentar escribir que valga 20 yo que sé me da fallo porque simplemente hay bueno ya sé por qué 619 01:05:35,440 --> 01:05:42,600 no se está ejecutando no estaba guardando creo vale lo escribo bien en durante la tutoría yo 620 01:05:42,600 --> 01:05:48,360 aunque tengo esta variable aquí serializada vale no me la coge porque porque es privada hasta que 621 01:05:48,360 --> 01:05:54,800 yo no la haga pública yo no voy a poder acceder veis que ahora ya ha dejado de tener error esto 622 01:05:54,800 --> 01:05:59,200 simplemente me sirve que lo mismo todavía no sabemos aplicarlo me sirve para que veáis que 623 01:05:59,200 --> 01:06:05,040 las variables en ocasiones no se podrá acceder a ellas o no se podrá ver en el editor porque 624 01:06:05,760 --> 01:06:14,800 bueno pues porque no tienen el ámbito el acceso al ámbito correcto vale voy me estoy enrevesando 625 01:06:14,800 --> 01:06:19,840 mucho quizá con ciertas cosas y vamos a volver a donde nos hemos quedado con elisa pero lo que 626 01:06:19,840 --> 01:06:27,480 me importa es que ya sabemos que cada bloque veis irá dando fallo o no según el ámbito que tenga 627 01:06:27,480 --> 01:06:32,280 en donde se declara esta caja que no es lo mismo declararla aquí al comienzo de la clase que dentro 628 01:06:32,280 --> 01:06:41,440 del estar por ejemplo vale luego tenemos aquí un int y algo aquí un float que es en vida y 629 01:06:44,240 --> 01:06:50,920 yo que sé que es como los puntos que va a dar a la vida el power up cuando lo recojamos le voy 630 01:06:50,920 --> 01:06:56,320 a poner que 50 recupera media vida no lo suyo sería que se hubiera más de 100 pues el power 631 01:06:56,320 --> 01:07:01,480 up no te permitiera tener más de 100 pero vamos a obviar eso de momento vale lo que podemos hacer 632 01:07:01,480 --> 01:07:07,680 el otro día dijimos es que podemos hacer operaciones de vida más power up vale y que 633 01:07:07,680 --> 01:07:12,800 esto pues signifique algo no pero lo mismo hasta que no lo metemos dentro de un contexto de una 634 01:07:12,800 --> 01:07:20,840 caja vale no va a dar ningún resultado voy a poner vida actual y de actual que va a ser igual a la 635 01:07:20,840 --> 01:07:27,360 vida más power up vale y esto da un problema ahora mismo he generado dentro de estar porque digamos 636 01:07:27,360 --> 01:07:34,440 que sólo lo voy a ejecutar en el estar una variable llamada vida actual que da error vale 637 01:07:34,440 --> 01:07:40,720 y porque pensáis que puede ser así rápido igual no caes pero porque podría ser que de error porque 638 01:07:40,720 --> 01:07:45,600 realmente está bien configurado hemos hecho las cajas le hemos dado unos valores y estamos guardando 639 01:07:45,600 --> 01:07:51,200 dentro de otra caja tipo int estos valores estos dos valores que el otro día ya vimos que se podía 640 01:07:51,200 --> 01:07:55,560 operar de este modo porque pensáis que da falla si lo podéis 641 01:08:00,960 --> 01:08:10,760 por los paréntesis qué paréntesis entre entre paréntesis vida más power up vale lo hago esto 642 01:08:10,760 --> 01:08:16,680 en matemáticas los paréntesis es para dar el orden de ejecución de las operaciones pero aquí sería es 643 01:08:16,680 --> 01:08:21,160 indistinto a hacer esto que esto vale me digo que ese no es el problema ya pero vaya que buen 644 01:08:21,160 --> 01:08:26,080 intento me encanta que participéis por favor vale simplemente también para que lo veáis los tipos 645 01:08:26,080 --> 01:08:35,160 de cajas cuando sumamos 100 más 50 da 150 y es un entero no pero es verdad que aunque sea un entero 646 01:08:35,160 --> 01:08:41,200 esto lo hemos generado como un flow act es decir está esperando decimales y una vez tenemos decimales 647 01:08:41,200 --> 01:08:47,800 en una operación como sucede en power up ya no podemos meterlo en un float en un in perdón hay que 648 01:08:47,800 --> 01:08:53,360 meterlo en un flow por qué porque será susceptible a meter decimales porque pensad que si yo hubiera 649 01:08:53,360 --> 01:08:59,080 puesto esto vale que podría ser aquí el link jamás va a saber qué meter en esta caja porque 650 01:08:59,080 --> 01:09:04,720 se salen de su rango vale vais a ver que si yo pongo float el fallo deja de suceder vale importante 651 01:09:05,040 --> 01:09:12,080 hay digamos tipos de variables más restrictivas que otras y esto por lógica en el caso de los 652 01:09:12,080 --> 01:09:17,320 números por ejemplo es pues el que más flexibilidad va a tener pues es el que permite tanto tener 653 01:09:17,320 --> 01:09:23,840 números enteros como decimales pero veis que el int no lo permite hay formas de resolver esto 654 01:09:23,840 --> 01:09:29,000 cómo hacer conversiones pero bueno esto sí que es más avanzado lo usaremos más adelante cómo es 655 01:09:29,200 --> 01:09:35,560 transformar un objeto en otro tipo de variable con esto poniendo entre paréntesis el tipo de 656 01:09:35,560 --> 01:09:40,560 variable al que queremos convertir otra hemos dicho que el 50 con 5 bueno pues que como vamos 657 01:09:40,560 --> 01:09:45,040 a operar y nos interesa por lo que sea que sea un int pues que lo convierta en un in redondeando 658 01:09:45,040 --> 01:09:50,200 vale siempre redondea la baja en este caso pero estamos haciendo lo que se llama una conversión 659 01:09:51,400 --> 01:09:57,360 explícita vale estamos diciéndole cómo convertirlo vale simplemente lo que me sirve es que veáis que 660 01:09:57,360 --> 01:10:01,600 a veces os pueden dar fallos que decís de dónde me viene esto y es simplemente por el tipo de caja 661 01:10:01,600 --> 01:10:07,000 porque es más restrictiva del otro problema facilidad para saber identificar eso si os ponéis 662 01:10:07,000 --> 01:10:12,400 encima de un fallo y lo dejáis quieto vale os va a poner en la segunda línea en este caso no se puede 663 01:10:12,400 --> 01:10:17,800 convertir implícitamente el tipo float en int ya existe conversión explícita compruebe si le falta 664 01:10:17,800 --> 01:10:22,000 una conversión básicamente aquí lo que está diciendo es que no se puede convertir si no lo 665 01:10:22,000 --> 01:10:26,680 hacemos de manera explícita nosotros como he hecho antes con una orden que se puede ejecutar 666 01:10:26,680 --> 01:10:33,080 no se puede convertir un float en int porque es que no cabe en esa caja vale importante importante 667 01:10:33,080 --> 01:10:39,120 también eso que el tipo de variable puede determinar que puede haber dentro luego el otro día vimos 668 01:10:39,120 --> 01:10:45,320 también que había otro tipo entiendo que entre con todos estos problemas que pueden surgiendo lo que 669 01:10:45,320 --> 01:10:50,320 es un int y es un float y cómo se escribe un float para que no de error hasta aquí entiendo que bien 670 01:10:53,000 --> 01:10:59,600 y bueno así de fácil si yo ahora quisiera ver este valor en la consola como que lo está 671 01:10:59,600 --> 01:11:10,920 recibiendo lo está ejecutando si veo vida actual y guardo pues ahora al empezar el juego vamos a ver qué valor 672 01:11:10,920 --> 01:11:25,480 150 con 5 perfecto a ver que algo hay por aquí que a ver lo mismo puede ser varias cosas algo 673 01:11:25,480 --> 01:11:35,760 de lo que toca por ahí con decimales con decimales eso es que bueno os acordáis que yo había puesto 674 01:11:35,760 --> 01:11:36,260 varias 675 01:11:50,240 --> 01:11:56,800 esto es básicamente fijaos la que salía aquí vale nuevamente por lo de los hacerlo público 676 01:11:56,800 --> 01:12:02,880 no y operar mal yo borrar las variables que eran públicas para acceder desde aquí no y ahora vale 677 01:12:02,880 --> 01:12:07,840 dice durante la tutoría otro script pero ahora ya no existen estas variables el error aunque ha 678 01:12:07,840 --> 01:12:12,200 sido que hemos borrado aquí cosas está afectando a estas variables que ahora no sabe dónde existen 679 01:12:12,200 --> 01:12:17,600 vale como no las queremos lo voy a borrar pero ve que cuando comunicamos scripts entre sí vale 680 01:12:17,600 --> 01:12:22,120 guardo pueden venir los errores porque estamos hablando entre unos y otros y esto sirve también 681 01:12:22,120 --> 01:12:27,120 para hablar del ámbito que estamos hablando de que salga del bloque porque cuando empezamos a 682 01:12:27,120 --> 01:12:32,000 hacer códigos muy grandes si empezamos a hacer todo público que se puede hacer desde un lado 683 01:12:32,000 --> 01:12:37,600 a otro que suele parecer muy conveniente muy cómodo al principio como estamos comunicando 684 01:12:37,600 --> 01:12:41,440 distintos scripts surgen este tipo de problemas que es que vale estamos cambiando aquí un script 685 01:12:41,440 --> 01:12:46,080 pero también estamos afectando a otros scripts entonces si no tenemos un control claro de que 686 01:12:46,080 --> 01:12:50,680 está afectando aquí o no lo restringimos con cosas privadas o lo redirigimos de otras formas 687 01:12:50,680 --> 01:12:56,480 que ya iremos viendo también pues al final lo que sucede es que empiezan a surgir estos fallos y 688 01:12:56,480 --> 01:13:01,920 ahora es bastante pequeño el código pero nos puede volver un poco la cabeza del revés bueno 689 01:13:01,920 --> 01:13:08,400 iba a dar 15 con 5 si no me equivoco no 150 con 5 perdón pues ahí está 150 con 5 con su decimal 690 01:13:10,800 --> 01:13:16,720 imaginaos que yo quiero hacer una variable que se va a llamar nombre vale y esto es de repaso del 691 01:13:16,720 --> 01:13:23,920 otro día voy a pasar rápida y yo quiero que ponga mi nombre que ponga daniel vale he creado aquí una 692 01:13:23,920 --> 01:13:29,160 variable y como genero una variable que ponga daniel que tendría que poner de qué tipo tiene 693 01:13:29,160 --> 01:13:43,000 que ser una variable de texto esto lo vimos el otro día a ver vuelvo a la unidad cero que la 694 01:13:43,000 --> 01:13:50,240 tengo por aquí aquí vale en las variables pues ponemos las numéricas in y float y luego la de 695 01:13:50,240 --> 01:14:00,240 tipo string no podemos usar su valor se introduce delimitado por comillas vale vale sí bueno esto es 696 01:14:00,240 --> 01:14:06,840 otra cosa va delimitado por comillas no se os acordáis existe otro tipo de variable que se 697 01:14:06,840 --> 01:14:13,360 llama string en donde puedo llamarlo nombre vale dado que así es como se va a llamar aquí abajo 698 01:14:13,360 --> 01:14:19,160 cuando la mentemos y esto va a significar que se llama que yo quiero que aquí se guarde el valor 699 01:14:19,160 --> 01:14:25,040 daniel entre comillas vale ahora yo cuando lancé el juego esto lo vimos el otro día no sé si tenemos 700 01:14:25,040 --> 01:14:31,200 dudas de esto es muy importante que entendamos bien que cómo funcionan las variables tenemos 701 01:14:31,200 --> 01:14:39,920 a daniel vale que esto nuevamente yo puedo declarar aquí la variable y de aquí como está dentro del 702 01:14:39,920 --> 01:14:44,600 ámbito de donde se ha creado declarado la variable pues aquí es donde puedo decirle aquí quiero que 703 01:14:44,600 --> 01:14:50,920 se llame daniel vale y ahora pues el resultado será mismo será el mismo se verá daniel vale 704 01:14:52,120 --> 01:14:58,560 si queremos por ejemplo que en cierto momento del juego cuando vayamos metiendo datos en un menú 705 01:14:58,560 --> 01:15:04,520 pues por ejemplo podamos meter nuestra edad la edad importante pues siempre va a ser un entero 706 01:15:04,520 --> 01:15:11,400 no podemos decimales 25 este es el mismo ejemplo del otro día lo doy rápido recordad que como 707 01:15:11,400 --> 01:15:17,120 hemos visto antes dependiendo del tipo de variable pues aquí se va a lanzar de una forma u otra eso 708 01:15:17,120 --> 01:15:26,200 que significa que si yo pongo nombre más recordad que esto es la concatenación de textos esto también 709 01:15:26,200 --> 01:15:32,560 viene aquí explicado tú declarando variables aquí se va hablando un poco de lo que vamos 710 01:15:32,560 --> 01:15:41,480 hablando ahora vamos a hablar de booleano pero vais a ver que en unity a ver si no me equivoco viene por aquí 711 01:15:46,320 --> 01:15:53,960 empezar bueno todo lo que se esté comentando está más o menos recogido por aquí y aquí se 712 01:15:53,960 --> 01:16:00,000 habla de cómo se habla de cómo se van bueno aquí lo de que se ignoran los espacios en blanco las 713 01:16:00,000 --> 01:16:05,880 líneas vale que también lo hemos visto que cuando vamos sumando distintos aquí están los operadores 714 01:16:05,880 --> 01:16:12,120 de hecho seguro que está aquí cuando vamos hilando strings con números vale lo que va haciendo es 715 01:16:12,120 --> 01:16:17,280 concatenar ese texto es decir que no es una suma como tal igual que el igual no es igual y sirve 716 01:16:17,280 --> 01:16:24,840 para asignar una variable vale cuando hacemos nombre más edad vale que aquí no da ningún fallo 717 01:16:24,920 --> 01:16:31,480 al final lo que está haciendo es poner un string daniel y luego un número vale pero un número que 718 01:16:31,480 --> 01:16:37,200 en realidad no es un texto lo que pasa es que hay que entender que cuando en una concatenación de 719 01:16:37,200 --> 01:16:41,800 elementos con este más cuando unimos varios elementos unos de tipo texto el resto también 720 01:16:41,800 --> 01:16:46,720 se convierte en uno de tipo texto vale pasan a ser todo de tipo texto igual que hemos hecho antes 721 01:16:46,720 --> 01:16:53,080 con lo de convertir el flote en in vale daniel 25 no pone ningún espacio porque si recordáis 722 01:16:53,080 --> 01:16:59,480 también aquí dentro podemos empezar a con las comillas y las comillas sirven siempre para ir 723 01:16:59,480 --> 01:17:03,680 escribiendo nosotros textos literales no son cantidades que se suman y que se van a operar 724 01:17:03,680 --> 01:17:09,800 son textos literales y poner la edad de espacio vale porque los espacios también son literales 725 01:17:09,800 --> 01:17:20,000 concatenamos daniel no y ahora concatenamos es de 25 en este caso 726 01:17:22,120 --> 01:17:30,680 años vale esto cuando hagamos una ui para operar para ir pues eso metiendo nuestro nombre a jugar 727 01:17:30,680 --> 01:17:36,520 etcétera es vital que vayamos conociendo cómo se declaran yo ahora lo que voy a ver es la edad 728 01:17:36,760 --> 01:17:41,040 aquí hemos dejado una especie de variable que yo podré ir cambiando el valor incluso se puede ir 729 01:17:41,040 --> 01:17:45,960 cambiando durante el juego o guardará el valor que introduzcamos nosotros en un menú en plan 730 01:17:45,960 --> 01:17:53,000 poner a la nombre y ponemos jesús pues se guarda jesús en esta caja y aquí sabe perfectamente que 731 01:17:53,000 --> 01:17:57,920 lo que se guarda en esta caja en ese caso será jesús y la edad pues la metemos también y podrá 732 01:17:57,920 --> 01:18:05,600 ser 35 pues en ese momento cambiará para mostrar otro mensaje en otro punto de del juego vale lanzó 733 01:18:06,520 --> 01:18:12,400 y la edad de daniel es de 35 años fijaos que aquí falta un espacio básicamente porque 734 01:18:13,960 --> 01:18:20,120 deberíamos decir que literalmente aquí haya un espacio para que lo respete vale hasta aquí esto 735 01:18:20,120 --> 01:18:23,800 de hecho es el mismo ejemplo de la semana pasada hasta aquí más o menos vais pillando cómo 736 01:18:23,800 --> 01:18:28,400 funcionan los strings quedarse con que se ve escriben con estos 737 01:18:29,400 --> 01:18:37,960 a mí alguien me lo había escrito antes con estas comillas vale y es importante que lo interpreta 738 01:18:37,960 --> 01:18:44,920 como una cadena de textos literal luego por otro lado existe un nuevo tipo de caja que el otro día 739 01:18:44,920 --> 01:18:50,880 no hablamos que son las booleanas vale y una booleana sólo puede guardar dos valores verdadero 740 01:18:50,880 --> 01:18:57,560 y falso vale una booleana cuando generamos una variable pues será de tipo bull en este caso 741 01:18:57,560 --> 01:19:06,280 para que decir que es una booleana y aquí voy a poner semáforo encendido y voy a decir por 742 01:19:06,280 --> 01:19:14,280 defecto que sea true o false vale tiene dos variables es decir que estas booleanas pueden 743 01:19:14,280 --> 01:19:23,240 las booleanas así pueden ser true o false vale igualmente que siempre cuando sabemos que algo 744 01:19:23,240 --> 01:19:28,400 booleano si yo pongo un 5 no es la caja que corresponde y da fallo si yo hasta ahora pongo 745 01:19:28,400 --> 01:19:34,880 jose vale entre comillas como haría un string da fallo porque en esta caja booleana llamada 746 01:19:34,880 --> 01:19:40,520 semáforo encendido sólo puede estar o lo que suele significar true que está encendido vale 747 01:19:40,520 --> 01:19:48,320 que es verdadero esto que ocurre o es falso vale lo mismo esto en el tema en el tema cuando hablamos 748 01:19:48,320 --> 01:19:52,000 de las variables lo siguiente que pone aquí es booleanos pueden adoptar sólo dos valores 749 01:19:52,040 --> 01:19:57,720 predefinidos muy útiles para crear lo que se llaman interruptores o para indicar que algo 750 01:19:57,720 --> 01:20:04,360 está ocurriendo no estas booleanas se usan mucho y por eso puesto lo de semáforo sirven para decir 751 01:20:04,360 --> 01:20:10,320 si algo está ocurriendo o no vale y cuando hagamos condicionales decir como he dicho antes si la vida 752 01:20:10,320 --> 01:20:16,880 del personaje ya es 100 no se le puede cargar el power up porque está superando la cifra máxima 753 01:20:17,520 --> 01:20:25,080 a veces podemos decir oye mientras el personaje tenga y voy a poner indicador en vez de semáforo 754 01:20:25,080 --> 01:20:34,680 indicador máximo vida vale si yo empiezo el juego con la vida llena pues aquí estará true y entonces 755 01:20:34,680 --> 01:20:39,600 mientras esto sea true pues el power up no se va a poder coger porque no nos interesa vale ahora 756 01:20:39,600 --> 01:20:44,000 ya iremos viendo con las y esto está aquí introducido vale para que lo tengáis con las 757 01:20:44,000 --> 01:20:49,640 estructuras de control con los ships principalmente pero hay más vale iremos diciendo dando condiciones 758 01:20:49,640 --> 01:20:57,480 para que una cosa se ocurra o no ocurra no entonces en el momento que le demos un golpe a este y baje 759 01:20:57,480 --> 01:21:03,200 a 25 cuando pongamos una condición va a decir vale pues como baja de 25 y está comprobando que 760 01:21:03,200 --> 01:21:08,040 ya no es 100 esto va a decir pues ya no es falso no está con el indicador al máximo de vida y 761 01:21:08,040 --> 01:21:12,440 entonces en ese caso sí que le permitirá que cuando cojamos un power up de suma de la vida 762 01:21:12,440 --> 01:21:20,760 para que pase de 25 hasta 75 con 5 vale son como ahí pone pues eso conmutadores interruptores 763 01:21:20,760 --> 01:21:26,840 semáforos vale pues un semáforo puede estar encendido o apagado vale entonces las booleanas 764 01:21:26,840 --> 01:21:34,640 van a ser sobre todo muy útiles en el momento de pues de ir planteando ejecuciones e ir viendo 765 01:21:34,640 --> 01:21:41,120 si ciertas condiciones se van se están cumpliendo no vale ya veremos ejemplos de esto también 766 01:21:41,120 --> 01:21:46,240 importante vale en un debug log si decimos que enseñe lo que guarda indicador máximo vida 767 01:21:46,240 --> 01:21:51,880 vais a ver que lo que enseña vale en este caso es falso pues cuando ejecute el juego 768 01:21:54,200 --> 01:22:00,760 pues falso vale lo pone no es una cadena de texto es que no está cumpliendo la condición de hecho 769 01:22:00,760 --> 01:22:05,720 internamente el código lo que está leyendo es que este valor vale o 0 o 1 es verdad que lo traduce 770 01:22:05,720 --> 01:22:13,040 en falso verdadero pero falso es 0 y verdadero es 1 de hecho el otro día os dije que si una caja 771 01:22:13,040 --> 01:22:19,720 una variable no se inicializaba es decir no se le da un valor por defecto valía 0 o en el caso de 772 01:22:19,720 --> 01:22:26,840 los textos vale nulo no no tiene contenido no entonces si yo ahora ejecuto esta este debug 773 01:22:26,840 --> 01:22:31,240 log como no tiene nada en su interior lo que va a mostrar es 774 01:22:34,320 --> 01:22:41,120 falso vale en realidad es un 0 pero digamos que la condición es falsa que no es lo mismo vale 775 01:22:41,120 --> 01:22:45,400 simplemente por ver que existe también si ponemos true vale pues lo que va a enseñar es 776 01:22:45,400 --> 01:22:59,440 true a ver espera ahí está true vale hasta aquí qué tal sé que todo empieza a ser un poco abstracto 777 01:22:59,440 --> 01:23:05,280 ahora le quito un poquito de abstracción a esto de todos modos hasta aquí más o menos me vais 778 01:23:05,280 --> 01:23:13,640 siguiendo si más o menos vale todos habéis leído aunque no lo hayáis empezado a hacer el enunciado 779 01:23:13,640 --> 01:23:22,200 de la tarea 0 y lo que se quiere conseguir vale si no leerlo vale y lo entenderéis mejor lo que voy 780 01:23:22,200 --> 01:23:25,640 a decir ahora pero como doy por supuesto que sí que lo habéis leído porque es una de las cosas 781 01:23:25,640 --> 01:23:32,600 que os pedía para la tutoría de hoy vale al final lo que queremos conseguir es y voy a abrir el código 782 01:23:32,600 --> 01:23:39,320 que lo tenéis también y así lo podéis revisar más adelante lo pongo aquí vale era conseguir que una 783 01:23:39,320 --> 01:23:45,680 nave espacial una nave espacial en la que van impactando meteoritos pues vaya quitándole escudo 784 01:23:45,680 --> 01:23:53,520 no vida por decirlo de otra forma hasta que muere no y este es el código hay más formas de plantearlo 785 01:23:53,520 --> 01:23:58,760 pero es un código que resuelve el enunciado lo tenéis en el aula virtual lo podéis bajar y meterlo 786 01:23:58,760 --> 01:24:03,240 entonces para que vayáis viendo cómo se construye simplemente y vais a ver además que está muy 787 01:24:03,240 --> 01:24:09,760 comentado tenemos esta clase que se llama diagrama como se podría llamar un juego nave vale porque 788 01:24:09,760 --> 01:24:16,960 el descriptivo y al final lo que estamos haciendo es generar un float con la energía del escudo vale 789 01:24:16,960 --> 01:24:22,360 que empezará al máximo ahora vemos cuando ahora mismo vale 0 porque no lo hemos declarado solo 790 01:24:22,360 --> 01:24:28,600 un número de vidas vale porque el juego pues aparte de que muera la nave pues va a haber varias vidas 791 01:24:28,600 --> 01:24:33,720 no pierdes una vez y te resta una vida es decir va a haber la vida del 100 a 0 por ejemplo y luego 792 01:24:33,720 --> 01:24:39,200 pues tres vidas vale luego la fuerza del impacto que va a ir restando dos vidas cuando se choquen 793 01:24:39,200 --> 01:24:46,560 estos meteoritos luego va a haber un booleano vale un interruptor como estábamos diciendo que nos va 794 01:24:46,560 --> 01:24:50,960 a decir si estamos vivos o no que este interruptor básicamente lo que va a hacer es que mientras 795 01:24:50,960 --> 01:24:57,400 estamos vivos va a ser true porque si estamos vivos pero cuando nos muramos va a decir que es 796 01:24:57,400 --> 01:25:01,880 falso que estamos muertos básicamente no si lo traducimos a nuestro lenguaje y en el momento 797 01:25:01,880 --> 01:25:06,440 en el que este interruptor pasa a ser falso es decir que estemos muertos pues el juego va a saber 798 01:25:06,440 --> 01:25:11,160 decir va a entender ya el código que pues oye que el juego se ha acabado porque no estamos vivos 799 01:25:11,160 --> 01:25:16,240 hemos perdido toda la energía y también todas las vidas y luego aquí pues bueno hay un mensaje 800 01:25:16,240 --> 01:25:23,840 de que vamos a ir dando como avisos a en pantalla vale si os fijáis ya para ir viendo una especie de 801 01:25:23,840 --> 01:25:32,480 ejecución o de puesta en en algo menos abstracto no que es esto cuando iniciamos el juego cuando 802 01:25:32,480 --> 01:25:37,040 iniciamos el script lo que vamos a hacer es en ese momento arranca el juego arranca este script y 803 01:25:37,040 --> 01:25:41,160 vamos a llenar en las cajas que nos interesa en este momento para darle un sentido también al 804 01:25:41,160 --> 01:25:46,200 juego hasta este momento sólo hemos generado espacios que rellenar pero a empezar el juego 805 01:25:46,200 --> 01:25:53,160 cuando decimos oye quiero que el escudo de la nave sea de 100 vale y como se va a jugar con 806 01:25:53,160 --> 01:25:59,560 decimales vale pues lo hemos planteado como un float vale esto hay que tenerlo en cuenta como 807 01:25:59,560 --> 01:26:05,480 hemos visto después para pues para ir teniendo en cuenta problemas que puedan surgir vale que 808 01:26:05,480 --> 01:26:11,920 suelen ser fáciles de corregir pero hoy que nos pueden traer de cabeza pues tiene vida vale y 809 01:26:11,920 --> 01:26:16,800 aunque no ponga decimales como es un decimal es decir es un float mejor dicho ya pongo la f vale 810 01:26:16,800 --> 01:26:25,120 si no la pongo puede no dar problema pero veis que ser correcto tampoco conlleva ningún ningún 811 01:26:25,120 --> 01:26:30,360 castigo vale luego al comenzar el juego ojo estamos arrancando el juego y evidentemente 812 01:26:30,360 --> 01:26:36,960 pues arrancamos vivos si empezamos muertos pues ya sería mal asunto vale luego las vidas con las 813 01:26:36,960 --> 01:26:41,120 que arrancamos vale igual que está la energía pues tendremos tres vidas vale y luego veis que 814 01:26:41,120 --> 01:26:48,160 hay en el estar al arrancar una operación aquí que qué es por cómo se ha dicho antes como bueno 815 01:26:48,160 --> 01:26:53,400 en realidad lo pone aquí pero veis que se escribe igual que el instanci de antes es verdad que no 816 01:26:53,400 --> 01:26:59,760 hay nada dentro del paréntesis pero esto es un método o una función vale los métodos y funciones 817 01:26:59,760 --> 01:27:06,880 vale al arrancar el juego pone quiero que haya un impacto e impacto si yo voy a cualquier otro script 818 01:27:07,080 --> 01:27:12,240 si yo voy a leer durante la tutoría que estaba haciendo ahora y en estar yo pongo esto de impacto 819 01:27:13,680 --> 01:27:21,000 veis que no existe no sale vale no existe no es como instancié que instancié siempre existe 820 01:27:21,000 --> 01:27:27,800 no yo pongo instancié y ahí está esperando sus paréntesis y ahora está y sí que obliga a que 821 01:27:27,800 --> 01:27:35,880 haya aquí unas unos parámetros no vale como yo que sé vamos a poner aquí aunque de fallo pues vamos 822 01:27:35,880 --> 01:27:41,640 a poner bueno no tenemos ninguno de tipo objeto vale no puedo poner ningún parámetro aquí porque 823 01:27:41,640 --> 01:27:47,040 va a dar fallo porque nuevamente lo que nos está pidiendo es un GameObject lo que hemos visto antes 824 01:27:47,040 --> 01:27:52,720 que la primera sobrecarga su tipo tiene que ser de objeto vale pero no sale el impacto que os 825 01:27:52,720 --> 01:27:59,720 estaba diciendo antes ni bien ni mal no puedo hacer nada porque los métodos lo que vamos a empezar a 826 01:27:59,720 --> 01:28:04,600 hacer también es que los creamos nosotros es decir bajo un nombre que nosotros ponemos vale 827 01:28:04,600 --> 01:28:10,720 podremos ir y veis que está aquí meter nosotros nuestras operaciones dentro de un bloque en este 828 01:28:10,720 --> 01:28:16,760 caso fijaos que es largo y este bloque lo que va a hacer que llega hasta aquí el bloque impacto 829 01:28:16,760 --> 01:28:23,400 hasta aquí todo esto es impacto cuando yo ponga esta palabra vale se va a ejecutar lo que hay 830 01:28:23,400 --> 01:28:29,120 aquí dentro entonces vais a ver y esto también es importante que por primera vez cuando llegamos 831 01:28:29,120 --> 01:28:36,200 a un punto aquí vale saltamos de aquí a aquí en la ejecución luego irá el update que también 832 01:28:36,200 --> 01:28:43,080 tiene su impacto vale pero primero hemos estamos llamando a este impacto salta aquí y se va a 833 01:28:43,080 --> 01:28:52,720 reproducir lo que hay aquí dentro porque instantiate si existe y aquí existe por ejemplo si pongo el 834 01:28:52,720 --> 01:28:57,440 método instantiate como os he dicho antes el impacto no existía en el otro lado porque como 835 01:28:57,440 --> 01:29:02,360 os he dicho en varias ocasiones ya cuando empezamos cualquier script tiene unas librerías 836 01:29:02,360 --> 01:29:06,960 y también hereda ciertos comportamientos que es esto del mono behavior bueno que os suene 837 01:29:08,480 --> 01:29:15,280 que ya digamos que nos da operaciones preechas es decir para que leemos más cuando 838 01:29:15,840 --> 01:29:21,560 a ver si lo pone claramente aquí 839 01:29:23,120 --> 01:29:31,520 bueno existe la clase objeto vale que cuando yo me meto en instantiate vais a ver a ver me meto en 840 01:29:31,520 --> 01:29:36,800 esta con el control volvemos a meternos vale pone objeto instantiate es una de las que ha cargado 841 01:29:36,800 --> 01:29:43,480 ya en la librería vale hay otra clase en otro sitio que está guardada en la librería unity 842 01:29:43,480 --> 01:29:48,920 engine que cuando empezamos cualquier juego está aquí si yo por ejemplo intentara poner instantiate 843 01:29:48,920 --> 01:29:55,560 como siempre ocurre y cualquier cosa bueno en esta como no como no lo voy a rellenar no me va a dar 844 01:29:55,560 --> 01:30:00,600 fallos siempre pero fijaos que este instantiate funciona sin problema hasta que yo me cargo 845 01:30:02,400 --> 01:30:09,440 o lo comentó mejor aún comentó el unity engine y instantiate junto a otras muchas cosas fijaos 846 01:30:09,440 --> 01:30:15,640 en las clases dejan de funcionar vale entonces tenéis que ir entendiendo que existen las clases 847 01:30:15,640 --> 01:30:20,440 y los métodos que ya existen y luego los métodos que nosotros podemos ir haciendo para ir recopilando 848 01:30:20,440 --> 01:30:25,800 distintas acciones y que cada vez que pongamos esta frase pues hoy haga todo esto si yo quiero 849 01:30:25,800 --> 01:30:30,240 poner impacto varias veces en mi código pues no tengo que escribir todas estas líneas ya 850 01:30:30,240 --> 01:30:34,640 está recogido dentro de su propio bloque vale hasta aquí qué tal 851 01:30:36,800 --> 01:30:37,560 bueno 852 01:30:39,520 --> 01:30:46,280 hasta aquí bien si a ver es que yo he estado intentando hacerlo sin mirar esto que había 853 01:30:46,280 --> 01:30:52,640 expuesto conseguiría ningún error hasta lo de que me quedo sin escudo que ya y colapsé pero cuando 854 01:30:52,640 --> 01:30:58,480 meto el impacto no me lo reconoce me dice que no puede hacer un buey de impacto ya ha entrado ahí 855 01:30:58,960 --> 01:31:05,720 la tutoría tranquilamente y supongo que lo sacareis y no te pregunto realmente todavía no te no hemos 856 01:31:05,720 --> 01:31:11,040 explicado cómo se crea esto es decir todavía no ha explicado cómo se crea esto es decir que estoy 857 01:31:11,040 --> 01:31:17,400 que va más avanzada de lo que hemos explicado entonces vale así que bien te quiero decir 858 01:31:17,400 --> 01:31:23,360 solamente estoy como dejando caer muchas veces que cuando veamos una orden de este tipo con 859 01:31:23,360 --> 01:31:28,640 mayúscula y paréntesis estamos llevando un método y que hay métodos que ya vienen prehechos 860 01:31:28,640 --> 01:31:33,280 vale por estas librerías y otros que no que los hacemos nosotros ahora tenemos que aprender a 861 01:31:33,280 --> 01:31:39,920 hacerlo nosotros vale pero hasta aunque aunque aquí llegamos y lo que pone que invocamos a la 862 01:31:39,920 --> 01:31:45,120 función que realiza el impacto es decir que al empezar el juego estamos metiendo dentro de esta 863 01:31:45,120 --> 01:31:51,320 palabra impacto pues que haya un impacto que es lo que vamos a hacer aquí vale vale da igual 864 01:31:51,320 --> 01:31:59,280 ponerlo antes del voy a estar o después el impacto te refieres esto las declaraciones de las variables 865 01:31:59,280 --> 01:32:06,400 vale las variables cuando son globales no como hemos dicho antes pueden ir aquí o pueden ir al 866 01:32:06,400 --> 01:32:13,080 final y vais a ver que cuando las pongo al final vale dentro de la clase pero al final todo funciona 867 01:32:13,080 --> 01:32:19,920 porque porque está dentro de la clase entonces todo lo que se va metiendo en bloques inferiores 868 01:32:20,040 --> 01:32:25,560 pues puede acceder a estas clases pero sí que es verdad que es mucho más intuitivo y es la 869 01:32:25,560 --> 01:32:30,360 convención aparte que esto vive mucho de convenciones de que todas las incluso aunque 870 01:32:30,360 --> 01:32:35,320 luego sigamos picando código aquí abajo y queramos crear una nueva variable si queremos que sea global 871 01:32:35,320 --> 01:32:42,000 de toda la clase subimos y la ponemos aquí porque así de un vistazo rápido tenemos todas las que 872 01:32:42,000 --> 01:32:47,760 son globales ya englobadas se puede mientras esté en dentro del bloque correspondiente donde queremos 873 01:32:47,760 --> 01:32:52,960 que funcione que por eso he explicado lo del encapsulamiento funcionaría pero la convención 874 01:32:52,960 --> 01:32:57,840 dice que lo hagamos aquí vale de hecho hay más convenciones vale porque ahora mismo todas son 875 01:32:57,840 --> 01:33:05,520 private ya a veces iréis incluso viendo o que hay gente que dirá siempre que creo una variable 876 01:33:05,520 --> 01:33:11,600 private empiezo con una barra baja para que así al ir cambiándolo en el código vale saber que es 877 01:33:11,600 --> 01:33:16,040 una variable privada que no la voy a declarar mediante el inspector sino que la voy a ir 878 01:33:16,040 --> 01:33:20,400 declarando yo siempre a mano en el código porque no se puede ir al editorio unity cambiarlo si es 879 01:33:20,400 --> 01:33:25,560 privada no luego hay gente lo digo por por si encontráis que siempre que haga una variable 880 01:33:25,560 --> 01:33:31,120 global le pone m barra baja vamos habría que ponerlo en todas y todas las que va generando 881 01:33:31,120 --> 01:33:37,240 dentro de métodos o de niveles inferiores como este in por ejemplo pues va sin la barra baja y 882 01:33:37,240 --> 01:33:40,960 esto sirve para saber cuáles son variables globales y distinguir las de las que no pero 883 01:33:40,960 --> 01:33:48,280 esto ya son convenciones que va más adelante es decir que vamos primero a lo básico nada perdona 884 01:33:48,280 --> 01:33:54,160 que me preguntas una cosa y te correspondo con tres no no no pero es que así van sonando las 885 01:33:54,160 --> 01:34:03,240 cosas entonces se puede declarar incluso fíjate vale la quito de aquí pero aquí dentro vale 886 01:34:03,240 --> 01:34:07,920 digamos que aquí hay un bloque que se cierra aquí y aquí empieza otro es decir si lo declarar aquí 887 01:34:08,520 --> 01:34:12,920 también lo estoy declarando dentro de la clase y no da problema pero claro tú cuando luego quieras 888 01:34:12,920 --> 01:34:18,160 descubrir dónde están las variables de toda la clase como empieces a no organizarlo bien te vuelve 889 01:34:18,160 --> 01:34:24,640 loco por eso justo debajo de clase la que son las que son variables globales se declaran y además si 890 01:34:24,640 --> 01:34:28,760 trabajas en un equipo pues todos saben dónde está la variable globales y todos están contentos de 891 01:34:28,760 --> 01:34:35,160 encontrarlo rápido hay gente que lo pone al final por lo mismo porque saben que están al final de 892 01:34:35,160 --> 01:34:40,800 la clase y lo encuentran antes pero como luego dentro mismo es que se pueden crear varias clases 893 01:34:40,800 --> 01:34:46,320 que esta es otra cosa se crea la clase a continuación y si lo pone justo debajo de 894 01:34:46,320 --> 01:34:56,760 donde se declara pues más claro el mejor sitio vaya vale vale vale hasta aquí más o menos me 895 01:34:56,760 --> 01:35:00,280 vais siguiendo no más o menos vale 896 01:35:03,720 --> 01:35:09,680 voy a seguir unos 10 minutillos más o 20 vale pero voy a ver porque a veces me escribí las 897 01:35:09,680 --> 01:35:20,560 dudas aquí no necesito verlo por mi cuenta vale en él en las variables también habla a raíz esto 898 01:35:20,560 --> 01:35:25,280 es más avanzado vale pero es simplemente para que también os suene un array que a veces se puede 899 01:35:25,280 --> 01:35:31,960 llamar matriz o arreglo vale se pueden dentro de una sola caja meter muchos tipos de datos y de 900 01:35:31,960 --> 01:35:41,640 hecho un array para que os hagáis en cuenta cuando metemos aunque no está declarado específicamente 901 01:35:41,640 --> 01:35:47,840 a ver por qué no me está abriendo esto aquí cuando generamos una variable por ejemplo de transform 902 01:35:47,840 --> 01:35:54,200 no estamos metiendo un dato como en los números que metemos un 10 o daniel o 5 como os he dicho 903 01:35:54,280 --> 01:35:58,800 antes se están guardando un montón de valores vale al final esto si habéis estudiado matrices 904 01:35:58,800 --> 01:36:03,400 en matemáticas esto es un poco parecido a una matriz es decir que hay muchas posiciones de 905 01:36:03,400 --> 01:36:08,600 esa variable vale que os suene esto es más avanzada así que me lo salto ahora mismo vale 906 01:36:08,600 --> 01:36:14,200 ya tendrá más sentido más adelante en esta sección voy un poco en el orden ahora para para ir 907 01:36:14,200 --> 01:36:20,080 resolviendo dudas aquí veis lo que acabamos de hablar de cómo se declara la variable es un poco 908 01:36:20,440 --> 01:36:29,080 pues inconvenientes que se pueden encontrar etcétera y hay otro otras digamos instrucciones 909 01:36:29,080 --> 01:36:33,760 importantes otros operadores también vale que son estos que tenemos aquí estos son bastante 910 01:36:33,760 --> 01:36:39,960 importantes porque se usan de vez en cuando y si no pues de pronto saltáis esto porque no parece 911 01:36:39,960 --> 01:36:44,240 importante pero si lo es para poner trucos de programador como un extra pero no es una 912 01:36:44,400 --> 01:36:50,440 es importante vale es los operadores más más los operadores menos menos más igual y menos igual 913 01:36:50,440 --> 01:36:57,440 me quedo en estos vale no avanzó hoy no voy a avanzar más de aquí de las variables y bueno 914 01:36:57,440 --> 01:37:04,280 lo que hemos ido viendo de otras cosas en las variables acabamos de decir que existen estos 915 01:37:04,280 --> 01:37:10,760 operadores lo dejo aquí vale el más más y el menos menos a ver me voy al de durante la 916 01:37:10,760 --> 01:37:18,080 tutoría y voy a simplificar un poco esto vale en indicador máximo de vida era un booleano me voy 917 01:37:18,080 --> 01:37:22,400 a cargar todo lo que ya no me interese y me voy a quedar con un y por ejemplo vale para hacerlo 918 01:37:22,400 --> 01:37:27,800 más simple cuando estamos en cualquier punto del código puede haber momentos en los que queremos 919 01:37:27,800 --> 01:37:36,720 que una variable vaya sumando progresivamente de uno en uno su valor vale eso que significa 920 01:37:36,840 --> 01:37:42,400 que a veces hacemos lo que se llaman bucles vale si vais más adelante se habla del for del while 921 01:37:42,400 --> 01:37:50,880 de wildo bueno hay varios más avanzado también pero que lo que van haciendo esos bucles es ir 922 01:37:50,880 --> 01:37:58,520 recorriendo varios elementos y esos elementos van digamos siendo posiciones no pues por ejemplo 923 01:37:58,520 --> 01:38:04,440 imaginaos por decirlo así vemos el típico ranking de una recreativa antigua vale lo pongo aquí 924 01:38:05,240 --> 01:38:12,840 ranking recreativa a ver si sale lo que yo quiero que salga que no lo sé imágenes vale lo típico 925 01:38:12,840 --> 01:38:17,760 los mejores cinco resultados vale y esta va a ser la primera posición la segunda tercera la cuarta 926 01:38:17,760 --> 01:38:23,640 la quinta y ya no existen más entonces habrá un momento que nos va a ir interesando que vaya pues 927 01:38:23,640 --> 01:38:28,640 eso muestra la 1 cuando muestra la 1 muestra la 2 cuando muestra la 2 muestra la 3 veis que va 928 01:38:28,640 --> 01:38:35,000 sumando progresivamente en ese momento se usa este operador más más vale que es una forma de 929 01:38:35,000 --> 01:38:47,400 simplificar que sumamos 1 a la variable vale esto que significa que si yo ahora mismo pongo 930 01:38:47,400 --> 01:38:51,880 aquí vida vale que me va a mostrar en consola 931 01:38:56,800 --> 01:39:04,080 27 no 26 a ver lo pongo vale 25 le sumó 1 y 26 vale vamos a ello 932 01:39:06,360 --> 01:39:13,200 26 perfecto vale esto luego habrá otras operaciones que puede sumar más más cinco veces porque digamos 933 01:39:13,200 --> 01:39:18,360 que cinco veces pues irá pasando por las cinco posiciones para mostrar ese ranking vale es un 934 01:39:18,360 --> 01:39:27,280 operador muy importante si pones cuatro más eso más dos no no no no no si voy poniendo más se vuelve 935 01:39:27,280 --> 01:39:34,640 loco da fallo vale vale esto es lo mismo y esto es otra sintaxis que suele dar problema al principio 936 01:39:34,640 --> 01:39:39,640 vale que es que esto mismo es la forma resumida de escribir esto vale y vais a decir esto no 937 01:39:39,640 --> 01:39:47,680 tiene mucho sentido bueno hasta que hasta que lo tenga vale esto y esto es exactamente lo mismo 938 01:39:47,680 --> 01:39:54,640 vale y vais a decir como vida es igual a vida más uno no si lo pensamos en álgebra humana 939 01:39:54,640 --> 01:39:59,840 eso no tiene sentido porque estamos pensando como pensarían lo la matemática no las las 940 01:39:59,840 --> 01:40:06,240 ecuaciones pero recordad que aquí lo que estamos haciendo es esta caja esta variable vale es igual 941 01:40:06,560 --> 01:40:13,320 vale se le asigna lo que ya vale ahora mismo más uno entonces esto significa que lo que hay en esta 942 01:40:13,320 --> 01:40:19,840 caja vale es igual a lo que guarde la caja vale aquí está refiriéndose a abrir la caja y aquí 943 01:40:19,840 --> 01:40:24,800 se está refiriendo al contenido de la caja vale aquí siempre hablamos declarar la variable o llamar 944 01:40:24,800 --> 01:40:30,480 a una variable e inicializarla o cambiar el valor no el igual no es igual no es un igual de matemáticas 945 01:40:30,480 --> 01:40:37,080 es un asignador entonces vida es igual a vida más uno es decir en esta caja vamos a guardar lo que 946 01:40:37,080 --> 01:40:46,000 valga vida más uno y si volviéramos a poner aquí vida pongo otra vez esta línea vale cuando yo 947 01:40:46,000 --> 01:40:51,960 muestre otra vez la misma instrucción no son lo mismo vale qué pensáis que va a poner ahora en 948 01:40:51,960 --> 01:41:01,000 la cosa en la consola lo mismo 26 aquí 26 vale pero estoy diciéndole otra vez recordar está pero 949 01:41:01,000 --> 01:41:07,200 porque te coge en la segunda segunda orden que estás dando el resultado de la primera y no el 950 01:41:07,200 --> 01:41:11,640 resultado del que has declarado vale ahora lo explico simplemente lo voy a enseñar para que me 951 01:41:11,640 --> 01:41:18,640 creáis luego os lo explico que esto es bastante simple y a la vez bastante complicado veis que 952 01:41:18,640 --> 01:41:24,960 pone 26 y 27 volvemos a lo del encapsulamiento y cuando se declaran las variables vale tenemos 953 01:41:24,960 --> 01:41:31,480 una variable global aquí arriba vale con su caja y la inicializamos con 25 como podría ser con 954 01:41:31,480 --> 01:41:37,520 cualquier valor vale y vamos aquí y decimos vale en vida igual que en vez de antes decíamos ahora 955 01:41:37,520 --> 01:41:43,280 vale 70 y lo decíamos así a las bravas entonces aquí en señal 70 no esto lo vimos el otro día y 956 01:41:43,280 --> 01:41:48,880 lo hemos visto antes también quiero que sea lo que vale vida más 1 y aquí lo que está haciendo es 957 01:41:48,880 --> 01:41:55,120 coger todavía no lo hemos asignado está abierta la caja y aquí hacemos la asignación está volviendo 958 01:41:55,120 --> 01:42:02,920 a donde se declaró la variable coge este valor le suma 1 y lo guardan vida y lo leer arriba abajo y 959 01:42:02,920 --> 01:42:07,880 por eso sumado y aquí lo guarda como vida pero es que cuando volvemos a esta caja vuelve a abrir la 960 01:42:07,880 --> 01:42:14,520 caja y aquí ya no vale 25 a estas alturas vale a 26 y le sumamos uno y así progresivamente es 961 01:42:14,520 --> 01:42:23,520 decir si yo empezar a hacer esto pues sería 26 27 28 29 vale que es lo mismo vale lo vuelvo a 962 01:42:23,520 --> 01:42:29,920 decir en vez de escribir todo esto es lo mismo que decir esto es a la caja súmale 1 vale es 963 01:42:29,920 --> 01:42:35,640 exactamente lo mismo vale pero si lo quisiera mencionar en otra caja que se vinculara con los 964 01:42:35,640 --> 01:42:40,640 26 sí que le tendrías que asignar como otro nombre a vida para que la otra cápsula te lo 965 01:42:40,640 --> 01:42:46,480 reconociera por 26 en vez de por 25 o no no aquí lo que va haciendo claro tú me estás hablando de 966 01:42:46,480 --> 01:42:53,720 abrir otra variable distinta claro si tú abres otra variable pues esto se llamará muerte no sé 967 01:42:53,720 --> 01:43:02,240 y esto tendrá otro valor es decir vida y muerte son distintos es decir si yo aquí digo muerte y 968 01:43:02,240 --> 01:43:08,320 le pongo 800 por poner un valor muy distinto aquí es que muerte no está cambiando en ningún momento 969 01:43:08,320 --> 01:43:18,320 vale es verdad que yo puedo ir aquí decir muerte y aquí me va a enseñar vida 25 más 1 26 ha guardado 970 01:43:18,320 --> 01:43:24,640 26 en la caja en este momento ahora vuelvo aquí que ya vale 26 estoy llamando a la caja 26 más 1 971 01:43:24,640 --> 01:43:31,560 27 en este momento va a enseñar 27 vale vuelvo a llamar a la caja vida he guardado 27 aquí antes 972 01:43:31,680 --> 01:43:40,120 27 más 1 28 en este momento la caja vale 28 y aquí enseñará 28 y aquí valdrá 29 pero aquí no va 973 01:43:40,120 --> 01:43:44,320 a enseñar 29 porque es que lo que le estoy diciendo que enseñen no es vida no es lo que 974 01:43:44,320 --> 01:43:51,480 hay en la caja muerte entonces va a enseñar 26 27 28 y 800 vale pero si yo lo pusiera fuera de 975 01:43:51,480 --> 01:43:58,920 esas llaves sí sí que tendría que declarar de otra manera la vida más uno para que me lo reconociera 976 01:43:58,920 --> 01:44:04,000 porque estaría fuera de todas estas llaves sobre la no sé si me explico claro pero tú donde has 977 01:44:04,000 --> 01:44:09,760 declarado la variable es al comienzo es global entonces se va a poder usar en toda la clase sin 978 01:44:09,760 --> 01:44:18,840 problema el problema viene de que yo la declara aquí como está en el ámbito aquí sí que funciona 979 01:44:18,840 --> 01:44:27,480 no pero si yo luego en el update pongo vida pues es lo de antes aunque yo ponga vida más uno es que 980 01:44:27,480 --> 01:44:33,840 no sabe que es vida porque está fuera de su ámbito vale sin embargo muerte sí porque muerte 981 01:44:33,840 --> 01:44:44,440 está aquí muerte se va a poder poner muerte es igual a 55 vale o mejor aún mira si me va siguiendo 982 01:44:44,440 --> 01:44:51,800 sí vale o mejor aún voy a comentar esto para que en el estar no haga nada y no os haga muchos 983 01:44:51,800 --> 01:44:57,680 numerajos pero imagínate que en el update que recuerda que se va se va planteando en cada 984 01:44:57,680 --> 01:45:05,400 fotograma vale quito lo de muerte 55 digo que cada fotograma me enseña lo que vale muerte que esto por 985 01:45:05,400 --> 01:45:14,360 ejemplo puede servir para un contador aquí muerte qué crees que va a pasar como la declarado arriba 986 01:45:14,360 --> 01:45:20,240 la puedo como es global la puedo hablar de muerte de esta variable en cualquier lado que va a ir 987 01:45:20,240 --> 01:45:30,240 pasando que va a asumir 801 802 803 porque lo has puesto cada fotograma exacto empieza valiendo 988 01:45:30,240 --> 01:45:36,320 800 en el fotograma siguiente le digo ojo súmale 1 y me lo enseñas y aquí guarda 801 porque está 989 01:45:36,320 --> 01:45:43,920 fuera del update en el siguiente 801 súmale 1 vale pues se señalará 802 y guarda 802 y ahora 990 01:45:43,920 --> 01:45:49,280 vas a ver que tenemos como una especie de contador muy poco refinado pero a saber que 991 01:45:49,280 --> 01:45:58,400 cada fotograma pero sí vale ahí va a ir sumando cada fotograma que por segundo se ejecuta mucho 992 01:45:58,400 --> 01:46:03,240 fotograma vale por eso va como a saltos pero sí que se están sí que se están planteando vale 993 01:46:03,240 --> 01:46:09,560 vez que va sumándose que no va de uno en uno bueno si vas parando si van de uno en uno pero 994 01:46:09,560 --> 01:46:15,480 se ejecuta más rápido del uno en uno vale entonces pues mira por ejemplo una aplicación practicamos 995 01:46:15,480 --> 01:46:20,280 para hacer un contador pues mira el más más puede servir y lo mismo esto es igual a muerte 996 01:46:20,280 --> 01:46:26,840 más uno es exactamente lo mismo va a dar el mismo resultado si quieres lo comprobamos pero si lo da 997 01:46:26,840 --> 01:46:34,600 vale y vale muerte más uno vuelvo aquí a los apuntes vale este operador importante que sepáis 998 01:46:34,600 --> 01:46:42,800 como bueno esto lo apago que ya está aquí usado cuántas cosas vale y esto también esto que estoy 999 01:46:42,800 --> 01:46:48,640 poniendo de vida más vida igual vida más uno también se puede poner con otra forma resumida 1000 01:46:48,640 --> 01:46:53,200 que son éstas vale bueno ojo no he puesto el menos menos pero el menos menos lo que va haciendo 1001 01:46:53,200 --> 01:46:57,800 restar uno vale cada vez que se invoque igual si queréis hacemos las pruebas pero por no perder 1002 01:46:57,800 --> 01:47:05,200 tiempo pero existe el más igual y el menos igual vale si yo voy al más igual lo que se puede hacer 1003 01:47:05,200 --> 01:47:10,680 es para no tener que repetir que incluso es la confusión que nos viene siempre en vez de poner 1004 01:47:10,680 --> 01:47:15,560 muerte igual a muerte más uno cuando se va a hacer una operación sobre la misma variable sobre 1005 01:47:15,560 --> 01:47:22,400 la propia variable se puede hacer igual más uno y esto que significa que muerte pasa a valer lo 1006 01:47:22,400 --> 01:47:30,240 que valga más uno o más siete en este caso vale ahora se van a ir sumando de 7 en 7 va a ir 807 1007 01:47:30,240 --> 01:47:35,000 814 vale y cada fotograma va a ir enseñándolo 1008 01:47:38,320 --> 01:47:43,680 vale porque no lo está haciendo bien pues por una cosa muy simple que es que he puesto igual 1009 01:47:43,680 --> 01:47:53,240 más no más igual vale importante no he puesto igual más y la operación es más igual ahora mismo esta 1010 01:47:53,240 --> 01:47:58,600 línea como no tiene sentido vale le está diciendo que era un 7 positivo básicamente entonces siempre 1011 01:47:58,600 --> 01:48:03,720 vale 7 que no es lo mismo que que cada vez que de una vuelta en este caso vaya sumándole 7 1012 01:48:04,880 --> 01:48:13,160 ahora sí que va a ir 800 807 va a ir lo paro porque si no es todo se vuelve loco vale 807 1013 01:48:13,160 --> 01:48:20,040 va sumando 7 en cada ocasión que es la cifra que hemos puesto vale si aquí lo pusiéramos con el 1014 01:48:20,040 --> 01:48:24,920 menos aquí lo bueno es que podemos determinar que sean saltos más allá del 1 vale porque en el más 1015 01:48:24,920 --> 01:48:30,640 más y que es 1 por ejemplo aquí también podríamos poner 7 por ejemplo si aquí ponemos que vaya 1016 01:48:30,640 --> 01:48:39,800 restando 1 en cada fotograma pues era lo paro y voy para arriba para ver lo que ha hecho 1017 01:48:41,720 --> 01:48:48,080 se haciendo más restando 1 en cada vuelta vale eso es importante qué tal hasta aquí 1018 01:48:48,600 --> 01:48:51,120 bien si no más o menos iba 1019 01:48:53,240 --> 01:48:59,680 para el próximo día me quedo con esto siguiente con el último vale esta página más o menos estaría 1020 01:48:59,680 --> 01:49:06,120 vista en falta de los arrays que los arrays lo vemos poco después y tardaré un poco en hablar 1021 01:49:06,120 --> 01:49:11,160 de ellos pero aquí hay otra línea que sirve para invertir booleanos pero bueno ya lo veremos cuando 1022 01:49:11,600 --> 01:49:17,880 cuando veamos la aplicación más aplicada por decirlo así entonces hasta aquí que 1023 01:49:18,760 --> 01:49:26,320 esta página más o menos la debería y si ya entendiendo vale entonces hay una última cosa 1024 01:49:26,320 --> 01:49:32,600 que quiero que sepáis que es que antes lo hemos visto que es por un lado que cuando tenemos algún 1025 01:49:32,600 --> 01:49:37,880 a ver que lo voy a tener que crear porque no lo tengo cuando tenemos algún valor público o con 1026 01:49:37,880 --> 01:49:45,720 sería la isfil como aquí a ver sería la isfil es decir que lo asignamos lo podemos asignar por 1027 01:49:45,720 --> 01:49:52,600 el editor no como hemos hecho pero en este caso es un número vale yo aquí le ha asignado 800 y 1028 01:49:52,600 --> 01:49:57,720 esto lo voy a comentar vale para no complicarlo más vale yo aquí le estoy diciendo que esto vale 1029 01:49:57,720 --> 01:50:05,840 800 vale y yo voy y voy a la escritura ante la tutoría y vale 800 vale y yo digo bueno no 800 1030 01:50:06,800 --> 01:50:14,760 950 vale es verdad que aunque bueno y en el start voy a decir que me enseñé que está guardando 1031 01:50:14,760 --> 01:50:22,200 muerte porque si no no sabemos que está interpretando internamente el programa vale cuando 1032 01:50:22,200 --> 01:50:28,400 empiece el juego enséame lo que vale muerte y aquí yo inicializar inicializado muerte pone 800 lo lógico 1033 01:50:28,400 --> 01:50:33,480 sería que pusiera 800 que era el problema que estaba dando antes yo cuando voy y arranco el 1034 01:50:33,480 --> 01:50:42,640 juego que es lo que me pone 950 vale quiero que entendáis que los códigos vale igual que si aquí 1035 01:50:42,640 --> 01:50:48,920 pongo 800 y al arrancar el juego aunque aquí la haya declarado luego ponga muerte igual a 1000 1036 01:50:50,000 --> 01:50:55,320 vale aquí si no lo tuviera serializado y lo cambiara vale lo que me va a enseñar es 1000 1037 01:50:55,320 --> 01:51:01,640 porque al arrancar aquí este de comienzo declara inicializado como 800 luego al arrancar el juego 1038 01:51:01,640 --> 01:51:06,600 digamos que hay una operación posterior que es que al arrancar el juego pues oye me dice que vale 1039 01:51:06,600 --> 01:51:11,600 1000 entonces lo que me va a enseñar es 1000 pero hay algo más allá incluso que es que todo lo que 1040 01:51:11,600 --> 01:51:16,680 hagamos en el inspector más allá del código más cercano digamos a la ejecución sobrescribe a lo 1041 01:51:16,680 --> 01:51:22,840 que vamos haciendo en el código por tanto podremos ir variando veis verá que vuelve a salir aquí ha 1042 01:51:22,840 --> 01:51:28,280 salido el 1000 porque es verdad que cuando arranca el juego aunque yo haya cambiado esto vale 1043 01:51:29,200 --> 01:51:36,760 como yo he cambiado el juego y le he dicho al arrancar la ejecución ponmelo en 1000 vale 1044 01:51:36,760 --> 01:51:42,200 sobre escribe al empezar el juego en un momento de ejecución lo que yo haya hecho tanto en la 1045 01:51:42,200 --> 01:51:47,920 declaración inicial vale como en la sobrescriptura que tenemos aquí que sí que es verdad que si no 1046 01:51:47,920 --> 01:51:52,240 hiciera nada más vale como no hay un momento de ejecución no hay un momento en el que lo vuelve 1047 01:51:52,240 --> 01:51:57,680 a cambiar pero tener ojo con que a veces poner aquí las instrucciones puede dar este tipo de 1048 01:51:57,680 --> 01:52:02,760 problemas que hay un orden de ejecución ya os iréis pegando con ello no sé si me vais siguiendo 1049 01:52:02,760 --> 01:52:08,840 pero eso aquí al inicializar pues damos un valor pero luego hay momentos de ejecución con el estar 1050 01:52:08,840 --> 01:52:14,800 y el update que van pueden ir sobre escribiendo valores pero este sería el y se realiza o de 1051 01:52:14,800 --> 01:52:22,920 serialize fil pero no es por el joder y el public también se puede variar dentro de el propio del 1052 01:52:22,920 --> 01:52:33,320 propio script y de hecho para que os hagáis una idea yo aquí pongo serializar el campo vale lo 1053 01:52:33,320 --> 01:52:39,960 inicialice como 800 al empezar lo pongo en 1000 y quiero que el mío la muerte me lo vaya enseñando 1054 01:52:39,960 --> 01:52:44,560 en el update que cada fotograma me vaya enseñando esta cifra y guardo y vais a ver qué pasa una 1055 01:52:44,560 --> 01:52:51,440 cosa que mezcla todo esto que acabo de decir yo arrancar el juego al arrancar se me pone en 1000 1056 01:52:51,600 --> 01:53:00,000 sobre escribiendo esto que está en 1132 no a ver placa se pone 1000 y vale por 1000 me la ha puesto 1057 01:53:00,000 --> 01:53:05,600 1000 incluso aquí pero cuando yo ya he arrancado el juego como digamos que esta orden ya se ha 1058 01:53:05,600 --> 01:53:10,680 ejecutado y no lo va a sobre escribir al final lo que va a importar es lo que yo vaya poniendo aquí 1059 01:53:10,680 --> 01:53:16,520 y veis que va cambiando el valor y podría ir cambiando desde el editor a mano ciertos valores 1060 01:53:16,800 --> 01:53:24,160 vale que suene pero para qué pues por ejemplo imagínate que quieres probar hacia dónde se 1061 01:53:24,160 --> 01:53:29,760 mueve una nave de una forma intuitiva vale porque tú cuando acaba cuando arrancas el juego no puedes 1062 01:53:29,760 --> 01:53:34,680 cambiar el código el código digamos que una vez arranca no se puede cambiar pero nos puede 1063 01:53:34,680 --> 01:53:39,960 interesar probar cosas que sí que se ejecutan durante el juego como esto que se está cambiando 1064 01:53:39,960 --> 01:53:45,760 el código no es que estoy cambiando el código aunque no lo parezca aunque no salga en el césar 1065 01:53:45,760 --> 01:53:51,040 es como si estuviera cambiando claro yo con este sería la fil estoy accediendo a esta variable en 1066 01:53:51,040 --> 01:53:57,280 todo momento y siempre y cuando sea en un momento de ejecución que se pueda ver cómo voy cambiando 1067 01:53:57,280 --> 01:54:01,320 el valor de muerte yo en todo momento tengo abierta esta caja en vez de cambiarlo como aquí 1068 01:54:01,320 --> 01:54:08,080 lo estoy cambiando pero por el editor en vivo vale yo lo que vale muerte lo estoy cambiando 1069 01:54:08,080 --> 01:54:16,040 ahora mismo en este mismo instante muerte no vale ni 800 ni 1000 vale 1657 ya lo iré viendo 1070 01:54:16,040 --> 01:54:20,600 sobre todo mira en el siguiente tema ya de hecho tiene aplicaciones así que ya lo veréis vale e 1071 01:54:20,600 --> 01:54:26,200 importante si en algún momento queréis ir viendo cómo va pues por ejemplo lo del más uno que va a 1072 01:54:26,200 --> 01:54:32,000 cada fotograma aquí vais yendo fotograma fotograma aquí da igual porque mira como está parado el 1073 01:54:32,000 --> 01:54:40,640 juego si yo ahora cambio a 1896 al ir al siguiente fotograma pues 1896 vale que en ocasiones puede 1074 01:54:40,640 --> 01:54:44,600 que queramos ir viendo qué va pasando cada fotograma en vez de aquí una sucesión de 1075 01:54:44,600 --> 01:54:51,160 elementos pues continúa vale que se puede detener el juego y se para ahí y podemos ir fotograma 1076 01:54:51,160 --> 01:54:57,640 fotograma ejecutándolo vale y ya última cosa bueno hasta aquí qué tal más o menos sé que son muchas 1077 01:54:57,640 --> 01:55:02,120 cosas pero bueno veis que están escritas en el tema también y en los vídeos de álvaro holguera 1078 01:55:02,120 --> 01:55:08,000 también se ven ciertas cosas que estoy hablando aquí vale que esto es un mejunje de cosas pero 1079 01:55:08,000 --> 01:55:15,160 que poco a poco iréis asimilando al menos los que vayáis siguiendo las clases hay una última cosa 1080 01:55:15,160 --> 01:55:22,440 muy importante que es que cuando vayamos cambiando cosas en vivo yo puedo decir ahí yo arranco el 1081 01:55:22,440 --> 01:55:28,240 juego y se me pone en 1000 siempre vale y aquí empiezo a guardar y vais a ver que yo cuando detengo 1082 01:55:28,240 --> 01:55:33,000 el juego me vuelve al otro valor que estaba guardando antes de empezar no por ejemplo 500 1083 01:55:33,000 --> 01:55:38,280 no arranco el juego se va sobre escribir a 1000 que es lo que hace al arrancar el juego y me pongo 1084 01:55:38,280 --> 01:55:46,240 a cambiar esto a 192 y por lo que sea yo quiero que en 192 se deje aquí digamos sobre escrito el 1085 01:55:46,240 --> 01:55:51,400 valor veréis que cuando yo detenga la ejecución del juego vuelve a 500 que es el que yo había 1086 01:55:51,400 --> 01:55:57,920 metido a mano esto significa que hay cambios que podemos ir haciendo en el o más fácil mirad si me 1087 01:55:57,920 --> 01:56:03,440 estoy yendo por las ramas tengo aquí colocada la nave y quiero que se mueva y lo voy a ir cambiando 1088 01:56:03,440 --> 01:56:08,360 en tiempo real en estas coordenadas vale quiero cambiarlo en estas coordenadas todos estos cambios 1089 01:56:08,360 --> 01:56:13,880 que yo voy haciendo vale todos estos cambios que yo voy haciendo imaginaos que yo hay un momento 1090 01:56:13,880 --> 01:56:18,480 que voy a decir quiero que la nave se quede aquí que la he ajustado pero como estoy en ejecución 1091 01:56:18,800 --> 01:56:24,320 durante la ejecución los cambios que vamos haciendo sólo funciona durante la ejecución cuando yo pare 1092 01:56:25,080 --> 01:56:30,600 vuelve a los valores que tenía antes de la ejecución vale por tanto cambios que hagamos en vivo el 1093 01:56:30,600 --> 01:56:37,980 siguiente tema vamos a hacer cuidado que se hacen y no se guardan vale por eso veréis que cuando yo 1094 01:56:37,980 --> 01:56:43,720 le doy al play se oscurece un poco el área vale se oscurece un poco el entorno vale indicando que 1095 01:56:43,720 --> 01:56:47,920 estamos dentro de la ejecución y un poco advirtiendo que cambio que hagamos en los parámetros pues no 1096 01:56:47,920 --> 01:56:55,800 se guardan vale último consejo para cambiar este color y que sea aún más obvio cuando podemos o 1097 01:56:55,800 --> 01:57:04,120 no cambiar los elementos sin que se guarden vale dentro de edits hay una pestaña de preferencias 1098 01:57:04,120 --> 01:57:10,480 creo que siempre confundo estas dos en preferencias edit preferencias están los colores del sistema 1099 01:57:10,480 --> 01:57:18,240 vale ya hay uno bastante interesante de modificar que yo ya lo haría y esto se guarda siempre que 1100 01:57:18,240 --> 01:57:24,720 no instaléis otra versión de unity o vayáis a otro ordenador etcétera es decir entre distintos 1101 01:57:24,720 --> 01:57:28,560 juegos incluso que uséis la misma versión de unity se va a mantener en vez de decirle que 1102 01:57:28,560 --> 01:57:33,600 sea el tintado de este gris tan sutil que tenemos lo podemos exagerar a ello que sea un rojo de 1103 01:57:34,600 --> 01:57:40,760 cuando lo tengamos ahí configurado el play mode tint el tinte de modo de juego ahora cuando ejecutemos 1104 01:57:40,760 --> 01:57:46,400 el juego vais a ver que se tiñe de otro color lo podéis poner más o menos llamativo ahora todo 1105 01:57:46,400 --> 01:57:52,400 cambio que vayamos haciendo mientras estemos en este modo vale sabemos que cuando detengamos 1106 01:57:52,400 --> 01:57:57,760 la ejecución del juego placa no ha servido para nada excepto a lo mejor para tener clara la 1107 01:57:57,760 --> 01:58:02,840 referencia de dónde queremos ubicar algo en este caso etcétera vale entonces es importante que a 1108 01:58:02,840 --> 01:58:12,040 lo mejor cambies ya en edit preferencias este color ponerlo en algo intermedio no tan rojo 1109 01:58:12,040 --> 01:58:16,720 saturado porque al final este color se añade al que tiene ya la interfaz pues yo que sé algo así 1110 01:58:16,720 --> 01:58:22,160 rosadito y cuando le deis pues ya os marca que estáis como en el momento warning 1111 01:58:24,280 --> 01:58:30,280 bueno sé que os he dicho muchas cosas la grandísima mayoría están en los apuntes 1112 01:58:30,280 --> 01:58:37,480 realmente de una forma quizá menos desarrollada no claramente pero bueno que espero que poco a 1113 01:58:37,480 --> 01:58:43,880 poco vayáis teniendo un poquito más de información y la vais ubicando bien cuando arranque mañana el 1114 01:58:43,880 --> 01:58:51,360 tema 2 vais a ver que hay más tipos de variables aún los usos y vais a empezar a implementar cosas 1115 01:58:51,360 --> 01:58:56,760 que hemos estado viendo y hasta ahora son un poco abstractas vale y empezaremos a ver los 1116 01:58:56,760 --> 01:59:05,440 condicionales las funciones etcétera poco a poco vale vale qué tal mucha sobrecarga de cosas 1117 01:59:05,440 --> 01:59:14,280 un poco vale bueno estamos en noviembre pues queda mucho y yo intento meter un poco de caña 1118 01:59:14,280 --> 01:59:22,760 porque sí porque si no esto se va a complicar como el año pasado una locura tan con tu asignatura 1119 01:59:22,760 --> 01:59:27,200 no pero como que al final se acumula mucho a final de curso a que mejor ir poco a poco yo 1120 01:59:27,200 --> 01:59:31,320 en este módulo en el montaje no lo digo tanto pero en este módulo creo que fue de las primeras 1121 01:59:31,320 --> 01:59:36,120 frases que dije como no la llevéis al día va a costar mucho mucho y bueno y si os queréis 1122 01:59:36,120 --> 01:59:39,920 dedicar a algo de desarrollo de juegos pues con más razón