1
00:00:00,000 --> 00:00:03,780
Hey, bienvenidos de nuevo, mis compañeros desarrolladores de juegos. 

2
00:00:03,780 --> 00:00:06,990
En este video, no hemos cambiado mucho,

3
00:00:06,990 --> 00:00:09,030
pero lo que hicimos es que acabamos

4
00:00:09,030 --> 00:00:12,110
empezar a configurar un sistema de armas adecuado. 

5
00:00:12,105 --> 00:00:15,725
Trasladamos al mecánico
de tiro

6
00:00:15,720 --> 00:00:18,960
del jugador de la perdición al arma real,

7
00:00:18,960 --> 00:00:20,070
que es la consola de Sharp. 

8
00:00:20,070 --> 00:00:22,200
Como pueden ver, aquí no hay nada nuevo. 

9
00:00:22,200 --> 00:00:24,360
Acabamos de hacer un par de cambios. 

10
00:00:24,360 --> 00:00:26,400
Este video se trata de todo,

11
00:00:26,400 --> 00:00:28,050
llamémoslo actualizar

12
00:00:28,050 --> 00:00:30,690
tu proyecto para que llegues a cierto punto. 

13
00:00:30,685 --> 00:00:33,745
Tienes toda la mecánica básica que quieres,

14
00:00:33,740 --> 00:00:36,980
pero ahora es el momento de hacerlas mucho más eficientes. 

15
00:00:36,980 --> 00:00:38,870
Entonces, sin más preámbulos,

16
00:00:38,870 --> 00:00:40,430
no perdamos más tiempo. 

17
00:00:40,430 --> 00:00:43,750
Y hagamos de nuevo el grado del proyecto. 

18
00:00:43,745 --> 00:00:45,565
0 caso. 

19
00:00:45,560 --> 00:00:48,580
Por lo que es momento de crear un sistema de tiro más

20
00:00:48,575 --> 00:00:52,355
avanzado y el profesional. 

21
00:00:52,355 --> 00:00:54,475
Entonces lo primero que vamos
a

22
00:00:54,470 --> 00:00:56,650
hacer es que vamos a mover

23
00:00:56,645 --> 00:00:58,945
todo lo que está relacionado con el
disparo del controlador del jugador
a

24
00:00:58,940 --> 00:01:01,450
disparo del controlador del jugador

25
00:01:01,445 --> 00:01:04,555
un guión separado

26
00:01:04,550 --> 00:01:06,610
que voy a crear en este momento. 

27
00:01:06,605 --> 00:01:08,855
Si entro en los guiones

28
00:01:08,854 --> 00:01:12,814
y tal vez hagamos esto un poco más grande. 

29
00:01:12,815 --> 00:01:16,345
los podamos ver al menos y dos filas. 

30
00:01:16,340 --> 00:01:18,880
Estos, de acuerdo, ahí vamos. 

31
00:01:18,875 --> 00:01:21,905
Voy a entrar aquí mismo. 

32
00:01:21,905 --> 00:01:24,415
Estoy creando una carpeta a la que se va a

33
00:01:24,410 --> 00:01:27,050
llamar el arma o

34
00:01:27,050 --> 00:01:32,810
llamémosle el sistema de armas. 

35
00:01:32,810 --> 00:01:34,510
Tener Enter. 

36
00:01:34,505 --> 00:01:36,095
Y voy a crear

37
00:01:36,095 --> 00:01:37,645
aquí
un guión que va a

38
00:01:37,640 --> 00:01:42,550
ser el sistema de armas. 

39
00:01:42,545 --> 00:01:47,345
Hit Enter, espere a que se compile. 

40
00:01:47,345 --> 00:01:51,835
Y ahí vamos. 

41
00:01:51,830 --> 00:01:54,680
Y un día ahora. Gracias. 

42
00:01:54,680 --> 00:01:56,350
Fue sólo un guión. 

43
00:01:56,345 --> 00:01:58,135
De todos modos, voy a hacer

44
00:01:58,130 --> 00:02:01,210
del punto de fuego un hijo de la escopeta,

45
00:02:01,205 --> 00:02:04,255
y no nos va a permitir tendrá que abrir el prefabricado. 

46
00:02:04,250 --> 00:02:07,250
Ahí vamos, que sea niño, guarde eso. 

