1
00:00:00,240 --> 00:00:04,380
Bem-vindo de volta, meus colegas desenvolvedores de jogos. 

2
00:00:04,375 --> 00:00:07,335
Neste vídeo, vamos adicionar balas. 

3
00:00:07,330 --> 00:00:10,960
Nós os chamamos de balas, mas são espadas para o nosso esqueleto. 

4
00:00:10,960 --> 00:00:13,510
Então, quando executamos nosso jogo, olhe o que acontece. 

5
00:00:13,510 --> 00:00:17,770
Você pode ver que o esqueleto está realmente jogando tipos. 

6
00:00:17,770 --> 00:00:20,050
E não só isso, se andarmos por aí,

7
00:00:20,050 --> 00:00:22,390
as espadas começam a nos seguir. 

8
00:00:22,390 --> 00:00:23,490
E se você notar,

9
00:00:23,485 --> 00:00:26,325
se mudarmos a fonte que já está voando,

10
00:00:26,320 --> 00:00:30,760
continue voando na direção porque há algo muito recente que aconteceu. 

11
00:00:30,760 --> 00:00:35,160
Eles descobriram que os tipos não mudam de direção no ar. 

12
00:00:35,155 --> 00:00:38,505
Descoberta incrível. Não vamos perder mais tempo com o nosso,

13
00:00:38,500 --> 00:00:40,140
não
 vamos chamá-los de piadas estúpidas. 

14
00:00:40,135 --> 00:00:42,885
E vamos começar. 

15
00:00:42,885 --> 00:00:49,675
Oh, ok, então é hora de criar algumas balas inimigas apropriadas. 

16
00:00:49,670 --> 00:00:55,190
Então, a primeira coisa que vamos fazer é ir em frente

17
00:00:55,190 --> 00:01:01,100
e pegar os sprites da nossa espada ou do tipo de inimigo. 

18
00:01:01,100 --> 00:01:03,220
Então, se eu entrar nos sprites,

19
00:01:03,215 --> 00:01:06,515
se eu entrar no inimigo,

20
00:01:06,515 --> 00:01:09,485
nos inimigos muçulmanos, o esqueleto. 

21
00:01:09,485 --> 00:01:14,245
E aqui eu tenho o sprite para onde ele está? 

22
00:01:14,240 --> 00:01:16,940
Onde estão os pensamentos voadores? 

23
00:01:16,940 --> 00:01:19,160
Então lá vai você. Este é o voo classificado. 

24
00:01:19,160 --> 00:01:20,980
Criamos qualquer coisa para isso. 

25
00:01:20,975 --> 00:01:22,375
Acho que não o fizemos. 

26
00:01:22,370 --> 00:01:26,620
Então, vou criar um objeto de jogo vazio, redefinir sua posição. 

27
00:01:26,615 --> 00:01:29,695
E eu vou dar a ele um dos,

28
00:01:29,690 --> 00:01:31,250
onde está, o tipo? 

29
00:01:31,250 --> 00:01:34,230
Então, vamos dar a ele este. 

30
00:01:34,450 --> 00:01:37,250
Vou adicionar quatro. 

31
00:01:37,250 --> 00:01:40,120
Posso simplesmente adicionar a espada aqui. 

32
00:01:40,115 --> 00:01:48,235
Basta remover este objeto do jogo e eu chamarei isso de espada de esqueleto voador. Lá vai você. 

33
00:01:48,230 --> 00:01:50,510
E vou criar uma animação. 

34
00:01:50,510 --> 00:01:55,210
Então, vou para os ativos e animações,

35
00:01:55,205 --> 00:01:58,505
e vou para animação esqueleto. 

36
00:01:58,505 --> 00:02:01,525
E vamos chamá-lo de disco voador. 

37
00:02:01,520 --> 00:02:02,690
Clique em Salvar. 

38
00:02:02,690 --> 00:02:08,690
Lá vamos nós. Então agora temos o animador e deixe-me escolher todos os sprites do tipo. 

39
00:02:08,690 --> 00:02:11,170
E vamos em frente e arrastá-los para cá. 

40
00:02:11,165 --> 00:02:13,645
Então agora, se executarmos a animação, lá vamos nós,

41
00:02:13,640 --> 00:02:18,230
você pode ver que temos uma espada extremamente rápida que a move. 

42
00:02:18,230 --> 00:02:23,990
Certo, então está quase tudo bem. Então lá vai você. 

43
00:02:23,990 --> 00:02:26,950
Você pode ver que é assim que nosso tipo funciona. 

