1
00:00:00,650 --> 00:00:05,970
Bem-vindo de volta meus colegas desenvolvedores de jogos em um novo vídeo. 

2
00:00:05,969 --> 00:00:11,629
E neste, na verdade, tornamos nossos inimigos um pouco estúpidos. 

3
00:00:11,625 --> 00:00:14,145
Então, mesmo que ele possa atirar,

4
00:00:14,145 --> 00:00:18,705
mas apenas o pequeno problema é que ele atira em si mesmo,

5
00:00:18,705 --> 00:00:20,445
o que às vezes é bom,

6
00:00:20,445 --> 00:00:22,425
especialmente se um inimigo muito duro. 

7
00:00:22,425 --> 00:00:25,235
Mas no nosso caso, vamos consertá-lo mais tarde. 

8
00:00:25,230 --> 00:00:27,930
Mas, por enquanto, tudo o que você precisa saber é que podemos

9
00:00:27,930 --> 00:00:31,330
mudar o tempo entre os tiros para, por exemplo, três. 

10
00:00:31,330 --> 00:00:33,410
E você pode ver que leva três segundos para atirar,

11
00:00:33,410 --> 00:00:35,660
mas não fazemos isso usando um contador. 

12
00:00:35,660 --> 00:00:38,990
Fazemos isso usando algo chamado de co-rotina,

13
00:00:38,990 --> 00:00:46,120
o que é um assustador muito difícil, mas é uma ferramenta credível para aprender no Unity. 

14
00:00:46,115 --> 00:00:50,245
Então eu preciso de sua concentração e sua atenção total. 

15
00:00:50,240 --> 00:00:55,890
Não vamos perder mais tempo e vamos começar. 

16
00:00:55,990 --> 00:01:02,930
Ok, então é hora de dar ao nosso inimigo a habilidade de atirar no jogador,

17
00:01:02,930 --> 00:01:05,420
ou pelo menos atacar o jogador. 

18
00:01:05,420 --> 00:01:10,460
Temos dois tipos diferentes de ataques que vamos implementar em nosso jogo. 

19
00:01:10,460 --> 00:01:11,990
Um deles será o malaio,

20
00:01:11,990 --> 00:01:15,190
um deles simplesmente atirará de longe ou

21
00:01:15,185 --> 00:01:19,235
jogando a espada e o exemplo dos esqueletos. 

22
00:01:19,235 --> 00:01:22,615
Mas vamos nos concentrar mais por enquanto no tiroteio à

23
00:01:22,610 --> 00:01:25,960
distância e fazer-lhes ataques corpo a corpo mais tarde.
 

24
00:01:25,955 --> 00:01:27,595
Talvez em uma seção diferente,

25
00:01:27,590 --> 00:01:31,570
pode estar na seção chefe onde temos o esqueleto gigante. 

26
00:01:31,565 --> 00:01:33,545
Ok, com isso fora do caminho,

27
00:01:33,545 --> 00:01:35,065
vamos prosseguir e começar. 

28
00:01:35,060 --> 00:01:38,350
A primeira coisa que vamos fazer é
 criar

29
00:01:38,345 --> 00:01:42,195
algumas variáveis e o caso do controlador inimigo 0. 

30
00:01:42,190 --> 00:01:45,970
Então, vamos entrar no controlador inimigo. 

31
00:01:45,965 --> 00:01:49,865
E aqui vamos criar algumas variáveis. 

32
00:01:49,865 --> 00:01:55,145
Então, antes do respingo da morte aqui,

33
00:01:55,145 --> 00:01:58,225
vamos adicionar ataque,

34
00:01:58,220 --> 00:02:03,710
apenas um comum, então sabemos o que tudo é e será um campo serializado

35
00:02:03,710 --> 00:02:09,400
do tipo booleano e será um ataque corpo a corpo. 

36
00:02:09,395 --> 00:02:11,585
Então, se for um atacante corpo a corpo,

37
00:02:11,585 --> 00:02:15,635
vamos verificá-lo no inspetor e ele atacará usando corpo a corpo. 

38
00:02:15,635 --> 00:02:18,505
Então vamos criar um campo serializado,

