1
00:00:00,000 --> 00:00:03,780
Ei, bem-vindos de volta, meus colegas desenvolvedores de jogos. 

2
00:00:03,780 --> 00:00:06,990
Neste vídeo, não mudamos muito,

3
00:00:06,990 --> 00:00:09,030
mas o que fizemos foi que acabamos

4
00:00:09,030 --> 00:00:12,110
começar a montar um sistema de armas adequado. 

5
00:00:12,105 --> 00:00:15,725
Movemos a mecânica
 de tiro

6
00:00:15,720 --> 00:00:18,960
do jogador do condenador para a arma real,

7
00:00:18,960 --> 00:00:20,070
que é o console Sharp. 

8
00:00:20,070 --> 00:00:22,200
Como você pode ver, não há nada de novo aqui. 

9
00:00:22,200 --> 00:00:24,360
Acabamos de fazer algumas mudanças. 

10
00:00:24,360 --> 00:00:26,400
Este vídeo é tudo sobre,

11
00:00:26,400 --> 00:00:28,050
vamos chamá-lo de atualizar

12
00:00:28,050 --> 00:00:30,690
seu projeto para que você chegue a um certo ponto. 

13
00:00:30,685 --> 00:00:33,745
Você tem todas as mecânicas básicas que você quer,

14
00:00:33,740 --> 00:00:36,980
mas agora é hora de torná-las muito mais eficientes. 

15
00:00:36,980 --> 00:00:38,870
Então, sem mais delongas,

16
00:00:38,870 --> 00:00:40,430
não
 vamos perder mais tempo. 

17
00:00:40,430 --> 00:00:43,750
E vamos fazer a nota do projeto novamente. 

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

19
00:00:45,560 --> 00:00:48,580
Então é hora de criar um sistema de tiro mais

20
00:00:48,575 --> 00:00:52,355
avançado e profissional. 

21
00:00:52,355 --> 00:00:54,475
Então, a primeira coisa que vamos

22
00:00:54,470 --> 00:00:56,650
fazer é mover
 tudo o

23
00:00:56,645 --> 00:00:58,945
que está relacionado ao

24
00:00:58,940 --> 00:01:01,450
disparo do controlador do jogador

25
00:01:01,445 --> 00:01:04,555
para um script separado

26
00:01:04,550 --> 00:01:06,610
que vou criar agora. 

27
00:01:06,605 --> 00:01:08,855
Se eu entrar nos roteiros

28
00:01:08,854 --> 00:01:12,814
e talvez vamos fazer isso um pouco maior. 

29
00:01:12,815 --> 00:01:16,345
Assim, podemos vê-los pelo menos e duas linhas. 

30
00:01:16,340 --> 00:01:18,880
Estes, tudo bem, lá vamos nós. 

31
00:01:18,875 --> 00:01:21,905
Vou entrar aqui. 

32
00:01:21,905 --> 00:01:24,415
Estou criando uma pasta que será
 chamada de

33
00:01:24,410 --> 00:01:27,050
arma ou

34
00:01:27,050 --> 00:01:32,810
vamos chamá-la de sistema de armas. 

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

36
00:01:34,505 --> 00:01:36,095
E eu vou criar

37
00:01:36,095 --> 00:01:37,645
um script aqui que
 será o

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

39
00:01:42,545 --> 00:01:47,345
Pressione Enter, aguarde que ele seja compilado. 

40
00:01:47,345 --> 00:01:51,835
E lá vamos nós. 

41
00:01:51,830 --> 00:01:54,680
E um dia agora. Obrigado. 

42
00:01:54,680 --> 00:01:56,350
Foi apenas um roteiro. 

43
00:01:56,345 --> 00:01:58,135
De qualquer forma, vou fazer

44
00:01:58,130 --> 00:02:01,210
do fogo apontar um filho da espingarda,

45
00:02:01,205 --> 00:02:04,255
e isso não permitirá que precisemos abrir o pré-fabricado. 

46
00:02:04,250 --> 00:02:07,250
Lá vamos nós, torná-lo uma criança, salvar isso. 

47
00:02:07,250 --> 00:02:10,010
Volte para o nosso jogo. Lá vamos nós. 

