1
00:00:00,000 --> 00:00:06,240
Hey, bienvenido de nuevo, Mis desarrolladores de juegos favoritos en este video,

2
00:00:06,235 --> 00:00:10,125
nuestra pistola ya no es un objeto estático. 

3
00:00:10,120 --> 00:00:11,740
Si miras de cerca,

4
00:00:11,740 --> 00:00:13,810
puedes ver que cuando bajamos,

5
00:00:13,810 --> 00:00:15,250
el arma se mueve hacia abajo. 

6
00:00:15,250 --> 00:00:16,600
Cuando miramos hacia arriba,

7
00:00:16,600 --> 00:00:17,970
el arma se cierra. 

8
00:00:17,965 --> 00:00:21,225
Obviamente, todavía hay un par de cosas que necesitan ser

9
00:00:21,220 --> 00:00:25,740
arregladas porque sostener el arma así me siento bastante incómodo,
pero no se

10
00:00:25,735 --> 00:00:27,505
preocupe por eso. 

11
00:00:27,505 --> 00:00:31,735
Este es el primer paso para nombrar adecuadamente a nuestra pistola. 

12
00:00:31,735 --> 00:00:35,635
Entonces, no perdamos más tiempo y empecemos. 

13
00:00:35,635 --> 00:00:37,335
esto hay mucha matemática. 

14
00:00:37,330 --> 00:00:40,070
Así que ponte tus gorras de pensamiento. 

15
00:00:41,770 --> 00:00:46,810
Ahora que nos estamos moviendo y nos estamos chocando con las cosas,

16
00:00:46,805 --> 00:00:50,135
es hora de empezar a apuntar nuestra arma. 

17
00:00:50,135 --> 00:00:55,495
Para ello, queremos rotar el arma alrededor de una determinada posición. 

18
00:00:55,490 --> 00:01:01,460
No queremos realmente estar rotando el arma exacta porque si miramos aquí,

19
00:01:01,460 --> 00:01:03,400
si vamos a la escena,

20
00:01:03,395 --> 00:01:04,475
ya
puedes ver,

21
00:01:04,475 --> 00:01:06,995
si tratamos de rotar el arma tal como está,

22
00:01:06,995 --> 00:01:08,675
no
se ve tan bien. 

23
00:01:08,675 --> 00:01:13,415
Necesitamos un punto desde el cual estará girando el arma. 

24
00:01:13,415 --> 00:01:17,915
Entonces lo que haremos es que vamos a hacer clic derecho en el jugador de cúpula. 

25
00:01:17,915 --> 00:01:20,675
Vamos a crear un objeto de juego vacío. 

26
00:01:20,675 --> 00:01:26,305
Nosotros lo vamos a llamar el brazo de armas. 

27
00:01:26,300 --> 00:01:29,720
Y vamos a moverlo a cierto punto. 

28
00:01:29,720 --> 00:01:34,940
Y este es el punto donde el arma o desde el que estará girando la pistola. 

29
00:01:34,940 --> 00:01:40,570
Entonces lo voy a poner alrededor casi de la mano o del brazo del jugador. 

30
00:01:40,565 --> 00:01:42,575
Y yo voy a hacer la escopeta,

31
00:01:42,575 --> 00:01:45,575
un hijo de esas armas son. 

32
00:01:45,575 --> 00:01:49,495
Entonces ahora cuando rotemos el brazo de armas,

33
00:01:49,490 --> 00:01:55,400
notarás que la escopeta se queda en su lugar casi alrededor del brazo justo aquí,

34
00:01:55,400 --> 00:02:02,720
y se ve mucho más natural a medida que rotamos la escopeta o las armas están. 

35
00:02:02,720 --> 00:02:05,530
Entonces ahora es el momento de un poco de frío. 

36
00:02:05,525 --> 00:02:07,105
Pero antes de que hagamos eso,

37
00:02:07,100 --> 00:02:10,330
¿cómo vamos a estar rotando este brazo? 