39
00:02:18,500 --> 00:02:25,040
que será um objeto de jogo e será o projétil inimigo. 

40
00:02:25,040 --> 00:02:30,460
Então, isso é o que o inimigo estará jogando fora de sua mão se ele atirar. 

41
00:02:30,455 --> 00:02:34,945
Finalmente, vamos criar um ponto de transformação. 

42
00:02:34,940 --> 00:02:38,180
Oh, desculpe, posição de fogo. 

43
00:02:38,180 --> 00:02:41,110
Ok, então agora temos o projétil. 

44
00:02:41,105 --> 00:02:43,435
Criaremos uma posição de arquivo. 

45
00:02:43,430 --> 00:02:49,180
E também queremos ter um tempo entre os tiros que o inimigo faz. 

46
00:02:49,175 --> 00:02:51,965
Então, é semelhante à forma como lidamos com nossa arma. 

47
00:02:51,965 --> 00:02:56,755
Então, flutuar o tempo entre os tiros. 

48
00:02:56,750 --> 00:03:04,520
E, finalmente, vamos criar um bool privado pronto para atirar. 

49
00:03:04,520 --> 00:03:06,380
Então, o que acontece aqui? 

50
00:03:06,380 --> 00:03:09,010
Quando estamos prontos para atirar, o inimigo atira,

51
00:03:09,005 --> 00:03:12,715
e toda vez que ele atira e entre tiros de tempo vai calcular. 

52
00:03:12,710 --> 00:03:14,270
Então fizemos isso usando,

53
00:03:14,270 --> 00:03:16,730
acredito no balcão. 

54
00:03:16,730 --> 00:03:20,180
Criamos um contador onde contamos o tempo até

55
00:03:20,180 --> 00:03:24,290
terminarmos uma certa quantidade de tempo entre os tiros quando terminar,

56
00:03:24,290 --> 00:03:25,900
então podemos mostrá-lo novamente. 

57
00:03:25,895 --> 00:03:27,545
Esse era um jeito antigo. 

58
00:03:27,545 --> 00:03:30,545
Agora vamos usar algo chamado co-rotina. 

59
00:03:30,545 --> 00:03:34,105
Então, antes de eu fazer isso e apresentá-los a co-rotinas,

60
00:03:34,100 --> 00:03:38,390
deixe-me antes de tudo preparar o pronto para atirar aqui como verdadeiro. 

61
00:03:38,390 --> 00:03:40,280
Então, sempre que o inimigo começa,

62
00:03:40,280 --> 00:03:42,950
ele está pronto para atirar e atualizar. 

63
00:03:42,950 --> 00:03:47,510
Vamos seguir em frente e criar algo aqui que é uma condição. 

64
00:03:47,509 --> 00:03:50,829
E se o atacante malaio,

65
00:03:50,824 --> 00:03:54,484
ou se não somos um meramente atacante, não somos. 

66
00:03:54,485 --> 00:03:59,305
Quando colocamos o ponto de exclamação novamente e estamos prontos para atirar. 

67
00:03:59,300 --> 00:04:03,050
Então o que vamos fazer é ir em frente

68
00:04:03,050 --> 00:04:07,040
e dizer isso pronto para atirar como falso. 

69
00:04:07,039 --> 00:04:11,859
E então aqui vamos começar um revestimento. 

70
00:04:11,854 --> 00:04:14,364
Então, o que é uma co-rotina? 

71
00:04:14,359 --> 00:04:16,179
Por que precisamos disso aqui? 

72
00:04:16,175 --> 00:04:19,055
Vamos ter uma pequena explicação. 

73
00:04:19,055 --> 00:04:21,715
Então, o que é um coltan? 

74
00:04:21,710 --> 00:04:25,970
Uma co-rotina é um método que pode suspender a execução das

75
00:04:25,970 --> 00:04:32,260
instruções até que uma determinada condição ou certas condições sejam atendidas. 

76
00:04:32,255 --> 00:04:36,025
Essas suspensões são conhecidas como rendimento. 

77
00:04:36,020 --> 00:04:37,730
E em nosso exemplo,