44
00:02:26,945 --> 00:02:30,235
E explode antes que chegue ao inimigo. 

45
00:02:30,230 --> 00:02:34,910
Por isso, tem cerca de 40 quadros de tempo de voo. 

46
00:02:34,910 --> 00:02:41,000
E isso é bom. Queremos que a espada pelo menos possa destruir em algum alcance. 

47
00:02:41,000 --> 00:02:43,450
Não queremos que o sal esteja voando o tempo todo agora,

48
00:02:43,445 --> 00:02:46,765
se você quiser ter seu sal voando o tempo todo,

49
00:02:46,760 --> 00:02:49,150
você precisará adicionar algumas coisas. 

50
00:02:49,145 --> 00:02:53,515
Então, por exemplo, você pode simplesmente colocá-lo em um loop e o sal continuará voando
 e voando

51
00:02:53,510 --> 00:02:57,890
sem nunca ser destruído até que ele atinja o jogador. 

52
00:02:57,890 --> 00:03:01,550
E, finalmente, justo pode ser destruído com algumas condições. 

53
00:03:01,550 --> 00:03:04,810
Mas não vamos nos preocupar muito com isso agora. 

54
00:03:04,805 --> 00:03:08,315
O que faremos é abrir os scripts aqui. 

55
00:03:08,315 --> 00:03:10,495
Vamos entrar nas balas e
 clicaremos com o

56
00:03:10,490 --> 00:03:13,400
botão direito do mouse e criaremos um novo script C-sharp,

57
00:03:13,400 --> 00:03:18,980
que será o controlador de bala inimigo. 

58
00:03:18,980 --> 00:03:21,620
E vamos chamá-lo de bala ou projétil,

59
00:03:21,620 --> 00:03:23,500
mas por enquanto vamos chamá-lo de bala. 

60
00:03:23,495 --> 00:03:26,165
Então, vou salvar isso. 

61
00:03:26,165 --> 00:03:29,425
E vou clicar duas vezes e abrir isso. 

62
00:03:29,420 --> 00:03:34,040
Então, a primeira coisa que vamos precisar é de um campo serializado,

63
00:03:34,040 --> 00:03:38,530
que é um flutuador para a velocidade da bala. 

64
00:03:38,525 --> 00:03:42,925
E eu vou usar bala e meio que projetado à medida que prosseguimos. 

65
00:03:42,920 --> 00:03:46,190
E vamos precisar de uma referência à direção dos jogadores. 

66
00:03:46,190 --> 00:03:53,930
Então, vou criar um vetor privado 3 e ele será a direção do jogador. 

67
00:03:53,930 --> 00:03:57,190
Então, como a bala inimiga realmente vai funcionar? 

68
00:03:57,185 --> 00:03:59,645
O que faremos é então começar,

69
00:03:59,645 --> 00:04:02,125
vamos determinar a direção dos jogadores. 

70
00:04:02,120 --> 00:04:06,170
Então, será igual encontrar objetos do tipo. 

71
00:04:06,170 --> 00:04:10,210
E vai ser o controlador de camada. 

72
00:04:10,205 --> 00:04:16,525
E a partir daqui vamos seguir em frente e usar a posição de ponto de transformação

73
00:04:16,520 --> 00:04:22,990
do jogador que encontramos menos a posição transform.py ponto o.

74
00:04:22,985 --> 00:04:25,405
É
 isso. Não, não normalizado,

75
00:04:25,400 --> 00:04:27,110
não, não agora. 

76
00:04:27,110 --> 00:04:30,950
Então, por que estamos fazendo isso instalado e não uma atualização? 

77
00:04:30,950 --> 00:04:34,580
Porque não queremos que a bala continue seguindo o jogador. 

78
00:04:34,580 --> 00:04:39,620
Só queremos ter a direção do jogador assim que a bala for disparada. 

79
00:04:39,620 --> 00:04:41,270
Então, quando a bala é disparada,

80
00:04:41,270 --> 00:04:43,450
estamos instanciando essa bala. 

81
00:04:43,445 --> 00:04:47,215
E essa bala. Assim que ele acordar. Comece. 

82
00:04:47,210 --> 00:04:49,820
Vamos começar. Ele encontrará o objeto do jogador,

83
00:04:49,820 --> 00:04:51,980
obterá a direção do jogador. 

84
00:04:51,980 --> 00:04:58,490
E então vamos nos certificar de que a direção do jogador se normalize. 

85
00:04:58,490 --> 00:04:59,890
Lá vamos nós. 