38
00:02:10,325 --> 00:02:14,065
Va a depender de dónde esté nuestra boca. 

39
00:02:14,060 --> 00:02:16,130
Entonces digamos que estamos aquí arriba. 

40
00:02:16,130 --> 00:02:19,190
Queremos que la pistola de disparo apunte hacia el ratón. 

41
00:02:19,190 --> 00:02:21,770
¿ Cómo vamos a calcular eso? 

42
00:02:21,770 --> 00:02:29,210
Bueno, necesitaremos un par de puntos y déjame explicarlo usando matemáticas, yay matemáticas. 

43
00:02:29,210 --> 00:02:31,130
Entonces, empecemos. 

44
00:02:31,130 --> 00:02:34,900
primera hora necesitamos la posición del jugador en la pantalla. 

45
00:02:34,895 --> 00:02:37,345
Bueno, yo uso el término posición de jugador,

46
00:02:37,340 --> 00:02:42,500
pero en realidad es el punto en el que estamos girando la escopeta alrededor. 

47
00:02:42,500 --> 00:02:44,600
Pero por ahora, vamos a mantenerlo simple. 

48
00:02:44,600 --> 00:02:46,690
Llama a esto la posición del jugador,

49
00:02:46,685 --> 00:02:49,585
y tenemos la posición del ratón en la pantalla. 

50
00:02:49,580 --> 00:02:55,360
Entonces lo que queremos es que queremos conseguir el vector en estos dos puntos. 

51
00:02:55,355 --> 00:02:59,345
Esta es la dirección que se han ido va a estar apuntando. 

52
00:02:59,345 --> 00:03:06,055
Pero, ¿cómo vamos a calcular realmente el ángulo en el que queremos que el arma apunte? 

53
00:03:06,050 --> 00:03:11,390
Bueno, conocemos la exposición y conocemos la posición y. 

54
00:03:11,390 --> 00:03:13,580
Bueno, me refería a X e Y.

55
00:03:13,580 --> 00:03:18,830
Entonces lo que podemos hacer es que podemos usar algo llamado arco tangente. 

56
00:03:18,830 --> 00:03:22,670
Y esto es algo disponible para nosotros en matemáticas. 

57
00:03:22,670 --> 00:03:26,170
F de unidad es biblioteca. 

58
00:03:26,165 --> 00:03:29,555
Entonces podemos usar eso para calcular el arctan. 

59
00:03:29,555 --> 00:03:33,595
Y si no sabes qué arctan o ni siquiera sabes lo que Dan es

60
00:03:33,590 --> 00:03:38,210
tangente creo que se llama es la parte delantera,

61
00:03:38,210 --> 00:03:41,960
que es la y dividida por V x.
Y

62
00:03:41,960 --> 00:03:43,370
cuando hacemos eso,

63
00:03:43,370 --> 00:03:45,050
obtenemos cierto número,

64
00:03:45,050 --> 00:03:46,450
que es la tangente. 

65
00:03:46,445 --> 00:03:48,355
Entonces para obtener el ángulo,

66
00:03:48,350 --> 00:03:50,930
usamos algo llamado el arco tangente,

67
00:03:50,930 --> 00:03:52,960
que es una especie de reversa. 

68
00:03:52,955 --> 00:03:57,035
Pero todo lo que necesitas saber es que obtenemos la diferencia en la altura,

69
00:03:57,035 --> 00:04:00,475
obtenemos la diferencia en la distancia. 

70
00:04:00,470 --> 00:04:05,950
Y usando eso, calculamos el ángulo en el que el argón debería estar señalando. 

71
00:04:05,945 --> 00:04:08,825
Se trata de matemáticas elementales básicas. 

72
00:04:08,825 --> 00:04:10,975
No estoy seguro si estás familiarizado con eso. 

73
00:04:10,970 --> 00:04:13,960
Si quieres profundizar más en ello, sé mi invitado,