78
00:04:37,730 --> 00:04:42,950
estará suspendendo o tempo até que nosso inimigo esteja pronto para atirar novamente. 

79
00:04:42,950 --> 00:04:46,880
Então, vamos voltar ao nosso código e ver o que tudo isso significa. 

80
00:04:46,880 --> 00:04:48,460
Então, atualmente o que
 temos,

81
00:04:48,455 --> 00:04:51,605
verificamos a atualização que é chamada de cada quadro. 

82
00:04:51,605 --> 00:04:57,485
Verificamos se não estamos mirando atacante e estamos prontos para atirar,

83
00:04:57,485 --> 00:04:59,665
depois prontos para atirar, definir como falso. 

84
00:04:59,660 --> 00:05:04,430
E, por exemplo, aqui vamos atirar a bala. 

85
00:05:04,430 --> 00:05:07,600
Mas o que queremos, assim como
 tínhamos no balcão,

86
00:05:07,595 --> 00:05:12,235
queremos depois de um certo tempo poder atirar. 

87
00:05:12,230 --> 00:05:15,760
Novamente, temos esse conjunto como falso porque não queremos filmar

88
00:05:15,755 --> 00:05:19,555
cada quadro uma bala e ter gazilhões de balas. 

89
00:05:19,550 --> 00:05:23,530
Então, a maneira como corrigimos isso é usando uma co-rotina. 

90
00:05:23,525 --> 00:05:26,395
Então deixe-me ir em frente e criar uma corrotina
 aqui

91
00:05:26,390 --> 00:05:30,520
vai ser do tipo enumerador ocular. 

92
00:05:30,515 --> 00:05:34,675
Você não precisa se preocupar muito com o que é nosso enumerador,

93
00:05:34,670 --> 00:05:38,420
apenas saiba que é o tipo de revestimentos. 

94
00:05:38,420 --> 00:05:45,970
Vamos criar o nome de corrotina como inimigo de fogo, projétil. 

95
00:05:45,965 --> 00:05:53,045
Vou abrir os parênteses e vamos suspender o tempo. 

96
00:05:53,045 --> 00:05:55,865
Então, vou dizer esse rendimento. 

97
00:05:55,865 --> 00:05:58,835
Ok, Focus, rendimento. 

98
00:05:58,835 --> 00:06:00,785
Isso significa que estamos suspendendo. 

99
00:06:00,785 --> 00:06:04,205
Retorno. Novo. 

100
00:06:04,205 --> 00:06:07,735
Aguarde quatro segundos. 

101
00:06:07,730 --> 00:06:09,890
Vou abrir os suportes. 

102
00:06:09,890 --> 00:06:15,340
E quantos segundos queremos pesar como o tempo entre os tiros? 

103
00:06:15,335 --> 00:06:23,095
E depois disso, podemos ir em frente e instanciar a bala ou instanciar o projétil,

104
00:06:23,090 --> 00:06:25,520
que é o projétil,

105
00:06:25,520 --> 00:06:29,690
projétil
 inimigo onde instanciado na posição cinco,

106
00:06:29,690 --> 00:06:35,810
aquela posição e a posição, mas estação rho. 

107
00:06:35,810 --> 00:06:40,630
E então o que podemos fazer é preparar o pronto para atirar de volta à verdade. 

108
00:06:40,625 --> 00:06:42,985
E agora podemos mostrá-lo novamente. 

109
00:06:42,980 --> 00:06:44,530
Complicado, não é? 

110
00:06:44,525 --> 00:06:46,085
Sei menos explicar. 

111
00:06:46,085 --> 00:06:47,785
Ah, e antes que eu esqueça,

112
00:06:47,780 --> 00:06:50,660
e aqui depois que tivermos o tiro,

113
00:06:50,660 --> 00:06:52,900
começamos a co-rotina,

114
00:06:52,895 --> 00:06:56,635
que é o projétil inimigo distante. 

115
00:06:56,630 --> 00:06:59,000
Ok, agora você está ainda mais confuso. 

116
00:06:59,000 --> 00:07:02,050
Vamos tentar isso novamente e atualizar. 

117
00:07:02,045 --> 00:07:05,755
O que temos cada atualização de quadro como sendo fria,

