1
00:00:00,000 --> 00:00:06,240
Ei, bem-vindo de volta, Meus desenvolvedores de jogos favoritos neste vídeo,

2
00:00:06,235 --> 00:00:10,125
nossa arma não é mais um objeto estático. 

3
00:00:10,120 --> 00:00:11,740
Se você olhar de perto,

4
00:00:11,740 --> 00:00:13,810
você pode ver que quando nos movemos para baixo,

5
00:00:13,810 --> 00:00:15,250
a arma se move para baixo. 

6
00:00:15,250 --> 00:00:16,600
Quando olhamos para cima,

7
00:00:16,600 --> 00:00:17,970
a arma trava. 

8
00:00:17,965 --> 00:00:21,225
Obviamente, ainda há algumas coisas que precisam ser
 consertadas

9
00:00:21,220 --> 00:00:25,740
porque segurar a arma assim que eu sinto é muito desconfortável,

10
00:00:25,735 --> 00:00:27,505
mas não se preocupe com isso. 

11
00:00:27,505 --> 00:00:31,735
Este é o primeiro passo para nomear nossa arma corretamente. 

12
00:00:31,735 --> 00:00:35,635
Então, não vamos perder mais tempo e vamos começar. 

13
00:00:35,635 --> 00:00:37,335
Há muita matemática nisso. 

14
00:00:37,330 --> 00:00:40,070
Então, coloque seus bonés de pensamento. 

15
00:00:41,770 --> 00:00:46,810
Agora que estamos nos movendo e estamos esbarrando nas coisas,

16
00:00:46,805 --> 00:00:50,135
é hora de começar a apontar nossa arma. 

17
00:00:50,135 --> 00:00:55,495
Para fazer isso, queremos girar a arma em torno de uma determinada posição. 

18
00:00:55,490 --> 00:01:01,460
Não queremos realmente estar girando a arma exata porque se olharmos aqui,

19
00:01:01,460 --> 00:01:03,400
se formos para a cena,

20
00:01:03,395 --> 00:01:04,475
você pode ver agora mesmo,

21
00:01:04,475 --> 00:01:06,995
se tentarmos girar a arma como ela é,

22
00:01:06,995 --> 00:01:08,675
ela não parece tão boa. 

23
00:01:08,675 --> 00:01:13,415
Precisamos de um ponto a partir do qual a arma estará girando. 

24
00:01:13,415 --> 00:01:17,915
Então, o que faremos é clicar com o botão direito do mouse no reprodutor de domo. 

25
00:01:17,915 --> 00:01:20,675
Vamos criar um objeto de jogo vazio. 

26
00:01:20,675 --> 00:01:26,305
Vamos chamá-lo de braço de armas. 

27
00:01:26,300 --> 00:01:29,720
E vamos movê-lo para um certo ponto. 

28
00:01:29,720 --> 00:01:34,940
E este é o ponto em que a arma ou a partir do qual a arma estará girando. 

29
00:01:34,940 --> 00:01:40,570
Então, vou colocá-lo em torno de quase a mão ou o braço do jogador. 

30
00:01:40,565 --> 00:01:42,575
E eu vou fazer a espingarda,

31
00:01:42,575 --> 00:01:45,575
um filho dessas armas são. 

32
00:01:45,575 --> 00:01:49,495
Então, agora, quando giramos o braço das armas,

33
00:01:49,490 --> 00:01:55,400
você notará que a espingarda permanece em seu lugar quase ao redor do braço aqui,

34
00:01:55,400 --> 00:02:02,720
e parece muito mais natural à medida que giramos a espingarda ou as armas estão. 

35
00:02:02,720 --> 00:02:05,530
Então agora é hora de um pouco de frio. 

36
00:02:05,525 --> 00:02:07,105
Mas antes de fazermos isso,

37
00:02:07,100 --> 00:02:10,330
como vamos realmente girar esse braço? 