47
00:02:07,250 --> 00:02:10,010
Vuelve a nuestro juego. Ahí vamos. 

48
00:02:10,010 --> 00:02:11,750
Entonces ahora tenemos, y a veces cuando se

49
00:02:11,750 --> 00:02:13,640
quiere agregar las prefabs,

50
00:02:13,640 --> 00:02:16,540
hacer hijo de las cosas y hacer padres. 

51
00:02:16,535 --> 00:02:18,265
En ocasiones te requerirá

52
00:02:18,260 --> 00:02:23,760
al paso extra de cambiar realmente todo el prefabricado. 

53
00:02:23,764 --> 00:02:25,134
Y lo siguiente que vamos a

54
00:02:25,130 --> 00:02:26,420
hacer es añadir

55
00:02:26,420 --> 00:02:29,270
este sistema de armas a la escopeta real. 

56
00:02:29,270 --> 00:02:32,740
Por lo que ahora la escopeta se encargará de todo el tiroteo. 

57
00:02:32,735 --> 00:02:35,255
En primer lugar, abramos el sistema de armas. 

58
00:02:35,255 --> 00:02:40,115
Y si miro en el controlador de capas, ¿dónde está? 

59
00:02:40,115 --> 00:02:41,525
Vamos a dar click aquí. 

60
00:02:41,525 --> 00:02:44,665
En tanto que el controlador jugador, bien, aunque. 

61
00:02:44,660 --> 00:02:46,130
Entonces ahí vamos. Como pueden ver,

62
00:02:46,130 --> 00:02:48,580
tenemos tantos guiones en este momento. 

63
00:02:48,575 --> 00:02:51,415
Pero de todos modos, lo que queremos hacer es que queremos

64
00:02:51,410 --> 00:02:54,410
movernos y este debe ser un método separado. 

65
00:02:54,410 --> 00:02:56,810
Lo que queremos hacer es mover a

66
00:02:56,810 --> 00:02:59,530
todo
el mecánico de tiro del jugador

67
00:02:59,525 --> 00:03:02,575
desde el controlador del jugador al sistema de armas. 

68
00:03:02,570 --> 00:03:05,350
A lo mejor he mencionado esto antes. 

69
00:03:05,345 --> 00:03:08,155
No queremos que el jugador se encargue de todo. 

70
00:03:08,150 --> 00:03:10,070
Entonces, por ejemplo, no queremos que

71
00:03:10,070 --> 00:03:12,530
el jugador se encargue de cómo vuelan las balas,

72
00:03:12,530 --> 00:03:16,510
y no queremos que el jugador se encargue de cómo funcionan las armas. 

73
00:03:16,505 --> 00:03:18,425
Entonces con eso dicho,

74
00:03:18,425 --> 00:03:20,765
te
voy a emitir un reto. 

75
00:03:20,765 --> 00:03:23,075
Y tu reto va a ser mover

76
00:03:23,075 --> 00:03:25,835
el disparo al guión adecuado. 

77
00:03:25,835 --> 00:03:28,105
Por lo que pareja del método de disparo desde el controlador de

78
00:03:28,100 --> 00:03:30,670
jugador hasta el script del sistema de armas. 

79
00:03:30,665 --> 00:03:34,915
Asegúrate de que los dos copien todas las variables adecuadas con él,

80
00:03:34,910 --> 00:03:37,640
y pon todo en unidad y pruébalo,

81
00:03:37,640 --> 00:03:39,740
asegúrate de que funcione correctamente. 

82
00:03:39,740 --> 00:03:41,890
Entonces este reto se
trata solo

83
00:03:41,885 --> 00:03:45,835
de cómo actualizas tu script,

84
00:03:45,830 --> 00:03:48,130
cómo actualizas tu proyecto y ganas. 

85
00:03:48,125 --> 00:03:50,615
En ocasiones empiezas tu proyecto. 

86
00:03:50,615 --> 00:03:53,395
No tienes todo el gran plan para ello,

87
00:03:53,390 --> 00:03:55,220
por lo que necesitas hacer ajustes. 

88
00:03:55,220 --> 00:03:57,470
Esto sólo será un ejercicio de

89
00:03:57,470 --> 00:03:59,950
cómo transferir cosas de un guión,