74
00:04:13,955 --> 00:04:17,275
creo que esta será suficiente explicación. 

75
00:04:17,270 --> 00:04:22,030
Entonces, traducimos estas ecuaciones matemáticas en códigos matemáticos. 

76
00:04:22,025 --> 00:04:26,695
Entonces voy a volver atrás y nuestro guión aquí en el controlador de jugador. 

77
00:04:26,690 --> 00:04:32,540
Y lo primero que necesitamos es los dos referentes para la cámara y para las armas son. 

78
00:04:32,540 --> 00:04:36,550
Entonces voy a empezar creando un campo serializado,

79
00:04:36,545 --> 00:04:38,755
que será una transformación. 

80
00:04:38,750 --> 00:04:44,540
Y va a representar las armas son geniales. 

81
00:04:44,540 --> 00:04:49,130
La segunda variable que vamos a crear como cámara privada,

82
00:04:49,130 --> 00:04:51,910
y va a ser la cámara principal. 

83
00:04:51,905 --> 00:04:55,735
Y lo genial de esto es que de inmediato podemos entrar a

84
00:04:55,730 --> 00:05:00,670
Stuart y decir que la cámara principal es igual a la cámara. 

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

86
00:05:02,495 --> 00:05:04,735
Y usando esta cámara, esa principal,

87
00:05:04,730 --> 00:05:09,610
inmediato
podemos conseguir una referencia a la cámara principal que tenemos. 

88
00:05:09,605 --> 00:05:11,155
Y aquí, genial. 

89
00:05:11,150 --> 00:05:15,550
Ahora necesitamos saber dónde está nuestra boca en el mundo. 

90
00:05:15,545 --> 00:05:17,995
Entonces vamos a desplazarnos hacia abajo y aquí,

91
00:05:17,990 --> 00:05:21,970
y sólo voy a eliminar estos comentarios porque ya no los necesitamos. 

92
00:05:21,965 --> 00:05:23,875
Si sientes que los necesitas,

93
00:05:23,870 --> 00:05:29,240
guárdalos como recordatorio para más adelante cómo cambiamos y avanzamos a través de nuestro código. 

94
00:05:29,240 --> 00:05:32,780
Entonces ahora voy a conseguir la posición del ratón. 

95
00:05:32,780 --> 00:05:36,100
Voy a usar un vector tres. 

96
00:05:36,095 --> 00:05:41,545
Y se va a llamar la posición del ratón. 

97
00:05:41,540 --> 00:05:48,080
Y va a ser igual a la posición del ratón de punto de entrada. 

98
00:05:48,080 --> 00:05:52,340
Y puedes ver en este momento que de inmediato la Comunidad Visual Studio

99
00:05:52,340 --> 00:05:56,810
nos
da la posición actual del ratón en coordenadas de píxel. 

100
00:05:56,810 --> 00:05:58,670
Tan genial, eso es lo que necesitamos. 

101
00:05:58,670 --> 00:06:00,970
Y obviamente, ya conozco estas cosas. 

102
00:06:00,965 --> 00:06:03,215
Si quieres investigar esto,

103
00:06:03,215 --> 00:06:05,915
habrías necesitado entrar en Google,
cómo ir a

104
00:06:05,915 --> 00:06:07,595
conseguir la mayor parte de la posición. 

105
00:06:07,595 --> 00:06:10,915
Se han conseguido las documentaciones para la unidad. 

106
00:06:10,910 --> 00:06:14,410
Habrías encontrado esta posición de ratón de punto de entrada. 

107
00:06:14,405 --> 00:06:15,635
Lo habrías usado. 

108
00:06:15,635 --> 00:06:17,245
Esto es sólo un atajo. 

109
00:06:17,240 --> 00:06:20,420
Sigamos adelante. Lo siguiente que necesitamos es el punto de pantalla. 

110
00:06:20,420 --> 00:06:27,830
Entonces punto de pantalla, y va a ser igual a la cámara principal,