38
00:02:10,325 --> 00:02:14,065
Vai depender de onde nossa boca está. 

39
00:02:14,060 --> 00:02:16,130
Então, vamos dizer que estamos aqui em cima. 

40
00:02:16,130 --> 00:02:19,190
Queremos que a arma de tiro aponte para o mouse. 

41
00:02:19,190 --> 00:02:21,770
Como vamos calcular isso? 

42
00:02:21,770 --> 00:02:29,210
Bem, vamos precisar de alguns pontos e deixe-me explicar isso usando matemática, sim matemática. 

43
00:02:29,210 --> 00:02:31,130
Então, vamos começar. 

44
00:02:31,130 --> 00:02:34,900
Primeiro, precisamos da posição do jogador na tela. 

45
00:02:34,895 --> 00:02:37,345
Bem, eu uso o termo posição do jogador,

46
00:02:37,340 --> 00:02:42,500
mas na verdade é o ponto em que estamos girando a espingarda ao redor. 

47
00:02:42,500 --> 00:02:44,600
Mas, por enquanto, vamos manter isso simples. 

48
00:02:44,600 --> 00:02:46,690
Chame isso de posição do jogador

49
00:02:46,685 --> 00:02:49,585
e temos a posição do mouse na tela. 

50
00:02:49,580 --> 00:02:55,360
Então, o que queremos é que queremos obter o vetor nesses dois pontos. 

51
00:02:55,355 --> 00:02:59,345
Esta é a direção que se foi apontando. 

52
00:02:59,345 --> 00:03:06,055
Mas como vamos calcular o ângulo em que queremos que a arma esteja apontando? 

53
00:03:06,050 --> 00:03:11,390
Bem, conhecemos a exposição e conhecemos a posição y. 

54
00:03:11,390 --> 00:03:13,580
Bem, eu quis dizer X e Y.

55
00:03:13,580 --> 00:03:18,830
Então o que podemos fazer é usar algo chamado tangente de arco. 

56
00:03:18,830 --> 00:03:22,670
E isso é algo disponível para nós em matemática. 

57
00:03:22,670 --> 00:03:26,170
F da unidade é biblioteca. 

58
00:03:26,165 --> 00:03:29,555
Então, podemos usar isso para calcular o arctan. 

59
00:03:29,555 --> 00:03:33,595
E se você não sabe o que arctan ou você nem sabe o que Dan é

60
00:03:33,590 --> 00:03:38,210
tangente Eu acredito que se chama é o lado da frente,

61
00:03:38,210 --> 00:03:41,960
que é o y dividido por V x.

62
00:03:41,960 --> 00:03:43,370
E quando fazemos isso,

63
00:03:43,370 --> 00:03:45,050
obtemos um certo número,

64
00:03:45,050 --> 00:03:46,450
que é a tangente. 

65
00:03:46,445 --> 00:03:48,355
Então, para obter o ângulo,

66
00:03:48,350 --> 00:03:50,930
usamos algo chamado tangente do arco,

67
00:03:50,930 --> 00:03:52,960
que é meio inverso. 

68
00:03:52,955 --> 00:03:57,035
Mas tudo o que você precisa saber é que temos a diferença na altura,

69
00:03:57,035 --> 00:04:00,475
temos a diferença na distância. 

70
00:04:00,470 --> 00:04:05,950
E usando isso, calculamos o ângulo em que o argônio deve estar apontando. 

71
00:04:05,945 --> 00:04:08,825
Isso é matemática elementar básica. 

72
00:04:08,825 --> 00:04:10,975
Não tenho certeza se você está familiarizado com isso. 

73
00:04:10,970 --> 00:04:13,960
Se você quiser se aprofundar nisso, seja meu convidado,

74
00:04:13,955 --> 00:04:17,275
acredito que isso será explicação suficiente. 