90
00:03:59,945 --> 00:04:01,405
el siguiente, haciéndolo mejor,

91
00:04:01,400 --> 00:04:02,510
lo
haré frente a ti,

92
00:04:02,510 --> 00:04:03,730
así que no te preocupes. 

93
00:04:03,725 --> 00:04:06,235
Nos aseguraremos de que todo funcione correctamente. 

94
00:04:06,230 --> 00:04:11,330
Pero por ahora, pausa el video y ve a hacer el reto. 

95
00:04:11,330 --> 00:04:13,760
Oh, bien, bienvenido de nuevo. 

96
00:04:13,760 --> 00:04:17,090
Entonces, ¿qué vamos a estar haciendo aquí dentro? 

97
00:04:17,090 --> 00:04:21,130
Vamos a seguir adelante y seleccionar todo esto. 

98
00:04:21,125 --> 00:04:25,075
Voy a cortar así Control X.
Voy

99
00:04:25,070 --> 00:04:29,030
a seguir adelante y ponerlo aquí o saber qué,

100
00:04:29,030 --> 00:04:30,620
mantengamos la actualización y empecemos. 

101
00:04:30,620 --> 00:04:32,300
Podríamos necesitarlos. Voy

102
00:04:32,300 --> 00:04:34,250
a pegar todo aquí para que

103
00:04:34,250 --> 00:04:38,710
veas que tenemos mucho que manejar. 

104
00:04:38,705 --> 00:04:40,675
Entonces de vuelta aquí,

105
00:04:40,670 --> 00:04:42,850
vamos a necesitar un par de

106
00:04:42,845 --> 00:04:46,355
variables que son, déjame subir. 

107
00:04:46,355 --> 00:04:48,485
En primer lugar, voy a

108
00:04:48,485 --> 00:04:51,055
comentar este fuera, guarde eso. 

109
00:04:51,050 --> 00:04:54,290
Entonces voy a facturar aquí, ¿qué necesitamos? 

110
00:04:54,290 --> 00:04:57,560
Necesitamos el swap y automatizar la bala el punto lejano. 

111
00:04:57,560 --> 00:04:58,160
Está bien. 

112
00:04:58,160 --> 00:05:02,900
Entonces veamos como arma tiempo automático entre disparos,

113
00:05:02,900 --> 00:05:05,440
disparos contrarrestados, punto de fuego. Ahí va. 

114
00:05:05,435 --> 00:05:06,925
Estos son. 

115
00:05:06,920 --> 00:05:11,330
Variables y las voy a pegar aquí. 

116
00:05:11,330 --> 00:05:12,010
Guarda eso. 

117
00:05:12,005 --> 00:05:13,525
A ver, ¿qué más tenemos? 

118
00:05:13,520 --> 00:05:15,610
¿ Tenemos algún tipo de error aquí? 

119
00:05:15,605 --> 00:05:18,965
No, no creo que eso fuera toda la mecánica. 

120
00:05:18,965 --> 00:05:21,005
Entonces de vuelta aquí, ¿qué más tenemos? 

121
00:05:21,005 --> 00:05:23,785
0. Entonces si el jugador puede correr, ahora,

122
00:05:23,780 --> 00:05:26,720
obviamente el punteante es parte de

123
00:05:26,720 --> 00:05:27,970
la mecánica
del

124
00:05:27,970 --> 00:05:30,470
jugador del jugador es el que va a correr. 

125
00:05:30,470 --> 00:05:32,980
Entonces lo que necesitaremos es una forma de

126
00:05:32,975 --> 00:05:35,515
conseguir una referencia al guión. 

127
00:05:35,510 --> 00:05:38,110
Entonces, ¿el jugador es apestoso o no? 

128
00:05:38,105 --> 00:05:39,215
¿ Qué podemos hacer? 

129
00:05:39,215 --> 00:05:40,895
Si nos desplazamos por aquí,

130
00:05:40,895 --> 00:05:43,045
podemos crear un método. 

131
00:05:43,040 --> 00:05:44,750
Y si miro aquí arriba,

132
00:05:44,750 --> 00:05:46,780
el guión se puede ver como privado. 

133
00:05:46,775 --> 00:05:50,695
Y lo que podemos hacer es crear un método aquí. 

