Pues el truco y con esto acabamos, es el siguiente.
Fijaros, vosotros queréis que la variable sea pública, yo quiero que sea privada para que no me la
toque.
Cuál es la solución?
Bueno, pues se hace privada, porque lo digo yo.
Si era algo privada me voy a cargar la mitad del código correcto.
El truco está que la variable es privada.
Que sea privada significa que sólo mi clase va a poder acceder a ella.
De hecho, voy a hacer un pequeño paso más, voy a ser privada.
Y cómo es un miembro de esta clase?
Con lo que os he contado antes, a pesar de ser booleana, le pongo una barra abajo.
Esto significa que donde acceder a ella ahora habrá errores en el propio Player Controller.
Aparecerá un error que me da error esta variable no pasa nada.
Es normal porque la hora la he llamado con barra baja, meterle la barra baja, pero aún tengo el error
en los otros scripts porque es privada, ja.
Hace lo siguiente Estás privada, pero voy a crear otra pública sin barra baja que se llama igual Public
vull mover.
Ya os sugiere este goy mover chino que mover me está sugiriendo añadir un getter y un suéter therion
setter son pequeños métodos asociados a variables que de hecho reciben un nombre.
Variables auto computadas son variables que automáticamente se calculan y que están relacionadas con
otras.
Estas variables pueden ser de lectura, solo de lectura o de lecto escritura si queréis que una variable
sólo sea leída por otro script.
Esta opción JEET si queréis que sea leída y a lo mejor escrita jet set.
Si hacéis un jet set os saldrá esta cosa de que tan chula que se lea así.
El valor público de la variable que mover que me lo ha puesto en mayúscula obtiene el valor de su privada
homónima con barrabas y se cta, del modo que cuando alguien cambia el valor de esta variable se lo
está cambiando a la variable barra baja que conmoverlo veis como yo en los otros Crips la he puesto
en minúscula.
Dejadme que le cambie esto y luego lo cambio bien.
Si yo la pongo en minúscula ves que me han desaparecido los errores, porque cuando aqui está consultando
de player controller la variable goy mover en minúsculas la variable que mover en minúsculas como un
jet veus que está devolviendo el valor de barra baja que mover, y de hecho lo podéis ver porque solo
este está de color verde.
Veis que el set está de color negro o gris?
Esto significa que nadie está usando el set, no lo está usando absolutamente nadie y lo que hacemos
es no lo cargamos.
Esta sintaxis que veis aquí es una sintaxis bastante moderna.
A mí me gusta mucho, se llaman funciones lambda y es una forma de escribir código cada vez más corto.
Si solo es de una línea, esto es la forma más rápida de decir, pues la función g.t hace esto en la
jerga que vosotros conocéis de programación conmigo.
Lo hubiéramos puesto así de llave y dentro de la llave hay mover, vale.
De hecho, retour mover esto sería la sintaxis que conocéis entre llaves y ya está.
Esta es la clásica, la estándar.
Que pasa que Unity se está moviendo bastante sintaxis, funciones lambda de todo lo que pueda hacer
en una línea, cargarse las llaves y poner esta flechita y obviar palabras como return o demás, todas
las técnicas de mapreduce filter y demás que veremos en algún momento si se suelen programar así con
funciones lambda.
Y esto, de hecho, es una sola línea.
No puedo acceder así.
Y esto es la forma en la que se programa un GTA, es decir, el valor público de la variable que mover
es exactamente el mismo que el de la variable privada barrabas mover.
Además, si lo haces conget, yo desde otro puedo venir y decir aquí que barra baja player controller.
Punto que mover es igual a falso no, porque sólo he puesto el GTA.
Os acordáis?
Si sólo he puesto el getter significa que aquí estoy.
El error me debería decir añade el setero, porque si no pones el setter no te dejo cambiar esa variable.
Lo veis?
Es decir, habéis añadido un nivel extra de protección a base de crear la variable privada y su asociada
pública que solo devuelve el valor.
De hecho, muchas veces cuando hacemos el setter en el Z habéis visto pongo la privada igual a BALIO.
Este palios significa el valor que se haya asignado, pero aquí yo puedo escribir 5 líneas de código.
Por ejemplo, si mover ya era true, si ya era que mover, no voy a cambiarte el valor así como me ha
llegado.
Si queremos ver ya era TRU, pues que mover sigue siendo tú.
Y así que ahora el juego.
Si ahora mira al player control el punto que mover.
Jaja.
Soy inmortal, no da error.
Da igual que alguien quiera ponerte como ya Estruch.
Si ya habías muerto seguirá siendo otro.
Y aquí lo veis.
Entonces así no hay forma humana de jaquear del juego.
Evidentemente esto ya es rizar el rizo.
Aquí lo más fácil es.
Get.
En una línea de hecho.
Y listo está Tocoma.
Y todas en una línea, y esto son las variables auto computadas, son variables que vosotros no las
toquetea.
Realmente toman el valor de otras.
La otra está protegida por privacidad.
Sólo vuestra clase puede acceder a ella y la exponés públicamente.
Y de hecho habéis visto que cuando la he creado me la ha puesto en mayúscula.
Es el único caso de una variable que se escribe como si fuera un método.
Es el único caso, una variable que expones públicamente al resto a través de una interfase de getter
o de setter y de Vetter, solo lectura o lecto escritura.
Normalmente se llama en mayúscula privada asociada.
Se suele poner con barra baja.
También es bastante extendido y se deben llamar igual.
Si esto obliga a que evidentemente leff y en Spawn Mãnager ya no accederás en minúscula como lo hemos
hecho hasta el momento, sino en mayúscula, aquí evidentemente no la podréis cambiar porque me he quitado
el setter fuera un manager que leía el goy mover para solo instancias cuando no era mover también en
mayúscula.
Vale esto creo recordar que lo comento en el curso de Cesar.
Si habéis llegado a la parte de objetos creo que lo comento lo del getter y el setter, lo que pasa
que no lo hacía con funciones lambda, pues no existían hace nada, pero a día de hoy cualquier función
que queráis escribir en una línea la podéis Landa y Farrokh si queréis.
De hecho, aquí no lo hago nunca.
Pero podríais hacer que este y.
Fuera algo así.
En este caso no tiene mucho sentido, tampoco podría islamizar Elif y que todos estuvieran en una línea.
Yo normalmente me es más cómodo seguir usando las llaves, se estructura mejor y es más fácil de leer,
pero para cosas tan cortas como esto, que esto en menos vale es bastante cómodo.
Irán apareciendo las funciones lambda a medida que haya que hacer bucles o estas cosas, los bucles
con funciones lambda veréis que son muy útiles porque automatiza el proceso y os ahorrarás bastantes
líneas de código.
Vale, después de todo lo que he hablado, supongo que sigue funcionando, con la diferencia que ahora
la variable es privada.
Por tanto, ha desaparecido.
De aquí no ves que ya no me aparece?
Ya no la puedo toquetear.
Ya no puede haber ningún script que me intente hackear.
Y eso significa que las opciones de que el juego sea más robusto y más seguro se han incrementado.
De modo que ahora, cuando muero, he muerto y por mucho que ahora venga aquí y mueva el mamarracho
este como lo he hecho antes aquí delante, veis que no tengo forma humana de cambiar el valor de la
variable que mover porque la he dejado ofuscada esta privada.
Así que la podríamos ver si viniéramos aquí los tres puntitos.
Pusiéramos modo de Bubok vez que sale, pero ves que está protegida.
Ya le daré.
Ya podéis hacer el pino puente o lo que os dé la gana.
Vale.
Evidentemente todavía podéis saltar, pero esto lo arreglaremos mañana.
Por qué?
Porque a la que muramos falta hacer una cosa que el personaje explote, a la que el personaje ha explotado.
Ya podéis saltar y hacer lo que queráis, que como habrá explotado, no habrá forma de moverlo.
Vale, también lo podéis corregir en el controller, solo ejecutar el adapt, lo del salto y no mover
la tabla.
Pero como ya os digo, aquí voy a hacer que este mensaje de mover se transforme en una animación, en
una explosión.
Os quedará arreglado más adelante?
Vale.