75
00:04:17,270 --> 00:04:22,030
Então, vamos traduzir essas equações matemáticas em códigos matemáticos. 

76
00:04:22,025 --> 00:04:26,695
Então, vou voltar e nosso script aqui no controlador do jogador. 

77
00:04:26,690 --> 00:04:32,540
E a primeira coisa que precisamos é das duas referências para a câmera e para as armas são. 

78
00:04:32,540 --> 00:04:36,550
Então, vou começar criando um campo serializado,

79
00:04:36,545 --> 00:04:38,755
que será uma transformação. 

80
00:04:38,750 --> 00:04:44,540
E isso vai representar que as armas são ótimas. 

81
00:04:44,540 --> 00:04:49,130
A segunda variável que vamos criar como uma câmera privada,

82
00:04:49,130 --> 00:04:51,910
e ela será a câmera principal. 

83
00:04:51,905 --> 00:04:55,735
E o legal disso é que podemos imediatamente entrar em

84
00:04:55,730 --> 00:05:00,670
Stuart e dizer que a câmera principal é igual à câmera. 

85
00:05:00,665 --> 00:05:02,495
Dot principal. 

86
00:05:02,495 --> 00:05:04,735
E usando esta câmera, essa principal,

87
00:05:04,730 --> 00:05:09,610
podemos imediatamente obter uma referência à câmera principal que temos. 

88
00:05:09,605 --> 00:05:11,155
E aqui, ótimo. 

89
00:05:11,150 --> 00:05:15,550
Agora precisamos saber onde nossa boca está no mundo. 

90
00:05:15,545 --> 00:05:17,995
Então, vamos rolar para baixo e aqui,

91
00:05:17,990 --> 00:05:21,970
e vou remover esses comentários porque não precisamos mais deles. 

92
00:05:21,965 --> 00:05:23,875
Se você acha que precisa deles,

93
00:05:23,870 --> 00:05:29,240
mantenha-os como um lembrete para mais tarde como mudamos e passamos pelo nosso código. 

94
00:05:29,240 --> 00:05:32,780
Então agora vou conseguir a posição do mouse. 

95
00:05:32,780 --> 00:05:36,100
Vou usar um vetor três. 

96
00:05:36,095 --> 00:05:41,545
E vai ser chamado de posição do mouse. 

97
00:05:41,540 --> 00:05:48,080
E será igual à posição do mouse de ponto de entrada. 

98
00:05:48,080 --> 00:05:52,340
E você pode ver agora que imediatamente a Comunidade Visual Studio

99
00:05:52,340 --> 00:05:56,810
nos
 dá a posição atual do mouse em coordenadas de pixel. 

100
00:05:56,810 --> 00:05:58,670
Tão ótimo, é disso que precisamos. 

101
00:05:58,670 --> 00:06:00,970
E, obviamente, já conheço essas coisas. 

102
00:06:00,965 --> 00:06:03,215
Se você quiser pesquisar isso,

103
00:06:03,215 --> 00:06:05,915
você precisaria entrar no Google,

104
00:06:05,915 --> 00:06:07,595
como obter a maioria das posições. 

105
00:06:07,595 --> 00:06:10,915
Você obteve as documentações para a unidade. 

106
00:06:10,910 --> 00:06:14,410
Você teria encontrado essa posição do mouse de ponto de entrada. 

107
00:06:14,405 --> 00:06:15,635
Você teria usado isso. 

108
00:06:15,635 --> 00:06:17,245
Isso é apenas um atalho. 

109
00:06:17,240 --> 00:06:20,420
Vamos continuar. A próxima coisa que precisamos é o ponto de tela. 

110
00:06:20,420 --> 00:06:27,830
Então, ponto de tela, e será igual à câmera principal,
 à câmera

111
00:06:27,830 --> 00:06:33,560
mundial, ponto de mundo a tela. 

112
00:06:33,560 --> 00:06:36,350
E você pode ver a definição e aqui está

