1
00:00:01,200 --> 00:00:05,520
Pues el truco y con esto acabamos, es el siguiente.

2
00:00:05,550 --> 00:00:14,820
Fijaros, vosotros queréis que la variable sea pública, yo quiero que sea privada para que no me la

3
00:00:14,820 --> 00:00:15,060
toque.

4
00:00:17,280 --> 00:00:18,060
Cuál es la solución?

5
00:00:18,190 --> 00:00:21,030
Bueno, pues se hace privada, porque lo digo yo.

6
00:00:22,100 --> 00:00:24,940
Si era algo privada me voy a cargar la mitad del código correcto.

7
00:00:26,010 --> 00:00:27,690
El truco está que la variable es privada.

8
00:00:28,320 --> 00:00:33,480
Que sea privada significa que sólo mi clase va a poder acceder a ella.

9
00:00:35,750 --> 00:00:39,360
De hecho, voy a hacer un pequeño paso más, voy a ser privada.

10
00:00:39,480 --> 00:00:41,520
Y cómo es un miembro de esta clase?

11
00:00:41,610 --> 00:00:45,020
Con lo que os he contado antes, a pesar de ser booleana, le pongo una barra abajo.

12
00:00:48,450 --> 00:00:53,610
Esto significa que donde acceder a ella ahora habrá errores en el propio Player Controller.

13
00:00:53,670 --> 00:00:57,300
Aparecerá un error que me da error esta variable no pasa nada.

14
00:00:57,360 --> 00:01:04,620
Es normal porque la hora la he llamado con barra baja, meterle la barra baja, pero aún tengo el error

15
00:01:04,620 --> 00:01:08,020
en los otros scripts porque es privada, ja.

16
00:01:08,880 --> 00:01:17,940
Hace lo siguiente Estás privada, pero voy a crear otra pública sin barra baja que se llama igual Public

17
00:01:19,080 --> 00:01:21,510
vull mover.

18
00:01:26,530 --> 00:01:42,690
Ya os sugiere este goy mover chino que mover me está sugiriendo añadir un getter y un suéter therion

19
00:01:42,860 --> 00:01:46,940
setter son pequeños métodos asociados a variables que de hecho reciben un nombre.

20
00:01:46,940 --> 00:01:53,300
Variables auto computadas son variables que automáticamente se calculan y que están relacionadas con

21
00:01:53,300 --> 00:01:53,720
otras.

22
00:01:54,170 --> 00:01:59,660
Estas variables pueden ser de lectura, solo de lectura o de lecto escritura si queréis que una variable

23
00:01:59,690 --> 00:02:01,490
sólo sea leída por otro script.

24
00:02:03,590 --> 00:02:10,520
Esta opción JEET si queréis que sea leída y a lo mejor escrita jet set.

25
00:02:11,810 --> 00:02:17,250
Si hacéis un jet set os saldrá esta cosa de que tan chula que se lea así.

26
00:02:19,010 --> 00:02:26,900
El valor público de la variable que mover que me lo ha puesto en mayúscula obtiene el valor de su privada

27
00:02:26,900 --> 00:02:35,120
homónima con barrabas y se cta, del modo que cuando alguien cambia el valor de esta variable se lo

28
00:02:35,120 --> 00:02:42,140
está cambiando a la variable barra baja que conmoverlo veis como yo en los otros Crips la he puesto

29
00:02:42,140 --> 00:02:42,890
en minúscula.

30
00:02:42,980 --> 00:02:44,930
Dejadme que le cambie esto y luego lo cambio bien.

31
00:02:45,580 --> 00:02:52,730
Si yo la pongo en minúscula ves que me han desaparecido los errores, porque cuando aqui está consultando

32
00:02:52,730 --> 00:02:58,540
de player controller la variable goy mover en minúsculas la variable que mover en minúsculas como un

33
00:02:58,540 --> 00:03:04,020
jet veus que está devolviendo el valor de barra baja que mover, y de hecho lo podéis ver porque solo

34
00:03:04,060 --> 00:03:05,210
este está de color verde.

35
00:03:06,980 --> 00:03:09,350
Veis que el set está de color negro o gris?

36
00:03:10,580 --> 00:03:16,100
Esto significa que nadie está usando el set, no lo está usando absolutamente nadie y lo que hacemos

37
00:03:16,100 --> 00:03:17,430
es no lo cargamos.

38
00:03:19,160 --> 00:03:21,570
Esta sintaxis que veis aquí es una sintaxis bastante moderna.

39
00:03:21,590 --> 00:03:27,350
A mí me gusta mucho, se llaman funciones lambda y es una forma de escribir código cada vez más corto.

40
00:03:28,430 --> 00:03:37,250
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

41
00:03:37,250 --> 00:03:39,470
jerga que vosotros conocéis de programación conmigo.

42
00:03:39,530 --> 00:03:47,320
Lo hubiéramos puesto así de llave y dentro de la llave hay mover, vale.

43
00:03:48,520 --> 00:03:55,640
De hecho, retour mover esto sería la sintaxis que conocéis entre llaves y ya está.