86
00:04:59,885 --> 00:05:03,505
Então, dessa forma, não é mais rápido se estiver se movendo em uma diagonal. 

87
00:05:03,500 --> 00:05:07,130
Certo, ótimo. Agora, a próxima coisa que queremos fazer é garantir

88
00:05:07,130 --> 00:05:11,270
que essa bala seja destruída sempre que atingir um obstáculo. 

89
00:05:11,270 --> 00:05:12,670
Mas não só isso,

90
00:05:12,665 --> 00:05:17,045
queremos também reduzir a saúde do jogador mais tarde, quando ele o atinge. 

91
00:05:17,045 --> 00:05:19,805
Então, uma das coisas que precisaremos fazer. 

92
00:05:19,805 --> 00:05:21,995
O problema é um desafio? 

93
00:05:21,995 --> 00:05:23,615
Que tal essa transição? 

94
00:05:23,615 --> 00:05:26,245
A palha, a bala e verifique o jogador. 

95
00:05:26,240 --> 00:05:27,760
Então você precisará criar,

96
00:05:27,755 --> 00:05:31,175
isso deve ser M no Trigger Enter to D para a bala. 

97
00:05:31,175 --> 00:05:35,585
Você precisa verificar se o que atingimos foi o jogador por sua etiqueta,

98
00:05:35,585 --> 00:05:38,545
precisará destruir a bala quando ela atingir algo. 

99
00:05:38,540 --> 00:05:40,220
E eu vou te dar uma pequena dica,

100
00:05:40,220 --> 00:05:41,630
você precisará usar a palha. 

101
00:05:41,630 --> 00:05:42,860
Bem, isso não é realmente,

102
00:05:42,860 --> 00:05:44,390
foi muito fácil,

103
00:05:44,390 --> 00:05:48,230
mas pensei que talvez porque é a primeira vez que você usa destruído,

104
00:05:48,230 --> 00:05:49,810
talvez você precise disso. 

105
00:05:49,805 --> 00:05:53,135
Portanto, lembre-se de que você também precisará adicionar um gatilho a isso. 

106
00:05:53,135 --> 00:05:59,965
Pause o vídeo agora mesmo e vá fazer o Shalon k.

107
00:05:59,960 --> 00:06:03,260
Então há algo que eu deixei do desafio. 

108
00:06:03,260 --> 00:06:07,580
Eu mencionei um pouco e espero que esse sapato que isso por conta própria,

109
00:06:07,580 --> 00:06:10,390
eu vou ter que adicionar um colisor. 

110
00:06:10,385 --> 00:06:14,135
Então, um colisor circular 2D, é bem grande. 

111
00:06:14,135 --> 00:06:17,545
Vou colocar o raio acima, tomar grande. 

112
00:06:17,540 --> 00:06:20,150
Vou, ok,

113
00:06:20,150 --> 00:06:22,510
então acho que esse raio é bom o suficiente. 

114
00:06:22,505 --> 00:06:24,835
Vamos ver como isso vai voar. 

115
00:06:24,830 --> 00:06:26,360
Então este é o círculo completo. 

116
00:06:26,360 --> 00:06:30,370
Então, vou movê-lo um pouco para baixo,

117
00:06:30,365 --> 00:06:32,575
um pouco assim ou tudo bem, ótimo. 

118
00:06:32,570 --> 00:06:34,310
Então agora temos o colisor,

119
00:06:34,310 --> 00:06:36,590
nós nos certificamos de torná-lo um gatilho. 

120
00:06:36,590 --> 00:06:42,170
Vou salvar isso e vou seguir em frente no o e adicionar
 também os

121
00:06:42,170 --> 00:06:47,870
scripts do controlador de bala inimigo. 

122
00:06:47,870 --> 00:06:48,770
Lá vamos nós. 

123
00:06:48,770 --> 00:06:51,500
A velocidade do barco será, vamos fazer 34. 

124
00:06:51,500 --> 00:06:53,960
Agora, clique duas vezes sobre isso, abra isso. 

125
00:06:53,960 --> 00:06:57,950
E agora o que vamos fazer é criar um no açúcar entra,

126
00:06:57,950 --> 00:07:01,880
então em Trigger Enter to D.

127
00:07:01,880 --> 00:07:10,120
E aqui vamos verificar se a tag collision.com. 

128
00:07:10,115 --> 00:07:13,585
E se for o jogador,

129
00:07:13,580 --> 00:07:16,790
obviamente precisaremos criar a pilha em um pouco. 

130
00:07:16,790 --> 00:07:21,980
Se for, o jogador simplesmente usará o log de pontos de depuração. 