48
00:02:10,010 --> 00:02:11,750
Então agora temos, e às vezes quando

49
00:02:11,750 --> 00:02:13,640
você quer adicionar os prefabs,

50
00:02:13,640 --> 00:02:16,540
fazer filhos das coisas e fazer pais. 

51
00:02:16,535 --> 00:02:18,265
Às vezes, isso exigirá
 que você

52
00:02:18,260 --> 00:02:23,760
faça o passo extra de realmente mudar todo o pré-fabricado. 

53
00:02:23,764 --> 00:02:25,134
E a próxima coisa que vamos
 fazer

54
00:02:25,130 --> 00:02:26,420
é adicionar

55
00:02:26,420 --> 00:02:29,270
esse sistema de armas à espingarda real. 

56
00:02:29,270 --> 00:02:32,740
Então, agora a espingarda vai lidar com todo o tiroteio. 

57
00:02:32,735 --> 00:02:35,255
Primeiro de tudo, vamos abrir o sistema de armas. 

58
00:02:35,255 --> 00:02:40,115
E se eu olhar no controlador de camada, onde está? 

59
00:02:40,115 --> 00:02:41,525
Vamos clicar aqui. 

60
00:02:41,525 --> 00:02:44,665
Enquanto o controlador do jogador, tudo bem, no entanto. 

61
00:02:44,660 --> 00:02:46,130
Então lá vamos nós. Como você pode ver,

62
00:02:46,130 --> 00:02:48,580
temos tantos scripts agora. 

63
00:02:48,575 --> 00:02:51,415
Mas, de qualquer forma, o que queremos fazer é nos
 mover

64
00:02:51,410 --> 00:02:54,410
e esse deve ser um método separado. 

65
00:02:54,410 --> 00:02:56,810
O que queremos fazer é mover toda
 a

66
00:02:56,810 --> 00:02:59,530
mecânica de tiro do jogador do

67
00:02:59,525 --> 00:03:02,575
controlador
 do jogador para o sistema de armas. 

68
00:03:02,570 --> 00:03:05,350
Talvez já tenha mencionado isso antes. 

69
00:03:05,345 --> 00:03:08,155
Não queremos que o jogador cuide de tudo. 

70
00:03:08,150 --> 00:03:10,070
Por exemplo, não queremos que

71
00:03:10,070 --> 00:03:12,530
o jogador cuide de como as balas voam,

72
00:03:12,530 --> 00:03:16,510
e não queremos que o jogador cuide de como as armas funcionam. 

73
00:03:16,505 --> 00:03:18,425
Então, com isso dito,

74
00:03:18,425 --> 00:03:20,765
vou lhe emitir um desafio. 

75
00:03:20,765 --> 00:03:23,075
E seu desafio será mover

76
00:03:23,075 --> 00:03:25,835
o disparo para o roteiro adequado. 

77
00:03:25,835 --> 00:03:28,105
Então, alguns dos métodos de disparo do

78
00:03:28,100 --> 00:03:30,670
controlador
 do jogador para o script do sistema de armas. 

79
00:03:30,665 --> 00:03:34,915
Certifique-se de que os dois copiem todas as variáveis apropriadas com ele

80
00:03:34,910 --> 00:03:37,640
e definam tudo em unidade e teste-o,

81
00:03:37,640 --> 00:03:39,740
certifique-se de que ele funcione corretamente. 

82
00:03:39,740 --> 00:03:41,890
Portanto, esse desafio é apenas

83
00:03:41,885 --> 00:03:45,835
sobre como você atualiza seu script,

84
00:03:45,830 --> 00:03:48,130
como você atualiza seu projeto e ganha. 

85
00:03:48,125 --> 00:03:50,615
Às vezes você começa seu projeto. 

86
00:03:50,615 --> 00:03:53,395
Você não tem todo o grande plano para isso,

87
00:03:53,390 --> 00:03:55,220
então você precisa fazer ajustes. 

88
00:03:55,220 --> 00:03:57,470
Este será apenas um exercício

89
00:03:57,470 --> 00:03:59,950
como transferir coisas de um roteiro,