44
00:03:56,210 --> 00:03:57,630
Esta es la clásica, la estándar.

45
00:03:57,980 --> 00:04:03,320
Que pasa que Unity se está moviendo bastante sintaxis, funciones lambda de todo lo que pueda hacer

46
00:04:03,320 --> 00:04:09,350
en una línea, cargarse las llaves y poner esta flechita y obviar palabras como return o demás, todas

47
00:04:09,350 --> 00:04:14,540
las técnicas de mapreduce filter y demás que veremos en algún momento si se suelen programar así con

48
00:04:14,540 --> 00:04:15,380
funciones lambda.

49
00:04:16,370 --> 00:04:19,610
Y esto, de hecho, es una sola línea.

50
00:04:19,640 --> 00:04:21,740
No puedo acceder así.

51
00:04:28,320 --> 00:04:34,090
Y esto es la forma en la que se programa un GTA, es decir, el valor público de la variable que mover

52
00:04:35,260 --> 00:04:39,510
es exactamente el mismo que el de la variable privada barrabas mover.

53
00:04:39,850 --> 00:04:48,280
Además, si lo haces conget, yo desde otro puedo venir y decir aquí que barra baja player controller.

54
00:04:49,580 --> 00:04:56,130
Punto que mover es igual a falso no, porque sólo he puesto el GTA.

55
00:04:56,200 --> 00:04:56,880
Os acordáis?

56
00:04:57,190 --> 00:05:00,740
Si sólo he puesto el getter significa que aquí estoy.

57
00:05:01,000 --> 00:05:08,140
El error me debería decir añade el setero, porque si no pones el setter no te dejo cambiar esa variable.

58
00:05:08,140 --> 00:05:08,610
Lo veis?

59
00:05:09,280 --> 00:05:15,790
Es decir, habéis añadido un nivel extra de protección a base de crear la variable privada y su asociada

60
00:05:15,790 --> 00:05:18,850
pública que solo devuelve el valor.

61
00:05:19,210 --> 00:05:28,530
De hecho, muchas veces cuando hacemos el setter en el Z habéis visto pongo la privada igual a BALIO.

62
00:05:28,950 --> 00:05:35,710
Este palios significa el valor que se haya asignado, pero aquí yo puedo escribir 5 líneas de código.

63
00:05:35,710 --> 00:05:45,940
Por ejemplo, si mover ya era true, si ya era que mover, no voy a cambiarte el valor así como me ha

64
00:05:45,940 --> 00:05:46,300
llegado.

65
00:05:46,990 --> 00:05:51,600
Si queremos ver ya era TRU, pues que mover sigue siendo tú.

66
00:05:53,840 --> 00:05:57,970
Y así que ahora el juego.

67
00:05:58,100 --> 00:06:01,330
Si ahora mira al player control el punto que mover.

68
00:06:02,110 --> 00:06:02,860
Jaja.

69
00:06:02,920 --> 00:06:04,840
Soy inmortal, no da error.

70
00:06:05,590 --> 00:06:09,580
Da igual que alguien quiera ponerte como ya Estruch.

71
00:06:09,610 --> 00:06:12,720
Si ya habías muerto seguirá siendo otro.

72
00:06:13,240 --> 00:06:16,290
Y aquí lo veis.

73
00:06:16,800 --> 00:06:19,300
Entonces así no hay forma humana de jaquear del juego.

74
00:06:20,590 --> 00:06:22,070
Evidentemente esto ya es rizar el rizo.

75
00:06:22,780 --> 00:06:24,070
Aquí lo más fácil es.

76
00:06:26,280 --> 00:06:26,820
Get.

77
00:06:29,080 --> 00:06:30,320
En una línea de hecho.

78
00:06:34,700 --> 00:06:37,400
Y listo está Tocoma.

79
00:06:38,990 --> 00:06:48,080
Y todas en una línea, y esto son las variables auto computadas, son variables que vosotros no las

80
00:06:48,140 --> 00:06:48,390
toquetea.

81
00:06:48,640 --> 00:06:50,320
Realmente toman el valor de otras.

82
00:06:51,040 --> 00:06:53,030
La otra está protegida por privacidad.

83
00:06:53,080 --> 00:06:56,710
Sólo vuestra clase puede acceder a ella y la exponés públicamente.

84
00:06:56,960 --> 00:07:00,010
Y de hecho habéis visto que cuando la he creado me la ha puesto en mayúscula.

85
00:07:00,430 --> 00:07:03,310
Es el único caso de una variable que se escribe como si fuera un método.

86
00:07:03,850 --> 00:07:11,500
Es el único caso, una variable que expones públicamente al resto a través de una interfase de getter

87
00:07:11,770 --> 00:07:14,620
o de setter y de Vetter, solo lectura o lecto escritura.

88
00:07:15,160 --> 00:07:18,580
Normalmente se llama en mayúscula privada asociada.

89
00:07:18,640 --> 00:07:19,810
Se suele poner con barra baja.