113
00:06:36,350 --> 00:06:40,820
a posição de transformação do espaço mundial e do espaço da tela. 

114
00:06:40,820 --> 00:06:43,190
Lá vamos nós. Isso é o que precisamos. 

115
00:06:43,190 --> 00:06:48,560
Transforme a escala local, quero dizer posição local. 

116
00:06:48,560 --> 00:06:52,490
E isso nos dará a posição local da transformação,

117
00:06:52,490 --> 00:06:55,130
que é o jogador agora. 

118
00:06:55,130 --> 00:06:58,750
E agora é hora de calcular o ângulo. 

119
00:06:58,745 --> 00:07:01,205
Vamos antes de tudo, salvar tudo isso. 

120
00:07:01,205 --> 00:07:06,315
Vamos seguir em frente e atribuir o braço para o jogador. 

121
00:07:06,315 --> 00:07:09,145
Então, vou arrastar o braço das armas agora mesmo. 

122
00:07:09,145 --> 00:07:10,495
Vamos salvar isso. 

123
00:07:10,495 --> 00:07:14,925
E agora o próximo passo é realmente calcular o ângulo. 

124
00:07:14,920 --> 00:07:17,520
Então eu vou antes de tudo,

125
00:07:17,515 --> 00:07:22,485
mostrar-lhe isso novamente para que você possa voltar e olhar para ele se precisar. 

126
00:07:22,480 --> 00:07:25,440
E então vou te dar um desafio. 

127
00:07:25,435 --> 00:07:29,415
E seu desafio será calcular o ângulo. 

128
00:07:29,410 --> 00:07:33,030
Então, a primeira coisa que você faz é que você precisa subtrair

129
00:07:33,025 --> 00:07:38,635
a posição do mouse x da posição do ponto da tela do x.

130
00:07:38,635 --> 00:07:42,715
Obviamente, você precisará fazer o mesmo para o y.

131
00:07:42,715 --> 00:07:44,535
E então você precisará calcular

132
00:07:44,530 --> 00:07:51,020
o ponto F matemática arctangent para descobrir isso na documentação Unity. 

133
00:07:51,020 --> 00:07:53,650
Vá em frente, pause o vídeo agora mesmo. 

134
00:07:53,645 --> 00:07:54,905
Vá fazer o seu melhor. 

135
00:07:54,905 --> 00:07:55,655
Experimente. 

136
00:07:55,655 --> 00:07:58,955
Você não perderá nada fazendo o seu melhor. 

137
00:07:58,955 --> 00:08:03,385
Pause o vídeo agora mesmo e faça o desafio. 

138
00:08:03,380 --> 00:08:05,810
Ei, bem-vindo de volta. 

139
00:08:05,810 --> 00:08:07,250
Então, como você pode ver,

140
00:08:07,250 --> 00:08:09,110
acabei de procurar matemática,

141
00:08:09,110 --> 00:08:11,600
arco tangente em Unity. 

142
00:08:11,600 --> 00:08:13,660
Agora estou aqui. 

143
00:08:13,655 --> 00:08:17,695
O que eu faço? Bem, preciso ver como isso funciona. 

144
00:08:17,690 --> 00:08:19,890
O que faz? Ele retorna um flutuador. 

145
00:08:19,894 --> 00:08:23,004
É assim que eu uso matlab.org Tange. 

146
00:08:23,000 --> 00:08:24,200
Certo, ótimo. 

147
00:08:24,200 --> 00:08:25,960
Então vamos voltar aqui. 

148
00:08:25,955 --> 00:08:29,605
Então, a primeira coisa que precisamos fazer é calcular a diferença. 

149
00:08:29,600 --> 00:08:33,760
Vou colocar os dois em um vetor dois. 

150
00:08:33,755 --> 00:08:36,415
Então eu vou usar um vetor para,

151
00:08:36,410 --> 00:08:39,330
vou chamar isso de deslocamento. 