131
00:07:21,980 --> 00:07:27,300
A camada foi atingida. 

132
00:07:27,300 --> 00:07:31,390
E então nós simplesmente vamos tirar isso,

133
00:07:31,390 --> 00:07:33,570
seja qual for o alvo,

134
00:07:33,565 --> 00:07:36,615
objeto de jogo destruidor de
 alma. 

135
00:07:36,610 --> 00:07:37,870
Salve isso. 

136
00:07:37,870 --> 00:07:41,470
Agora, o passo final é que queremos mover nossa bala. 

137
00:07:41,470 --> 00:07:43,450
E como vamos mover nossa bala? 

138
00:07:43,450 --> 00:07:46,240
Bem, obviamente podemos usar o corpo rígido novamente,

139
00:07:46,240 --> 00:07:49,380
assim como fizemos com a bala do jogador. 

140
00:07:49,375 --> 00:07:51,565
Mas acho que sou esse caso,

141
00:07:51,565 --> 00:07:57,115
é muito melhor usar a maneira antiquada que é movida a transformação do livro. 

142
00:07:57,115 --> 00:07:58,995
Primeiro de tudo, há muitos motivos. 

143
00:07:58,990 --> 00:08:04,300
Primeiro de tudo, podemos fazer isso com bastante facilidade e é muito eficaz. 

144
00:08:04,300 --> 00:08:08,890
E a segunda razão é que não queremos ter muitos corpos rígidos e nosso jogo,

145
00:08:08,890 --> 00:08:11,090
porque sempre que você tem um corpo rígido,

146
00:08:11,090 --> 00:08:13,580
isso significa que o motor de física está funcionando. 

147
00:08:13,580 --> 00:08:16,390
E quando há um mecanismo de física está funcionando,

148
00:08:16,385 --> 00:08:19,525
isso significa que há mais poder computacional. 

149
00:08:19,520 --> 00:08:23,170
Então, na última vez que usamos a manteiga, nosso jogo corre. 

150
00:08:23,165 --> 00:08:26,245
Então, uma atualização, vou acessar a transformação. 

151
00:08:26,240 --> 00:08:29,570
Eu vou, quero dizer a posição sobre a transformação. 

152
00:08:29,570 --> 00:08:32,690
E vou continuar aumentando isso. 

153
00:08:32,690 --> 00:08:36,170
Indo para a direção do jogador,
 cronometre

154
00:08:36,170 --> 00:08:38,540
a velocidade da bala. 

155
00:08:38,540 --> 00:08:45,040
Então, essa velocidade, e, claro, vou usar o tempo, o tempo delta. 

156
00:08:45,035 --> 00:08:49,075
Assim que a bala é instanciada,

157
00:08:49,070 --> 00:08:52,420
a direção do jogador é encontrada. 

158
00:08:52,415 --> 00:08:58,015
E cada quadro em que a transformação é movida em direção a esse jogador. 

159
00:08:58,010 --> 00:09:00,190
E assim que ele atinge o jogador,

160
00:09:00,185 --> 00:09:03,175
o objeto do jogo é destruído. 

161
00:09:03,170 --> 00:09:06,560
E se tivéssemos uma camada profunda ou qualquer outro objeto que seja destruído,

162
00:09:06,560 --> 00:09:08,420
mas se
 tivéssemos o jogador especificamente,

163
00:09:08,420 --> 00:09:13,490
o jogador foi atingido será colocado ou impresso no console. 

164
00:09:13,490 --> 00:09:15,040
Então, vou salvar isso. 

165
00:09:15,035 --> 00:09:17,725
Vou voltar para o meu novamente. 

166
00:09:17,720 --> 00:09:21,730
E vamos ver, vamos fazer disso um pré-fabricado. 

167
00:09:21,725 --> 00:09:28,535
Pré-fabricado. Vou clicar com o botão direito do mouse e aqui e criar uma pasta, 40 marcadores. 

168
00:09:28,535 --> 00:09:31,565
E a bala do jogador aqui. 

169
00:09:31,560 --> 00:09:37,660
Clique duas vezes aqui, defina a classificação do esqueleto voador aqui. 

170
00:09:37,660 --> 00:09:39,760
Vou excluí-lo. 

171
00:09:39,760 --> 00:09:41,400
Vamos salvar isso. 

172
00:09:41,395 --> 00:09:45,675
E vamos seguir em frente e executar o jogo e ver o que acontece. 

173
00:09:45,670 --> 00:09:49,350
Então, ok, não mudamos a pilha. 