134
00:05:50,690 --> 00:05:53,720
Y estas son cosas que vamos a estar usando

135
00:05:53,720 --> 00:05:56,830
cada vez más a medida que vamos este tipo de métodos. 

136
00:05:56,825 --> 00:06:05,605
Por lo que es un bool público y es capa punteante. 

137
00:06:05,600 --> 00:06:08,290
Entonces aquí, todo lo que vas a hacer

138
00:06:08,285 --> 00:06:11,935
es regresar puede correr. 

139
00:06:11,930 --> 00:06:14,900
Y voy a añadir un signo de exclamación

140
00:06:14,900 --> 00:06:17,290
porque recuerda cómo funcionan los guiones. 

141
00:06:17,285 --> 00:06:19,535
Y como sólo regresamos una cosa,

142
00:06:19,535 --> 00:06:22,255
así es como la vamos a estar escribiendo. 

143
00:06:22,250 --> 00:06:24,200
Ahora, obviamente esto no es algo

144
00:06:24,200 --> 00:06:26,090
que sea como un estándar. 

145
00:06:26,090 --> 00:06:28,400
Esto es más como prácticas. 

146
00:06:28,400 --> 00:06:31,340
Entonces ten algún tipo de

147
00:06:31,340 --> 00:06:33,860
variable en algún script diferente

148
00:06:33,860 --> 00:06:35,230
que quieras acceder. 

149
00:06:35,225 --> 00:06:36,985
¿ Cómo lo haces? 

150
00:06:36,980 --> 00:06:40,120
Bueno, o haces pública la variable,

151
00:06:40,115 --> 00:06:42,235
lo
haces accesible a todos. 

152
00:06:42,230 --> 00:06:43,940
Pero el problema a la hora de hacerlo

153
00:06:43,940 --> 00:06:46,630
público es que se puede cambiar. 

154
00:06:46,625 --> 00:06:48,335
Entonces si hago esto público,

155
00:06:48,335 --> 00:06:51,485
entonces
puedo cambiarlo de un guión diferente,

156
00:06:51,485 --> 00:06:53,485
lo cual es una muy mala idea. 

157
00:06:53,480 --> 00:06:56,600
Confía en mí, nunca quieres poder cambiar

158
00:06:56,600 --> 00:07:00,290
variables en diferentes scripts de diferentes scripts. 

159
00:07:00,290 --> 00:07:01,730
Por lo que no quieres poder
hacer

160
00:07:01,730 --> 00:07:03,500
que el jugador pase de,
digamos,

161
00:07:03,500 --> 00:07:05,570
el Gestor de UI por

162
00:07:05,570 --> 00:07:07,790
error, sucede a veces. 

163
00:07:07,790 --> 00:07:10,580
Entonces una mejor manera es solo poder
comprobar si estamos corriendo para

164
00:07:10,580 --> 00:07:14,510
que podamos conseguir el punteante,

165
00:07:14,510 --> 00:07:17,270
pero no podemos cambiar si el jugador es apestoso. 

166
00:07:17,270 --> 00:07:20,630
Entonces esta es una capa extra de seguridad y

167
00:07:20,630 --> 00:07:24,130
es por eso que siempre usamos campos serializados. 

168
00:07:24,125 --> 00:07:26,375
Podríamos haberlos hecho públicos todos

169
00:07:26,375 --> 00:07:28,865
y habrían sido las mismas funciones. 

170
00:07:28,865 --> 00:07:31,235
Podríamos haberlos visto en el inspector y así sucesivamente. 

171
00:07:31,235 --> 00:07:34,225
Pero convertirlo en un campo serializado significa que
no podemos

172
00:07:34,220 --> 00:07:37,880
acceder a estas variables desde diferentes scripts,

173
00:07:37,880 --> 00:07:40,150
y esto pagará dividendos más adelante

174
00:07:40,145 --> 00:07:42,725
a
medida que avanzas en tu viaje de desarrollo de juegos. 

175
00:07:42,725 --> 00:07:44,605
Asegurándose de que puedas,

176
00:07:44,600 --> 00:07:46,250
no solo en el desarrollo de juegos,

177
00:07:46,250 --> 00:07:47,900
siempre que se trate de programación,

178
00:07:47,900 --> 00:07:50,240
no
quieres clases diferentes,