152
00:08:39,334 --> 00:08:42,484
Portanto, é o deslocamento entre os dois pontos. 

153
00:08:42,485 --> 00:08:47,825
Será igual a um novo vetor dois. 

154
00:08:47,825 --> 00:08:55,145
E aqui vou primeiro pegar a posição do mouse ponto x e subtrair dele,

155
00:08:55,145 --> 00:08:58,495
o ponto da tela direciona. 

156
00:08:58,490 --> 00:09:03,060
E vou fazer o mesmo sobre o porquê. 

157
00:09:07,750 --> 00:09:13,870
Agora vou criar um float porque, como vimos esse método,

158
00:09:13,865 --> 00:09:17,675
o método dot arctan retorna um flutuador,

159
00:09:17,675 --> 00:09:25,225
será igual a matemática F dot arc tan ou não, Eta. 

160
00:09:25,220 --> 00:09:27,980
Chama-se bronzeado dois. 

161
00:09:27,980 --> 00:09:36,600
E vou usar o ponto offset y dividido pelo offset DRX. 

162
00:09:36,730 --> 00:09:39,620
Ótimo, então vou salvar isso. 

163
00:09:39,620 --> 00:09:46,780
Mas sempre que queremos atribuir a rotação real às armas são,

164
00:09:46,775 --> 00:09:50,045
não
 podemos simplesmente fazê-lo usando um flutuador. 

165
00:09:50,045 --> 00:09:54,745
O que precisamos fazer é usar um método extra,

166
00:09:54,740 --> 00:10:00,880
que é o método que rad dois graus. 

167
00:10:00,875 --> 00:10:04,745
E você pode ver isso converte radianos em graus constantes. 

168
00:10:04,745 --> 00:10:07,405
Então, precisaremos fazer isso. 

169
00:10:07,400 --> 00:10:11,720
E a última coisa que precisamos fazer é que precisemos acessar as armas na

170
00:10:11,720 --> 00:10:17,170
rotação de
 pontos e agora nos preparar para um mundo um pouco assustador. 

171
00:10:17,165 --> 00:10:19,555
Vamos usar quaternions. 

172
00:10:19,550 --> 00:10:23,810
Então quaternion dot Bueller. 

173
00:10:23,809 --> 00:10:30,169
E vamos defini-lo como 00 no eixo x. 

174
00:10:30,170 --> 00:10:32,870
Não giramos no eixo y, não giramos. 

175
00:10:32,870 --> 00:10:36,830
Nós giramos apenas em torno do eixo z usando o ângulo. 

176
00:10:36,830 --> 00:10:39,320
Agora, antes de fugir,

177
00:10:39,320 --> 00:10:42,580
o que é Turnitin dot Hulu? 

178
00:10:42,575 --> 00:10:45,155
Se você olhar para o anterior aqui,

179
00:10:45,155 --> 00:10:50,285
você pode ver que ele retorna uma rotação que gira Z graus em torno do eixo z,

180
00:10:50,285 --> 00:10:51,715
x em torno do eixo x,

181
00:10:51,710 --> 00:10:53,060
e assim por diante e assim por diante. 

182
00:10:53,060 --> 00:10:55,400
Então quaternion dot. 

183
00:10:55,400 --> 00:10:57,020
Se você estiver interessado,

184
00:10:57,020 --> 00:10:58,930
você pode se aprofundar nisso. 

185
00:10:58,925 --> 00:11:03,055
Eu pessoalmente, tenho girado objetos no Unity

186
00:11:03,050 --> 00:11:07,460
há
 vários anos e nunca entendi muito bem o que eles

187
00:11:07,460 --> 00:11:11,630
querem dizer com quaternion é apenas uma maneira
 de converter

188
00:11:11,630 --> 00:11:16,340
do XYZ em uma rotação e espaço reais. 