118
00:07:05,750 --> 00:07:08,780
temos todas essas declarações aqui, que
 estaremos

119
00:07:08,780 --> 00:07:12,080
convertendo em métodos em apenas um pouco. 

120
00:07:12,080 --> 00:07:14,210
Mas o que nos concentramos é aqui,

121
00:07:14,210 --> 00:07:18,440
se não formos um atacante corpo a corpo e estamos prontos para atirar,

122
00:07:18,440 --> 00:07:19,660
prontos para atirar,

123
00:07:19,655 --> 00:07:22,625
definir como falso, e começamos um Colton. 

124
00:07:22,625 --> 00:07:24,325
Então, o que acontece aqui,

125
00:07:24,320 --> 00:07:26,260
pronto para filmar um conjunto para falso? 

126
00:07:26,255 --> 00:07:31,015
Isso significa que esse método ou essa condição aqui é falso. 

127
00:07:31,010 --> 00:07:33,830
Então, não filmamos novamente todos os quadros. 

128
00:07:33,830 --> 00:07:35,630
É por isso que o definimos como falso. 

129
00:07:35,630 --> 00:07:38,360
Mas como vamos defini-lo de volta para verdade? 

130
00:07:38,360 --> 00:07:41,030
Costumávamos fazer isso usando o contador. 

131
00:07:41,030 --> 00:07:43,670
Agora estamos usando algo um revestimento. 

132
00:07:43,669 --> 00:07:45,199
E assim como eu disse,

133
00:07:45,200 --> 00:07:47,860
co-rotina é chamada Usando co-rotina de início. 

134
00:07:47,855 --> 00:07:51,745
Você coloca o nome aqui e chama isso de enumerador. 

135
00:07:51,740 --> 00:07:54,560
Não se preocupe. Não se preocupe com isso. Por enquanto. 

136
00:07:54,560 --> 00:07:57,190
Você quer se aprofundar nisso? Seja meu convidado. 

137
00:07:57,185 --> 00:08:00,055
Você não precisa saber exatamente o que isso significa. 

138
00:08:00,050 --> 00:08:01,930
Temos o projétil inimigo distante,

139
00:08:01,925 --> 00:08:04,495
então temos essa expansão, que é rendimento. 

140
00:08:04,490 --> 00:08:08,180
Então temos o retorno novo, espere quatro segundos. 

141
00:08:08,180 --> 00:08:10,700
Então, como temos um numerador de íons,

142
00:08:10,700 --> 00:08:15,230
temos que retornar um novo peso quatro segundos. O que isso faz? 

143
00:08:15,230 --> 00:08:19,160
Assim como diz, ele espera por alguns segundos,

144
00:08:19,160 --> 00:08:21,110
que é o tempo entre os tiros. 

145
00:08:21,110 --> 00:08:23,530
E depois de esperar por isso,

146
00:08:23,525 --> 00:08:27,125
instanciamos o projétil inimigo. 

147
00:08:27,125 --> 00:08:32,005
inimigo atira, e ele está pronto para atirar de novo, de novo e de novo. 

148
00:08:32,000 --> 00:08:34,360
Então, o que acontece aqui? 

149
00:08:34,355 --> 00:08:35,785
Primeiro de tudo, começamos,

150
00:08:35,780 --> 00:08:38,210
temos o pronto para atirar para verdade. 

151
00:08:38,210 --> 00:08:39,850
Nós deveríamos. 

152
00:08:39,845 --> 00:08:42,265
É falso, não atiramos mais. 

153
00:08:42,260 --> 00:08:45,350
E quando o tempo entre os tiros termina,

154
00:08:45,350 --> 00:08:50,120
jogamos o projétil e, em seguida, estamos prontos para atirar novamente. 

155
00:08:50,120 --> 00:08:52,960
Vamos testar isso e ver como ele funciona. 

156
00:08:52,955 --> 00:08:55,255
Vou voltar para a Unity. 

157
00:08:55,250 --> 00:09:00,500
Vou ver onde realmente temos nossa faca 0. 

158
00:09:00,500 --> 00:09:01,760
Então, não temos uma faca. 