90
00:03:59,945 --> 00:04:01,405
o próximo, tornando-o melhor,

91
00:04:01,400 --> 00:04:02,510
eu farei isso na sua frente,

92
00:04:02,510 --> 00:04:03,730
então não se preocupe com isso. 

93
00:04:03,725 --> 00:04:06,235
Vamos garantir que tudo funcione corretamente. 

94
00:04:06,230 --> 00:04:11,330
Mas, por enquanto, pause o vídeo e vá fazer o desafio. 

95
00:04:11,330 --> 00:04:13,760
Oh, ok, bem-vindo de volta. 

96
00:04:13,760 --> 00:04:17,090
Então, o que vamos fazer aqui? 

97
00:04:17,090 --> 00:04:21,130
Vamos seguir em frente e selecionar tudo isso. 

98
00:04:21,125 --> 00:04:25,075
Vou cortar então Control X.
 Vou

99
00:04:25,070 --> 00:04:29,030
seguir em frente e colocá-lo aqui ou saber o que,

100
00:04:29,030 --> 00:04:30,620
vamos manter a atualização e começar. 

101
00:04:30,620 --> 00:04:32,300
Talvez precisemos deles. 

102
00:04:32,300 --> 00:04:34,250
colar tudo aqui
 para que você possa

103
00:04:34,250 --> 00:04:38,710
ver que temos muita coisa que precisamos lidar. 

104
00:04:38,705 --> 00:04:40,675
Então, de volta aqui,

105
00:04:40,670 --> 00:04:42,850
precisaremos de algumas

106
00:04:42,845 --> 00:04:46,355
variáveis que são, deixe-me subir. 

107
00:04:46,355 --> 00:04:48,485
Primeiro de tudo, vou
 comentar

108
00:04:48,485 --> 00:04:51,055
este, salvar isso. 

109
00:04:51,050 --> 00:04:54,290
Então vou verificar aqui, o que precisamos? 

110
00:04:54,290 --> 00:04:57,560
Precisamos da troca e automatize a bala no ponto mais distante. 

111
00:04:57,560 --> 00:04:58,160
Certo. 

112
00:04:58,160 --> 00:05:02,900
Então, vamos ver como o tempo automático da arma entre tiros,

113
00:05:02,900 --> 00:05:05,440
tiros combatidos, ponto de fogo. Lá vai ele. 

114
00:05:05,435 --> 00:05:06,925
Estes são. 

115
00:05:06,920 --> 00:05:11,330
Variáveis e eu vou colá-las aqui. 

116
00:05:11,330 --> 00:05:12,010
Salve isso. 

117
00:05:12,005 --> 00:05:13,525
Vamos ver o que mais temos? 

118
00:05:13,520 --> 00:05:15,610
Temos algum tipo de erro aqui? 

119
00:05:15,605 --> 00:05:18,965
Não, não acho que fosse toda a mecânica. 

120
00:05:18,965 --> 00:05:21,005
Então, de volta aqui, o que mais temos? 

121
00:05:21,005 --> 00:05:23,785
0. Então, se o jogador pode correr, agora,

122
00:05:23,780 --> 00:05:26,720
obviamente,
 o arrojado faz parte da

123
00:05:26,720 --> 00:05:27,970
mecânica

124
00:05:27,970 --> 00:05:30,470
do jogador do jogador é aquele que vai correr. 

125
00:05:30,470 --> 00:05:32,980
Então, o que precisamos é de uma maneira de

126
00:05:32,975 --> 00:05:35,515
obtermos uma referência ao traço. 

127
00:05:35,510 --> 00:05:38,110
Então o jogador está arrojado ou não? 

128
00:05:38,105 --> 00:05:39,215
O que podemos fazer? 

129
00:05:39,215 --> 00:05:40,895
Se rolarmos aqui para baixo,

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

131
00:05:43,040 --> 00:05:44,750
E se eu olhar aqui,

132
00:05:44,750 --> 00:05:46,780
o traço que você pode ver como privado. 

133
00:05:46,775 --> 00:05:50,695
E o que podemos fazer é criar um método aqui. 