189
00:11:16,340 --> 00:11:19,550
Portanto, sinta-se à vontade para se aprofundar,

190
00:11:19,550 --> 00:11:22,450
ir procurar, certifique-se de entender tudo. 

191
00:11:22,445 --> 00:11:25,285
Caso contrário, se você não está incomodado por não
 entender completamente

192
00:11:25,280 --> 00:11:28,910
o que está acontecendo com o quaternion u dot. 

193
00:11:28,910 --> 00:11:34,640
Confie em mim, você pode passar por sua jornada de desenvolvimento de jogos sem se preocupar com isso. 

194
00:11:34,640 --> 00:11:38,150
Portanto, esta é simplesmente uma maneira de converter x,

195
00:11:38,150 --> 00:11:41,450
y e z em um ângulo em uma rotação. 

196
00:11:41,450 --> 00:11:42,580
Vamos salvar isso. 

197
00:11:42,575 --> 00:11:44,555
Voltaremos para a Unity. 

198
00:11:44,555 --> 00:11:47,915
E vamos executar o jogo. 

199
00:11:47,915 --> 00:11:51,875
E vamos ver o que está acontecendo com a arma agora,

200
00:11:51,875 --> 00:11:53,995
nós movemos para cima, a arma se move para cima. 

201
00:11:53,990 --> 00:11:56,210
Nós nos movemos para baixo. A arma se move para baixo. 

202
00:11:56,210 --> 00:11:58,430
Se formos para a esquerda, sim. 

203
00:11:58,430 --> 00:12:02,480
Nossa arma parece um pouco estranha quando olhamos na outra direção,

204
00:12:02,480 --> 00:12:06,490
mas quando se trata da direção correta, lá vai você. 

205
00:12:06,485 --> 00:12:09,445
Nós nos movemos e até nos ajustamos à medida que caminhamos. 

206
00:12:09,440 --> 00:12:11,830
Então você pode ver quando nos movemos para cima,

207
00:12:11,825 --> 00:12:13,115
a arma se move para baixo. 

208
00:12:13,115 --> 00:12:18,425
Sempre olhando exatamente onde está a posição do mouse. 

209
00:12:18,425 --> 00:12:22,315
Tão bom agora temos uma arma que está realmente disparando,

210
00:12:22,310 --> 00:12:25,910
o que é incrível na minha opinião, não atirando,

211
00:12:25,910 --> 00:12:30,730
que será disparando na direção certa mais tarde à medida que avançarmos. 

212
00:12:30,725 --> 00:12:33,445
Mas, obviamente, há algo errado quando

213
00:12:33,440 --> 00:12:36,280
tentamos mover o mouse na outra direção,

214
00:12:36,275 --> 00:12:38,025
ele se move corretamente. 

215
00:12:38,029 --> 00:12:43,069
Isso é o que vamos corrigir no próximo vídeo enquanto aprendemos

216
00:12:43,069 --> 00:12:48,699
algo muito bom codificação que é chamado de instruções if e condições if. 

217
00:12:48,695 --> 00:12:50,845
Então eu te vejo lá. 

218
00:12:50,840 --> 00:12:52,160
Mas antes de irmos,

219
00:12:52,160 --> 00:12:55,640
certifique-se
 sempre de preparar todos os seus arquivos. 

220
00:12:55,640 --> 00:12:57,250
Mega commits. 

221
00:12:57,245 --> 00:13:03,125
Vou chamar isso fez minha arma apontar
 na

222
00:13:03,125 --> 00:13:09,575
direção certa ou não invejar o ângulo reto. 

223
00:13:09,575 --> 00:13:10,945
Porque no próximo vídeo,

224
00:13:10,940 --> 00:13:13,250
faremos com que ele aponte na direção certa,

225
00:13:13,250 --> 00:13:16,520
faremos todo o jogador apontar e a direção certa. 

226
00:13:16,520 --> 00:13:19,290
Então, vejo você então. 