159
00:09:01,760 --> 00:09:05,780
Então, o que faremos é simplesmente usar a bala que já temos. 

160
00:09:05,780 --> 00:09:08,090
Então, nos prefabs,

161
00:09:08,090 --> 00:09:09,800
temos os folhetos do jogador. 

162
00:09:09,800 --> 00:09:12,650
Basta usar isso por enquanto, a posição de fogo,

163
00:09:12,650 --> 00:09:14,860
deixe-me adicionar o botão direito do mouse,

164
00:09:14,855 --> 00:09:16,775
criar um objeto de jogo vazio. 

165
00:09:16,775 --> 00:09:19,265
E vou colocá-lo aqui,

166
00:09:19,265 --> 00:09:20,815
são executados quase aqui. 

167
00:09:20,810 --> 00:09:28,370
Então esta será a posição de fogo no inimigo. 

168
00:09:28,370 --> 00:09:30,710
Nós fornecemos-lhe a posição FAR

169
00:09:30,710 --> 00:09:33,730
definida entre os tiros seria de 1 segundo. Vamos salvar isso. 

170
00:09:33,725 --> 00:09:42,025
E agora vamos nos certificar de que ele não é um atacante. 

171
00:09:42,020 --> 00:09:44,770
Vamos executar o jogo e ver o que acontece. 

172
00:09:44,765 --> 00:09:47,185
Então agora, lá vai você. 

173
00:09:47,180 --> 00:09:49,820
Você pode ver que ele está instanciando a bala,

174
00:09:49,820 --> 00:09:53,930
mas ele está atirando em si mesmo e no rosto. 

175
00:09:53,930 --> 00:09:55,910
Então, se eu pausar isso por um segundo,

176
00:09:55,910 --> 00:09:57,530
você pode ver que a posição cinco,

177
00:09:57,530 --> 00:09:59,450
é assim
 que ela está sendo direcionada. 

178
00:09:59,450 --> 00:10:05,660
E sabemos que a bala dos jogadores só viajou na direção certa. 

179
00:10:05,660 --> 00:10:07,100
Sei que é meio engraçado. 

180
00:10:07,100 --> 00:10:09,440
Vamos tentar isso de uma maneira diferente. 

181
00:10:09,440 --> 00:10:11,060
Mas, em qualquer caso,

182
00:10:11,060 --> 00:10:15,350
não
 vamos nos preocupar muito com isso por enquanto, porque no próximo vídeo estaremos

183
00:10:15,350 --> 00:10:21,110
criando balas inimigas adequadas que realmente vão longe para o jogador ou não. 

184
00:10:21,110 --> 00:10:23,330
Até balas criarão o projétil,

185
00:10:23,330 --> 00:10:25,480
que é o nono do inimigo. 

186
00:10:25,475 --> 00:10:29,315
Ele vai jogá-lo como o jogador e não atirar em si mesmo. 

187
00:10:29,315 --> 00:10:33,655
Mas você pode ver agora que isso está funcionando usando o Colton. 

188
00:10:33,650 --> 00:10:36,410
Se eu clicar de volta no inimigo aqui,

189
00:10:36,410 --> 00:10:40,000
você pode ver que posso aumentar o tempo entre os tiros para 2. 

190
00:10:39,995 --> 00:10:43,795
Então agora, a cada dois segundos, temos esse ataque. 

191
00:10:43,790 --> 00:10:46,370
Então, espero que você tenha gostado do vídeo. 

192
00:10:46,370 --> 00:10:49,100
Sei que a mecânica de tiro não é perfeita,

193
00:10:49,100 --> 00:10:51,740
mas como eu disse no próximo vídeo,

194
00:10:51,740 --> 00:10:53,410
estaremos criando balas melhores. 

195
00:10:53,405 --> 00:10:56,985
Espero que você esteja cometendo todas as suas mudanças. 

196
00:10:56,989 --> 00:11:01,659
E no próximo vídeo estaremos fazendo balas inimigas apropriadas,

197
00:11:01,655 --> 00:11:03,685
gentios, ou o que quer que você queira chamar. 

198
00:11:03,680 --> 00:11:06,180
Então, vejo você. 