134
00:05:50,690 --> 00:05:53,720
E essas são coisas que vamos usar
 cada vez mais à

135
00:05:53,720 --> 00:05:56,830
medida que seguirmos esse tipo de método. 

136
00:05:56,825 --> 00:06:05,605
Portanto, é um bool público e é arrojado em camadas. 

137
00:06:05,600 --> 00:06:08,290
Então, aqui, tudo o que você vai fazer

138
00:06:08,285 --> 00:06:11,935
é retornar pode traçar. 

139
00:06:11,930 --> 00:06:14,900
E vou adicionar um ponto de exclamação

140
00:06:14,900 --> 00:06:17,290
porque lembre-se de como os traços funcionam. 

141
00:06:17,285 --> 00:06:19,535
E porque só retornamos uma coisa,

142
00:06:19,535 --> 00:06:22,255
é
 assim que vamos escrevê-la. 

143
00:06:22,250 --> 00:06:24,200
Agora, obviamente, isso não é algo

144
00:06:24,200 --> 00:06:26,090
que seja como um padrão. 

145
00:06:26,090 --> 00:06:28,400
Isso é mais como práticas. 

146
00:06:28,400 --> 00:06:31,340
Portanto, tenha algum tipo de

147
00:06:31,340 --> 00:06:33,860
variável em algum script diferente

148
00:06:33,860 --> 00:06:35,230
que você deseja acessar. 

149
00:06:35,225 --> 00:06:36,985
Como você faz isso? 

150
00:06:36,980 --> 00:06:40,120
Bem, ou você torna a variável pública,

151
00:06:40,115 --> 00:06:42,235
você a torna acessível a todos. 

152
00:06:42,230 --> 00:06:43,940
Mas o problema ao torná-lo

153
00:06:43,940 --> 00:06:46,630
público é que você pode mudar. 

154
00:06:46,625 --> 00:06:48,335
Então, se eu tornar isso público,

155
00:06:48,335 --> 00:06:51,485
posso mudá-lo de um roteiro diferente,

156
00:06:51,485 --> 00:06:53,485
o que é uma péssima ideia. 

157
00:06:53,480 --> 00:06:56,600
Confie em mim, você nunca quer poder alterar

158
00:06:56,600 --> 00:07:00,290
variáveis em scripts diferentes de scripts diferentes. 

159
00:07:00,290 --> 00:07:01,730
Portanto, você não quer ser capaz de
 fazer

160
00:07:01,730 --> 00:07:03,500
o jogador
 passar,

161
00:07:03,500 --> 00:07:05,570
digamos, do UI Manager por

162
00:07:05,570 --> 00:07:07,790
engano, isso acontece às vezes. 

163
00:07:07,790 --> 00:07:10,580
Então, uma maneira melhor é apenas poder
 verificar se

164
00:07:10,580 --> 00:07:14,510
estamos arrojados para que possamos obter o arrojado,

165
00:07:14,510 --> 00:07:17,270
mas não podemos mudar se o jogador está arrojado. 

166
00:07:17,270 --> 00:07:20,630
Portanto, essa é uma camada extra de segurança e

167
00:07:20,630 --> 00:07:24,130
é por isso que sempre usamos campos serializados. 

168
00:07:24,125 --> 00:07:26,375
Poderíamos ter tornado todos públicos

169
00:07:26,375 --> 00:07:28,865
e teriam sido as mesmas funções. 

170
00:07:28,865 --> 00:07:31,235
Poderíamos tê-los visto no inspetor e assim por diante. 

171
00:07:31,235 --> 00:07:34,225
Mas torná-lo um campo serializado significa que
 não podemos

172
00:07:34,220 --> 00:07:37,880
acessar essas variáveis de diferentes scripts,

173
00:07:37,880 --> 00:07:40,150
e isso pagará dividendos mais tarde

174
00:07:40,145 --> 00:07:42,725
medida que você for em sua jornada de desenvolvimento de jogos. 

175
00:07:42,725 --> 00:07:44,605
Certificando-se de que você pode,

176
00:07:44,600 --> 00:07:46,250
não apenas no desenvolvimento de jogos,

177
00:07:46,250 --> 00:07:47,900
sempre que se trata de programação,