179
00:07:50,240 --> 00:07:53,260
variables
cambiantes, otras clases diferentes. 

180
00:07:53,255 --> 00:07:55,355
De todos modos, me estoy adelantando. 

181
00:07:55,355 --> 00:07:57,005
¿ Qué vamos a hacer aquí dentro? 

182
00:07:57,005 --> 00:07:59,405
Podemos o bien encontrar el objeto jugador

183
00:07:59,405 --> 00:08:02,635
o podemos obtener componente en parent. 

184
00:08:02,630 --> 00:08:07,760
Y podemos, vamos a quitar esto por un segundo. 

185
00:08:07,760 --> 00:08:11,530
Podemos acceder al controlador del jugador y al padre,

186
00:08:11,525 --> 00:08:13,655
y podemos seguir adelante y comprobar. 

187
00:08:13,655 --> 00:08:17,785
Es jugador es jugador apestoso o qué,

188
00:08:17,780 --> 00:08:20,900
lo que es este jugador es apestoso. 

189
00:08:20,899 --> 00:08:25,869
Lo que es esta capa es contundente, se está moviendo. 

190
00:08:25,865 --> 00:08:27,595
Ahí está punteante 0,

191
00:08:27,590 --> 00:08:30,340
por lo que en realidad también podemos devolver esto. 

192
00:08:30,335 --> 00:08:34,235
Por lo que ya no se necesita este método. 

193
00:08:34,230 --> 00:08:38,080
Y eso realmente no fue algo que yo notara. 

194
00:08:38,080 --> 00:08:40,870
Pero de todos modos, la capa es contundente. 

195
00:08:40,869 --> 00:08:43,229
Al menos tuvimos la oportunidad. 

196
00:08:43,225 --> 00:08:44,625
Vamos a comprobar si

197
00:08:44,620 --> 00:08:47,500
la velocidad de movimiento actual es igual a la velocidad. 

198
00:08:47,500 --> 00:08:50,530
De acuerdo, entonces volvemos verdad. Y ahí vamos. 

199
00:08:50,530 --> 00:08:51,750
Si estamos apostando,

200
00:08:51,745 --> 00:08:53,715
entonces no podemos estar disparando

201
00:08:53,710 --> 00:08:55,930
y no vamos a llamar a esto el jugador disparando. 

202
00:08:55,930 --> 00:09:00,460
Cambiemos a las balas de disparo. 

203
00:09:00,460 --> 00:09:03,810
Ahí vamos. Entonces esto tiene más sentido ahora mismo. 

204
00:09:03,805 --> 00:09:05,565
¿ Y qué más deberíamos estar haciendo? 

205
00:09:05,560 --> 00:09:07,150
Bueno, obviamente, tenemos que estar

206
00:09:07,150 --> 00:09:08,980
llamándolo aquí en la actualización,

207
00:09:08,980 --> 00:09:11,160
asegurándonos de que podamos disparar. 

208
00:09:11,155 --> 00:09:13,215
Entonces voy a estar simplemente llamando al

209
00:09:13,210 --> 00:09:18,040
método
de disparo de balas. 

210
00:09:18,035 --> 00:09:20,485
Y ahora tenemos que volver
a

211
00:09:20,480 --> 00:09:22,790
Unidad y armar todo. 

212
00:09:22,790 --> 00:09:25,180
Entonces voy a abrir Unidad. 

213
00:09:25,175 --> 00:09:28,085
Ya verás que el sistema de armas cambió. 

214
00:09:28,085 --> 00:09:31,075
Y esto fue, esto es tan vergonzoso. 

215
00:09:31,070 --> 00:09:33,550
Ni siquiera noté que estaba justo ahí y

216
00:09:33,545 --> 00:09:37,025
me olvidé por completo que habíamos exhibido este puntito. 

217
00:09:37,025 --> 00:09:38,665
Pero de todos modos, al menos aprendes

218
00:09:38,660 --> 00:09:40,370
algo de un tipo diferente. 

219
00:09:40,370 --> 00:09:43,130
O tenemos este monólogo de por qué

220
00:09:43,130 --> 00:09:47,170
no
queremos acceso a las variables. 

221
00:09:47,165 --> 00:09:48,955
Ahora, no se preocupe. Electrón