111
00:06:27,830 --> 00:06:33,560
la cámara mundial, mundo a punto de pantalla. 

112
00:06:33,560 --> 00:06:36,350
Y se puede ver la definición y aquí está

113
00:06:36,350 --> 00:06:40,820
la posición transformada del espacio mundial y al espacio de pantalla. 

114
00:06:40,820 --> 00:06:43,190
Ahí vamos. Esto es lo que necesitamos. 

115
00:06:43,190 --> 00:06:48,560
Transformar escala local, me refiero a posición local. 

116
00:06:48,560 --> 00:06:52,490
Y esto nos dará la posición local de la transformación,

117
00:06:52,490 --> 00:06:55,130
que es el jugador en este momento. 

118
00:06:55,130 --> 00:06:58,750
Y ahora es el momento de calcular el ángulo. 

119
00:06:58,745 --> 00:07:01,205
Primero que nada, guardemos todo eso. 

120
00:07:01,205 --> 00:07:06,315
Adelante y asignemos el brazo para el jugador. 

121
00:07:06,315 --> 00:07:09,145
Entonces voy a arrastrar el brazo de armas ahora mismo. 

122
00:07:09,145 --> 00:07:10,495
Eso lo vamos a salvar. 

123
00:07:10,495 --> 00:07:14,925
Y ahora el siguiente paso es calcular realmente el ángulo. 

124
00:07:14,920 --> 00:07:17,520
Entonces voy a primero que nada,

125
00:07:17,515 --> 00:07:22,485
mostrarte esto otra vez para que puedas volver atrás y mirarlo si es necesario. 

126
00:07:22,480 --> 00:07:25,440
Y luego te voy a emitir un reto. 

127
00:07:25,435 --> 00:07:29,415
Y tu reto va a ser calcular el ángulo. 

128
00:07:29,410 --> 00:07:33,030
Entonces lo primero que haces es que necesitas restar

129
00:07:33,025 --> 00:07:38,635
la posición x del ratón de la posición del punto de pantalla de la x.

130
00:07:38,635 --> 00:07:42,715
Obviamente, necesitarás hacer lo mismo para el y.

131
00:07:42,715 --> 00:07:44,535
y entonces necesitarás calcular

132
00:07:44,530 --> 00:07:51,020
el punto F matemático arctangente para encontrar eso en la documentación de Unidad. 

133
00:07:51,020 --> 00:07:53,650
Adelante, pausa el video ahora mismo. 

134
00:07:53,645 --> 00:07:54,905
Ve a hacer lo mejor que puedas. 

135
00:07:54,905 --> 00:07:55,655
Pruébalo. 

136
00:07:55,655 --> 00:07:58,955
No perderás nada haciendo lo mejor que puedas. 

137
00:07:58,955 --> 00:08:03,385
Pausa el video ahora mismo y ve a hacer el reto. 

138
00:08:03,380 --> 00:08:05,810
Hey, bienvenido de nuevo. 

139
00:08:05,810 --> 00:08:07,250
Entonces como pueden ver,

140
00:08:07,250 --> 00:08:09,110
acabo de buscar matemáticas,

141
00:08:09,110 --> 00:08:11,600
arco tangente en Unidad. 

142
00:08:11,600 --> 00:08:13,660
Ahora estoy justo aquí. 

143
00:08:13,655 --> 00:08:17,695
¿ Qué hago? Bueno, necesito ver cómo funciona esto. 

144
00:08:17,690 --> 00:08:19,890
¿ Qué hace? Devuelve un flotador. 

145
00:08:19,894 --> 00:08:23,004
Esta es nuestra como uso matlab.org Tange. 

146
00:08:23,000 --> 00:08:24,200
Está bien, genial. 

147
00:08:24,200 --> 00:08:25,960
Entonces volvamos aquí. 

148
00:08:25,955 --> 00:08:29,605
Entonces lo primero que tenemos que hacer es calcular la diferencia. 