178
00:07:47,900 --> 00:07:50,240
você não quer classes diferentes,

179
00:07:50,240 --> 00:07:53,260
alterando variáveis, outras classes diferentes. 

180
00:07:53,255 --> 00:07:55,355
De qualquer forma, estou ficando à frente de mim. 

181
00:07:55,355 --> 00:07:57,005
O que vamos fazer aqui? 

182
00:07:57,005 --> 00:07:59,405
Podemos encontrar o objeto do jogador

183
00:07:59,405 --> 00:08:02,635
ou podemos obter o componente no pai. 

184
00:08:02,630 --> 00:08:07,760
E podemos, vamos remover isso por um segundo. 

185
00:08:07,760 --> 00:08:11,530
Podemos acessar o controlador do jogador e os pais,

186
00:08:11,525 --> 00:08:13,655
e podemos ir em frente e verificar. 

187
00:08:13,655 --> 00:08:17,785
O jogador é o jogador arrojado ou o que,

188
00:08:17,780 --> 00:08:20,900
o que é esse jogador é arrojado. 

189
00:08:20,899 --> 00:08:25,869
O que é essa camada é arrojado, está se movendo. 

190
00:08:25,865 --> 00:08:27,595
Há 0 arrojado,

191
00:08:27,590 --> 00:08:30,340
então também podemos retornar isso. 

192
00:08:30,335 --> 00:08:34,235
Portanto, esse método não é mais necessário. 

193
00:08:34,230 --> 00:08:38,080
E isso realmente não foi algo que eu notei. 

194
00:08:38,080 --> 00:08:40,870
Mas, de qualquer forma, a camada é arrojada. 

195
00:08:40,869 --> 00:08:43,229
Pelo menos tivemos a oportunidade. 

196
00:08:43,225 --> 00:08:44,625
Vamos verificar se
 a

197
00:08:44,620 --> 00:08:47,500
velocidade de movimento atual é igual à velocidade. 

198
00:08:47,500 --> 00:08:50,530
Certo, então retornamos verdadeiros. E lá vamos nós. 

199
00:08:50,530 --> 00:08:51,750
Se estivermos arrojados
,

200
00:08:51,745 --> 00:08:53,715
não podemos atirar

201
00:08:53,710 --> 00:08:55,930
e não chamaremos isso de tiro do jogador. 

202
00:08:55,930 --> 00:09:00,460
Vamos mudar para as balas de disparo. 

203
00:09:00,460 --> 00:09:03,810
Lá vamos nós. Então isso faz mais sentido agora. 

204
00:09:03,805 --> 00:09:05,565
E o que mais deveríamos estar fazendo? 

205
00:09:05,560 --> 00:09:07,150
Bem, obviamente, precisamos

206
00:09:07,150 --> 00:09:08,980
chamá-lo aqui na atualização,

207
00:09:08,980 --> 00:09:11,160
certificando-se de que podemos filmar. 

208
00:09:11,155 --> 00:09:13,215
Então, vou simplesmente chamar

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

210
00:09:18,035 --> 00:09:20,485
E agora precisamos voltar
 ao

211
00:09:20,480 --> 00:09:22,790
Unity e configurar tudo. 

212
00:09:22,790 --> 00:09:25,180
Então, vou abrir o Unity. 

213
00:09:25,175 --> 00:09:28,085
Você verá que o sistema de armas mudou. 

214
00:09:28,085 --> 00:09:31,075
E isso foi, isso é tão embaraçoso. 

215
00:09:31,070 --> 00:09:33,550
Nem percebi que estava lá e

216
00:09:33,545 --> 00:09:37,025
esqueci completamente que tínhamos exibido isso arrojado. 

217
00:09:37,025 --> 00:09:38,665
Mas, de qualquer forma, pelo menos você aprende

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

219
00:09:40,370 --> 00:09:43,130
Ou temos esse pequeno monólogo do motivo pelo qual

220
00:09:43,130 --> 00:09:47,170
não
 queremos acesso às variáveis. 

221
00:09:47,165 --> 00:09:48,955
Agora, não se preocupe. Electron,