222
00:09:48,950 --> 00:09:50,930
por supuesto estaremos implementando muchos de

223
00:09:50,930 --> 00:09:52,990
estos métodos a medida que avanzamos

224
00:09:52,985 --> 00:09:55,415
y hacemos de nuestro código un poco más profesional. 

225
00:09:55,415 --> 00:09:58,795
Entonces con eso, ¿quién Cosas Hecho? 

226
00:09:58,790 --> 00:10:00,460
Vamos a entrar a, en

227
00:10:00,455 --> 00:10:03,755
primer lugar como 70 punto lejano de la escopeta. 

228
00:10:03,755 --> 00:10:05,575
Nos vamos a asegurar

229
00:10:05,570 --> 00:10:07,370
que esta arma no sea una romántica y
haremos

230
00:10:07,370 --> 00:10:12,040
el tiempo entre disparos alrededor de 1 segundo, 1, no 21. 

231
00:10:12,035 --> 00:10:15,205
Necesitamos una bala, así que entraremos en las Prefabs,

232
00:10:15,200 --> 00:10:18,640
balas
rotas, y las balas de capa. 

233
00:10:18,635 --> 00:10:19,825
Guarda eso. 

234
00:10:19,820 --> 00:10:23,920
Vayamos al jugador de la fatalidad y aplicamos todos los cambios. 

235
00:10:23,915 --> 00:10:27,815
Y ahora voy a ¿Qué más tenemos? 

236
00:10:27,814 --> 00:10:30,364
Corremos el juego y veamos qué pasa. 

237
00:10:30,365 --> 00:10:34,735
Entonces el jugador, jugador se mueve por el camino,

238
00:10:34,730 --> 00:10:38,050
pero así el jugador se mueve y si deberíamos,

239
00:10:38,045 --> 00:10:40,115
Ahí vamos, podemos disparar. 

240
00:10:40,115 --> 00:10:42,305
Y si mantengo pulsado el botón del ratón,

241
00:10:42,305 --> 00:10:44,855
por alguna razón, no es disparar. 

242
00:10:44,855 --> 00:10:47,995
123. 

243
00:10:47,990 --> 00:10:49,310
Ah, no es automático. 

244
00:10:49,310 --> 00:10:49,810
Está bien. 

245
00:10:49,805 --> 00:10:51,415
Pero el problema está tan bien. 

246
00:10:51,410 --> 00:10:54,970
Ahora, aunque mantenga pulsado el botón del ratón,

247
00:10:54,965 --> 00:10:58,885
no
es automático, pero la escopeta todavía dispara mucho. 

248
00:10:58,880 --> 00:11:01,220
Y esto es algo que queremos arreglar porque
ahora estamos

249
00:11:01,220 --> 00:11:04,000
hablando de un mecánico de tiro avanzado. 

250
00:11:03,995 --> 00:11:06,505
No es el mecánico de tiro habitual. 

251
00:11:06,500 --> 00:11:09,730
Tenemos que asegurarnos de que nuestro tiroteo sea consistente. 

252
00:11:09,725 --> 00:11:11,915
Entonces la escopeta, si sostenemos presionada,

253
00:11:11,915 --> 00:11:13,135
dispara un botón,

254
00:11:13,130 --> 00:11:15,620
pero si seguimos presionando para que la escopeta no debería

255
00:11:15,620 --> 00:11:18,110
estar disparando tanto al disparar. 

256
00:11:18,110 --> 00:11:19,960
Entonces con eso fuera del camino,

257
00:11:19,955 --> 00:11:26,245
con toda esta sección, Cambiar, scripting todo. 

258
00:11:26,240 --> 00:11:29,560
Espero que lo disfruten y los veré en el siguiente video. 

259
00:11:29,555 --> 00:11:34,075
Asegúrate de que siempre cometes tus cambios. 

260
00:11:34,070 --> 00:11:36,310
Y voy a hacer este commit

261
00:11:36,305 --> 00:11:42,005
move tiro mecánico de

262
00:11:42,004 --> 00:11:47,934
capa dos, el arma real. 

263
00:11:47,930 --> 00:11:50,920
Ahí vamos, comprometemos los cambios,

264
00:11:50,915 --> 00:11:53,735
y nos vemos en el siguiente video. 