149
00:08:29,600 --> 00:08:33,760
Voy a poner ambos en un vector dos. 

150
00:08:33,755 --> 00:08:36,415
Entonces voy a usar un vector to,
voy a

151
00:08:36,410 --> 00:08:39,330
llamar a esto el offset. 

152
00:08:39,334 --> 00:08:42,484
Entonces es el desplazamiento entre los dos puntos. 

153
00:08:42,485 --> 00:08:47,825
Será igual a un nuevo vector dos. 

154
00:08:47,825 --> 00:08:55,145
Y aquí dentro voy a primero de todo conseguir la posición del ratón punto x y restarle de ella,

155
00:08:55,145 --> 00:08:58,495
el punto de pantalla dirige. 

156
00:08:58,490 --> 00:09:03,060
Y yo voy a hacer lo mismo en el porqué. 

157
00:09:07,750 --> 00:09:13,870
Ahora voy a crear un flotador porque como vimos este método,
el método

158
00:09:13,865 --> 00:09:17,675
dot arctan devuelve un flotador,

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

160
00:09:25,220 --> 00:09:27,980
Se llama bronceado dos. 

161
00:09:27,980 --> 00:09:36,600
Y voy a utilizar el offset dot y dividido por el offset DRX. 

162
00:09:36,730 --> 00:09:39,620
Genial, así que voy a guardar eso. 

163
00:09:39,620 --> 00:09:46,780
Pero siempre que queremos asignar la rotación real a las armas son,

164
00:09:46,775 --> 00:09:50,045
no
podemos simplemente hacerlo usando un flotador. 

165
00:09:50,045 --> 00:09:54,745
Lo que necesitamos hacer es usar un método extra,

166
00:09:54,740 --> 00:10:00,880
que es el método que rad dos grados. 

167
00:10:00,875 --> 00:10:04,745
Y se puede ver esto convierte radianes en grados constantes. 

168
00:10:04,745 --> 00:10:07,405
Entonces tendremos que hacer eso. 

169
00:10:07,400 --> 00:10:11,720
Y lo último que tenemos que hacer es que tendremos que acceder a las armas en

170
00:10:11,720 --> 00:10:17,170
rotación de
puntos y ahora prepárate para un mundo un poco aterrador. 

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

172
00:10:19,550 --> 00:10:23,810
Así cuaternion dot Bueller. 

173
00:10:23,809 --> 00:10:30,169
Y lo vamos a fijar como 00 en el eje x. 

174
00:10:30,170 --> 00:10:32,870
No giramos en el eje Y, no giramos. 

175
00:10:32,870 --> 00:10:36,830
Sólo giramos alrededor del eje z utilizando el ángulo. 

176
00:10:36,830 --> 00:10:39,320
Ahora, antes de huir,

177
00:10:39,320 --> 00:10:42,580
¿qué es Turnitin dot Hulu? 

178
00:10:42,575 --> 00:10:45,155
Si miras lo anterior justo aquí,

179
00:10:45,155 --> 00:10:50,285
puedes ver que devuelve una rotación que gira Z grados alrededor del eje z,

180
00:10:50,285 --> 00:10:51,715
x alrededor del eje x,

181
00:10:51,710 --> 00:10:53,060
y así sucesivamente y así sucesivamente. 

182
00:10:53,060 --> 00:10:55,400
Entonces cuaternion dot. 

183
00:10:55,400 --> 00:10:57,020
Si te interesa,

184
00:10:57,020 --> 00:10:58,930
puedes ahondar en esto. 

185
00:10:58,925 --> 00:11:03,055
Yo personalmente, llevo
varios años rotando objetos en Unity

186
00:11:03,050 --> 00:11:07,460
y nunca he entendido del todo lo que
significan

187
00:11:07,460 --> 00:11:11,630
por cuaternión es solo una forma
de convertir

188
00:11:11,630 --> 00:11:16,340
del XYZ en una rotación y espacio reales. 