222
00:09:48,950 --> 00:09:50,930
é claro, estaremos implementando muitos
 desses

223
00:09:50,930 --> 00:09:52,990
métodos à medida que avançamos

224
00:09:52,985 --> 00:09:55,415
e tornamos nosso código um pouco mais profissional. 

225
00:09:55,415 --> 00:09:58,795
Então, com isso, quem as coisas fizeram? 

226
00:09:58,790 --> 00:10:00,460
Vamos entrar,
 antes de tudo,

227
00:10:00,455 --> 00:10:03,755
como 70 pontos distantes da espingarda. 

228
00:10:03,755 --> 00:10:05,575
Vamos nos certificar

229
00:10:05,570 --> 00:10:07,370
que esta arma não é romântica e
 faremos

230
00:10:07,370 --> 00:10:12,040
o tempo entre os tiros em torno de 1 segundo, 1, não 21. 

231
00:10:12,035 --> 00:10:15,205
Precisamos de uma bala, então vamos para os Prefabs,

232
00:10:15,200 --> 00:10:18,640
balas
 quebradas e as balas da camada. 

233
00:10:18,635 --> 00:10:19,825
Salve isso. 

234
00:10:19,820 --> 00:10:23,920
Vamos entrar no doom player e aplicar todas as alterações. 

235
00:10:23,915 --> 00:10:27,815
E agora vou para O que mais temos? 

236
00:10:27,814 --> 00:10:30,364
Vamos executar o jogo e ver o que acontece. 

237
00:10:30,365 --> 00:10:34,735
Então o jogador, o jogador se move por aí,

238
00:10:34,730 --> 00:10:38,050
mas então o jogador se move e se devemos,

239
00:10:38,045 --> 00:10:40,115
lá vamos nós, podemos atirar. 

240
00:10:40,115 --> 00:10:42,305
E se eu segurar o botão do mouse,

241
00:10:42,305 --> 00:10:44,855
por algum motivo, ele não está disparando. 

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

243
00:10:47,990 --> 00:10:49,310
Oh, não é automático. 

244
00:10:49,310 --> 00:10:49,810
Certo. 

245
00:10:49,805 --> 00:10:51,415
Mas o problema é tão bom. 

246
00:10:51,410 --> 00:10:54,970
Agora, mesmo que eu mantenha pressionado o botão do mouse,

247
00:10:54,965 --> 00:10:58,885
não
 é automático, mas a espingarda ainda dispara muito. 

248
00:10:58,880 --> 00:11:01,220
E isso é algo que queremos consertar porque
 agora estamos

249
00:11:01,220 --> 00:11:04,000
falando de uma mecânica de tiro avançada. 

250
00:11:03,995 --> 00:11:06,505
Não é o mecânico de tiro habitual. 

251
00:11:06,500 --> 00:11:09,730
Precisamos ter certeza de que nossa filmagem seja consistente. 

252
00:11:09,725 --> 00:11:11,915
Então a espingarda, se segurarmos,
 ela dispara

253
00:11:11,915 --> 00:11:13,135
um botão,

254
00:11:13,130 --> 00:11:15,620
mas se continuarmos pressionando para que a espingarda não deva

255
00:11:15,620 --> 00:11:18,110
estar disparando tanto ao atirar. 

256
00:11:18,110 --> 00:11:19,960
Então, com isso fora do caminho,

257
00:11:19,955 --> 00:11:26,245
com toda essa seção, Alterar, criar scripts de tudo. 

258
00:11:26,240 --> 00:11:29,560
Espero que você goste e te vejo no próximo vídeo. 

259
00:11:29,555 --> 00:11:34,075
Certifique-se de que você sempre confirme suas alterações. 

260
00:11:34,070 --> 00:11:36,310
E eu vou fazer esse commit

261
00:11:36,305 --> 00:11:42,005
mover a mecânica de tiro da

262
00:11:42,004 --> 00:11:47,934
camada dois, a arma real. 

263
00:11:47,930 --> 00:11:50,920
Lá vamos nós, comprometemos as alterações

264
00:11:50,915 --> 00:11:53,735
e te vejo no próximo vídeo. 