90
00:07:19,840 --> 00:07:22,450
También es bastante extendido y se deben llamar igual.

91
00:07:23,870 --> 00:07:30,730
Si esto obliga a que evidentemente leff y en Spawn Mãnager ya no accederás en minúscula como lo hemos

92
00:07:30,730 --> 00:07:36,220
hecho hasta el momento, sino en mayúscula, aquí evidentemente no la podréis cambiar porque me he quitado

93
00:07:36,220 --> 00:07:44,830
el setter fuera un manager que leía el goy mover para solo instancias cuando no era mover también en

94
00:07:45,020 --> 00:07:45,460
mayúscula.

95
00:07:47,830 --> 00:07:52,740
Vale esto creo recordar que lo comento en el curso de Cesar.

96
00:07:52,780 --> 00:07:56,980
Si habéis llegado a la parte de objetos creo que lo comento lo del getter y el setter, lo que pasa

97
00:07:56,980 --> 00:08:02,980
que no lo hacía con funciones lambda, pues no existían hace nada, pero a día de hoy cualquier función

98
00:08:02,980 --> 00:08:06,850
que queráis escribir en una línea la podéis Landa y Farrokh si queréis.

99
00:08:07,210 --> 00:08:10,480
De hecho, aquí no lo hago nunca.

100
00:08:10,510 --> 00:08:13,590
Pero podríais hacer que este y.

101
00:08:15,870 --> 00:08:16,930
Fuera algo así.

102
00:08:20,680 --> 00:08:27,630
En este caso no tiene mucho sentido, tampoco podría islamizar Elif y que todos estuvieran en una línea.

103
00:08:28,470 --> 00:08:34,470
Yo normalmente me es más cómodo seguir usando las llaves, se estructura mejor y es más fácil de leer,

104
00:08:34,740 --> 00:08:42,450
pero para cosas tan cortas como esto, que esto en menos vale es bastante cómodo.

105
00:08:43,410 --> 00:08:48,150
Irán apareciendo las funciones lambda a medida que haya que hacer bucles o estas cosas, los bucles

106
00:08:48,150 --> 00:08:54,150
con funciones lambda veréis que son muy útiles porque automatiza el proceso y os ahorrarás bastantes

107
00:08:54,150 --> 00:08:54,820
líneas de código.

108
00:08:55,910 --> 00:09:02,880
Vale, después de todo lo que he hablado, supongo que sigue funcionando, con la diferencia que ahora

109
00:09:03,030 --> 00:09:04,120
la variable es privada.

110
00:09:05,160 --> 00:09:06,180
Por tanto, ha desaparecido.

111
00:09:06,180 --> 00:09:08,000
De aquí no ves que ya no me aparece?

112
00:09:08,520 --> 00:09:09,590
Ya no la puedo toquetear.

113
00:09:09,630 --> 00:09:12,080
Ya no puede haber ningún script que me intente hackear.

114
00:09:12,320 --> 00:09:16,950
Y eso significa que las opciones de que el juego sea más robusto y más seguro se han incrementado.

115
00:09:16,950 --> 00:09:23,310
De modo que ahora, cuando muero, he muerto y por mucho que ahora venga aquí y mueva el mamarracho

116
00:09:23,310 --> 00:09:27,780
este como lo he hecho antes aquí delante, veis que no tengo forma humana de cambiar el valor de la

117
00:09:27,780 --> 00:09:30,670
variable que mover porque la he dejado ofuscada esta privada.

118
00:09:30,930 --> 00:09:34,740
Así que la podríamos ver si viniéramos aquí los tres puntitos.

119
00:09:34,740 --> 00:09:38,610
Pusiéramos modo de Bubok vez que sale, pero ves que está protegida.

120
00:09:38,840 --> 00:09:39,520
Ya le daré.

121
00:09:39,830 --> 00:09:42,480
Ya podéis hacer el pino puente o lo que os dé la gana.

122
00:09:43,020 --> 00:09:43,210
Vale.

123
00:09:44,100 --> 00:09:48,750
Evidentemente todavía podéis saltar, pero esto lo arreglaremos mañana.

124
00:09:48,780 --> 00:09:49,260
Por qué?

125
00:09:49,290 --> 00:09:54,300
Porque a la que muramos falta hacer una cosa que el personaje explote, a la que el personaje ha explotado.

126
00:09:54,300 --> 00:09:58,620
Ya podéis saltar y hacer lo que queráis, que como habrá explotado, no habrá forma de moverlo.

127
00:09:59,600 --> 00:10:06,870
Vale, también lo podéis corregir en el controller, solo ejecutar el adapt, lo del salto y no mover

128
00:10:07,700 --> 00:10:08,240
la tabla.

129
00:10:08,670 --> 00:10:13,740
Pero como ya os digo, aquí voy a hacer que este mensaje de mover se transforme en una animación, en

130
00:10:13,740 --> 00:10:14,580
una explosión.

131
00:10:15,180 --> 00:10:17,670
Os quedará arreglado más adelante?

132
00:10:19,460 --> 00:10:19,760
Vale.