189
00:11:16,340 --> 00:11:19,550
Así que siéntete libre de
ahondar, ve

190
00:11:19,550 --> 00:11:22,450
a buscarlo, asegúrate de entender todo. 

191
00:11:22,445 --> 00:11:25,285
Si no, si no te molesta no
entender completamente

192
00:11:25,280 --> 00:11:28,910
lo que está pasando con cuaternion u dot. 

193
00:11:28,910 --> 00:11:34,640
Confía en mí, puedes pasar por tu viaje de desarrollo de juegos sin preocuparte por ello. 

194
00:11:34,640 --> 00:11:38,150
Entonces esta es simplemente una forma de convertir x,

195
00:11:38,150 --> 00:11:41,450
y, y z en un ángulo en una rotación. 

196
00:11:41,450 --> 00:11:42,580
Eso lo ahorraremos. 

197
00:11:42,575 --> 00:11:44,555
Volveremos a Unidad. 

198
00:11:44,555 --> 00:11:47,915
Y vamos a correr el juego. 

199
00:11:47,915 --> 00:11:51,875
Y veamos qué está pasando con el arma ahora mismo,

200
00:11:51,875 --> 00:11:53,995
nos movemos hacia arriba, el arma se mueve hacia arriba. 

201
00:11:53,990 --> 00:11:56,210
Nos movemos hacia abajo. El arma se mueve hacia abajo. 

202
00:11:56,210 --> 00:11:58,430
Si vamos a la izquierda, sí. 

203
00:11:58,430 --> 00:12:02,480
Nuestra pistola se ve un poco rara cuando miramos en la otra dirección,

204
00:12:02,480 --> 00:12:06,490
pero cuando se trata de la dirección adecuada, ahí vas. 

205
00:12:06,485 --> 00:12:09,445
Nos movemos e incluso se ajusta a medida que caminamos. 

206
00:12:09,440 --> 00:12:11,830
Para que veas cuando nos movemos hacia arriba,

207
00:12:11,825 --> 00:12:13,115
el arma se mueve hacia abajo. 

208
00:12:13,115 --> 00:12:18,425
Siempre mirando exactamente dónde está nuestra posición del ratón. 

209
00:12:18,425 --> 00:12:22,315
Tan genial ahora tenemos un arma que en realidad está disparando,

210
00:12:22,310 --> 00:12:25,910
lo cual es increíble en mi opinión, no en realidad disparando,

211
00:12:25,910 --> 00:12:30,730
que estará disparando en la dirección correcta más adelante a medida que nos movamos. 

212
00:12:30,725 --> 00:12:33,445
Pero obviamente hay algo mal cuando

213
00:12:33,440 --> 00:12:36,280
tratamos de mover el ratón en la otra dirección,

214
00:12:36,275 --> 00:12:38,025
sí se mueve correctamente. 

215
00:12:38,029 --> 00:12:43,069
Eso es lo que vamos a estar arreglando en el siguiente video mientras aprendemos

216
00:12:43,069 --> 00:12:48,699
algo muy agradable codificación que se llama las sentencias if y si condiciones. 

217
00:12:48,695 --> 00:12:50,845
Entonces te veré ahí. 

218
00:12:50,840 --> 00:12:52,160
Pero antes de irnos,

219
00:12:52,160 --> 00:12:55,640
siempre asegúrate de poner en escena todos tus archivos. 

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

221
00:12:57,245 --> 00:13:03,125
Voy a llamar a esto hizo que mi arma apuntara en

222
00:13:03,125 --> 00:13:09,575
la dirección correcta o no envidio ángulo recto. 

223
00:13:09,575 --> 00:13:10,945
Porque en el siguiente video,

224
00:13:10,940 --> 00:13:13,250
lo
haremos apuntar en la dirección correcta,

225
00:13:13,250 --> 00:13:16,520
hará que todo el jugador apunte y la dirección correcta. 

226
00:13:16,520 --> 00:13:19,290
Entonces, nos vemos entonces. 