174
00:09:49,345 --> 00:09:52,785
Não alteramos as balas reais do jogador. 

175
00:09:52,780 --> 00:09:53,440
Então lá vamos nós. 

176
00:09:53,440 --> 00:09:55,400
Vamos adicionar este esqueleto voador,

177
00:09:55,404 --> 00:09:58,094
classificar o jogo. 

178
00:09:58,090 --> 00:10:01,590
E como você pode ver,

179
00:10:01,585 --> 00:10:07,815
nada está acontecendo porque a bala está nas camadas de classificação erradas. 

180
00:10:07,810 --> 00:10:10,210
Então, na camada de classificação inimiga,

181
00:10:10,210 --> 00:10:11,710
agora devemos salvar isso. 

182
00:10:11,710 --> 00:10:14,510
Agora, quando corremos, devemos. 

183
00:10:14,505 --> 00:10:20,305
Sim, lá vamos nós. Você pode ver que temos esses tipos voando em direção ao jogador. 

184
00:10:20,300 --> 00:10:21,830
E quando
 tínhamos o jogador,

185
00:10:21,830 --> 00:10:24,610
não temos nada impresso no console. 

186
00:10:24,605 --> 00:10:28,855
Por que isso? Bem, vamos verificar, vai salvar isso. 

187
00:10:28,850 --> 00:10:34,130
Então eu esqueci o passo mais importante e o que você deveria ter feito no desafio,

188
00:10:34,130 --> 00:10:37,130
presumo que você saberia o que fazer e o desafio,

189
00:10:37,130 --> 00:10:39,130
porque estamos verificando a tag do jogador,

190
00:10:39,125 --> 00:10:42,065
mas aparentemente pela memória, não é ótimo? 

191
00:10:42,065 --> 00:10:48,095
Então o problema aqui é que não marcamos o jogador também, o jogador. 

192
00:10:48,095 --> 00:10:51,205
Como você pode ver, já temos a tag aqui. 

193
00:10:51,200 --> 00:10:54,490
Um grande erro, não se preocupe com isso. 

194
00:10:54,485 --> 00:10:55,625
Vivemos, aprendemos,

195
00:10:55,625 --> 00:10:57,265
aplicamos nossas mudanças. 

196
00:10:57,260 --> 00:10:59,090
Nós salvamos tudo isso, executamos o jogo. 

197
00:10:59,090 --> 00:11:03,050
E agora o que devemos ver é que lá vai você. 

198
00:11:03,050 --> 00:11:05,720
Assim que o jogador classificou,

199
00:11:05,720 --> 00:11:10,570
o jogador foi atingido e você pode vê-lo várias vezes e aqui 4, 5, etc

200
00:11:10,565 --> 00:11:13,615
Agora, o que eu queria mostrar é se eu mover o jogador,

201
00:11:13,610 --> 00:11:18,410
as espadas que já estão indo na direção do o jogador não mudará. 

202
00:11:18,410 --> 00:11:21,230
Então lá vai você. Você pode ver que agora

203
00:11:21,230 --> 00:11:24,320
siga o jogador enquanto ele se move e podemos destruí-lo? 

204
00:11:24,320 --> 00:11:25,300
Sim, podemos. 

205
00:11:25,295 --> 00:11:28,285
Se você quiser, você pode adicionar outra camada,

206
00:11:28,280 --> 00:11:30,430
que é a camada de bala inimiga,

207
00:11:30,425 --> 00:11:35,065
e certifique-se de que as balas do jogador não interajam com o inimigo da bala. 

208
00:11:35,060 --> 00:11:36,160
A escolha é sua. 

209
00:11:36,155 --> 00:11:38,905
Que mecânica de jogo você tem em seu jogo? 

210
00:11:38,900 --> 00:11:40,180
Faça isso, aplique? 

211
00:11:40,175 --> 00:11:42,295
Eu adoraria ver se você me mostrar. 

212
00:11:42,290 --> 00:11:44,350
E não foi isso, espero que você goste. 

213
00:11:44,345 --> 00:11:48,805
Espero que você esteja cometendo suas alterações a cada vídeo. 

214
00:11:48,800 --> 00:11:53,480
E no próximo, vamos adicionar um alcance ao
 tiro inimigo para

215
00:11:53,480 --> 00:11:58,760
que não queremos deixar que nosso ME garanta de onde quer que no mapa queremos ter um,

216
00:11:58,760 --> 00:12:02,300
algum tipo de alcance em que o inimigo possa atirar em nós. 

217
00:12:02,300 --> 00:12:05,370
Então, vejo você. 

