1
00:00:04,980 --> 00:00:06,960
Bienvenidos a la revisión de nuestro reto.

2
00:00:07,050 --> 00:00:10,580
Vamos a revisar cómo vamos a crear ese sistema de daño.

3
00:00:11,570 --> 00:00:17,390
Vamos a crear todas las condiciones necesarias para la interacción entre el enemigo y el jugador y también

4
00:00:17,750 --> 00:00:21,210
las necesarias para la interacción entre el láser y el enemigo.

5
00:00:21,650 --> 00:00:27,260
Entonces vamos a iniciar con nuestro scrip Enemy y para detectar colisiones lo primero que necesito

6
00:00:27,680 --> 00:00:31,240
es mi método para iveth.

7
00:00:31,790 --> 00:00:32,810
Ituri.

8
00:00:33,080 --> 00:00:36,320
Voy a nombrar esta variable a Holder sólo para que haga más sentido.

9
00:00:36,500 --> 00:00:37,540
Es un nombre de variable.

10
00:00:37,550 --> 00:00:43,220
Puede llamarse como sea y recuerda que todo lo que colisione con el enemigo va a estar guardado dentro

11
00:00:43,220 --> 00:00:44,320
de esta variable.

12
00:00:44,770 --> 00:00:49,820
Ahora antes de continuar yo ya sé que esto va a tener que estar revisando colisión contra el jugador

13
00:00:49,850 --> 00:00:50,990
y contra el láser.

14
00:00:51,960 --> 00:00:58,480
Pero imagina que tu juego tiene cuatro diferentes tipos de enemigos y cada uno de ellos tiene un nombre

15
00:00:58,480 --> 00:00:59,080
diferente.

16
00:00:59,080 --> 00:01:05,340
Aquí es donde los taxis y las etiquetas se vuelven muy útiles porque los enemigos se llaman diferentes

17
00:01:05,340 --> 00:01:07,230
siempre van a tener algo en común.

18
00:01:07,390 --> 00:01:09,110
Ellos son enemigos.

19
00:01:10,160 --> 00:01:16,700
Ahora vamos a crear un par de tags uno para nuestros enemigos para identificarlos de una forma única

20
00:01:16,730 --> 00:01:18,400
y otro para nuestro láser.

21
00:01:19,570 --> 00:01:23,160
Hacemos clic en nuestro objeto Enemy y aquí es donde están los ataques.

22
00:01:23,180 --> 00:01:31,060
Vamos a expandir y dar clic en ataque y luego en el signo para agregar uno nuevo y luego introducimos

23
00:01:31,120 --> 00:01:32,530
el nombre de nuestro target.

24
00:01:32,560 --> 00:01:37,060
Vamos a llamarlo Enemy y luego hay que crear otro que vamos a llamar leche.

25
00:01:37,450 --> 00:01:45,130
Ahora seleccionamos nuestro enemigo y le asignamos el tag Enemy y recuerda aplicar los cambios para

26
00:01:45,130 --> 00:01:48,020
que se pueda ver reflejado en el objeto original.

27
00:01:48,340 --> 00:01:54,070
Ahora seleccionamos nuestro objeto nuestro perijá y hacemos lo mismo seleccionamos el tag Deleuze y

28
00:01:54,070 --> 00:01:55,960
se lo asignamos.

29
00:01:55,990 --> 00:02:01,510
Salvamos nuestra escena sólo para revisar que todo esté salvado correctamente y ahora sí podemos continuar

30
00:02:01,540 --> 00:02:03,040
con nuestro escrito.

31
00:02:03,530 --> 00:02:12,030
Es aquí en que lo primero que vamos a hacer es revisar si oder tiene el tag ley.

32
00:02:12,190 --> 00:02:16,160
Otro punto es igual que es lo que queremos hacer.

33
00:02:16,540 --> 00:02:22,240
Aquí vamos a hacer dos cosas primero vamos a destruir el otro objeto que es el láser vamos a destruir

34
00:02:23,410 --> 00:02:27,500
otro punto objeto y luego nos vamos a destruir a nosotros mismos.

35
00:02:27,520 --> 00:02:33,910
Vamos a destruir al enemigo entonces ponemos otro display y escribimos disputo que optico recuerda que

36
00:02:33,910 --> 00:02:36,560
estamos pensando como si nos fuéramos el enemigo.

37
00:02:36,670 --> 00:02:41,420
Lo primero que voy a hacer es destruir el láser que en este caso está guardado dentro del objeto.

38
00:02:41,450 --> 00:02:47,500
Entonces por eso escribo como un geek y luego como estamos hablando de nosotros mismos nos vamos a destruir

39
00:02:48,430 --> 00:02:51,860
justo después qué vamos a destruirnos a nosotros mismos.

40
00:02:52,030 --> 00:02:54,830
Y que en este caso somos el enemigo.

41
00:02:54,910 --> 00:02:56,250
Ahora vamos a probar esto.

42
00:02:58,080 --> 00:03:02,240
Cuando disparamos un láser a nuestro enemigo deberíamos ser capaces de destruirlo.

43
00:03:06,460 --> 00:03:07,870
Parece que no está funcionando.

44
00:03:07,960 --> 00:03:11,320
Aparentemente nuestro disparo triple tiene tiene un bug.

45
00:03:11,320 --> 00:03:12,450
Vamos a ver qué está pasando.

46
00:03:12,510 --> 00:03:15,720
Lo vamos a revisar al final de este review.

47
00:03:15,870 --> 00:03:24,240
Ahora si movemos nuestro disparo tripié un poquito y corremos de nuevo te darás cuenta que mi disparasen

48
00:03:24,240 --> 00:03:29,860
si está trabajando correctamente aquí accidentalmente lo dispare antes de tiempo.

49
00:03:30,190 --> 00:03:36,700
Vamos a intentar de nuevo y como puedes ver mi láser efectivamente está funcionando destruyendo al enemigo.

50
00:03:37,030 --> 00:03:42,880
Vamos a regresar después para reparar nuestro disparo triple pero por lo pronto quiero continuar y quiero

51
00:03:44,140 --> 00:03:48,150
trabajar en las colisiones entre el enemigo y el jugador.

52
00:03:48,380 --> 00:03:53,380
Entonces mi colisión con el láser está funcionando correctamente pero ahora como hago para revisar la

53
00:03:53,380 --> 00:03:55,340
conexión con el jugador.

54
00:03:56,110 --> 00:04:01,460
Para eso agregamos aquí abajo y escribimos otro punto.

55
00:04:01,630 --> 00:04:07,000
Es igual dos igual y luego escribimos Player.

56
00:04:07,120 --> 00:04:13,840
Qué pasa cuando el objeto tiene el tacto es lo que necesitamos hacer aquí es dañar al jugador.

57
00:04:13,840 --> 00:04:20,760
Vamos a escribir un método que vamos a mandar llamar que lo que va a hacer es hacerle daño al jugador.

58
00:04:20,860 --> 00:04:26,440
Para eso nos vamos a ir al club del jugador a nuestro Player y aquí es donde vamos a crear un método

59
00:04:26,440 --> 00:04:33,370
que se va a encargar de hacer ese daño a nuestro jugador y bueno acá en el escrito pellet justo debajo

60
00:04:33,370 --> 00:04:41,680
de nuestro método de movimiento vamos a escribir public void dame la lógica que vamos a seguir dentro

61
00:04:41,680 --> 00:04:48,040
de este método es básicamente que vamos a quitarle la vida a nuestro jugador y en el caso de que esas

62
00:04:48,040 --> 00:04:54,450
vidas sean menores a 1 o sea que ya hemos llegado a cero vamos a destruir este objeto vamos al jugador.

63
00:04:55,230 --> 00:05:02,410
Ahora necesitamos un sistema de vidas y para hacerlo es muy simple simplemente declaramos aquí arriba.

64
00:05:02,480 --> 00:05:07,560
Public Lives y lo voy a igualar a tres y ya está.

65
00:05:07,560 --> 00:05:08,580
Así de simple.

66
00:05:08,610 --> 00:05:12,730
Tenemos un sistema de vida en el cual vamos a utilizar el método que acabamos de crear.

67
00:05:13,780 --> 00:05:19,870
Entonces cada vez que nos mandamos llamar el motor mazz lo que vamos a hacer es básicamente restaurar

68
00:05:19,870 --> 00:05:20,710
una de esas vidas.

69
00:05:20,710 --> 00:05:27,320
Entonces escribimos algo así como Lips es igual a la EPS menos uno.

70
00:05:27,340 --> 00:05:31,690
También aquí podemos usar un método alternativo que es la EPS menos menos.

71
00:05:31,690 --> 00:05:36,040
Cualquiera de estos va a restar uno de las vidas del jugador.

72
00:05:36,070 --> 00:05:43,810
Existe un método más que básicamente es escribir libros menos igual a uno que es prácticamente el equivalente

73
00:05:43,810 --> 00:05:44,370
del iPod.

74
00:05:44,400 --> 00:05:48,430
Es igual al menos uno sólo que es un poco más corto.

75
00:05:48,460 --> 00:05:55,870
Cualquiera de estos tres que quieres utilizar está bien va a funcionar predominantemente en programación.

76
00:05:55,900 --> 00:06:03,340
El método que tú vas a ver para este tipo de casos es el del medio la EPS menos menos que básicamente

77
00:06:03,340 --> 00:06:07,220
significa que estás restándole una vida a tu jugador.

78
00:06:07,270 --> 00:06:13,200
Si quisieras por ejemplo sumarle una vida usarías algo que la vives más.

79
00:06:13,620 --> 00:06:18,810
Y ahora ya tenemos ya le estamos restando uno a la vida del jugador.

80
00:06:19,000 --> 00:06:22,150
Entonces ahora queremos checar si esas vidas son menores a 1.

81
00:06:22,150 --> 00:06:27,240
Para eso escribimos y la EPS es menor que uno.

82
00:06:27,310 --> 00:06:31,140
Entonces lo que vamos a hacer ahí es destruir el jugador.

83
00:06:31,330 --> 00:06:35,980
Entonces ponemos 10 puntos y ya está.

84
00:06:35,980 --> 00:06:41,330
Eso es todo lo que necesitamos para esto lo que necesitamos dentro de este método.

85
00:06:41,350 --> 00:06:47,980
Ahora sólo necesitamos mandarle llamar cada que el enemigo colisione con el jugador para hacer eso necesitamos

86
00:06:47,980 --> 00:06:50,560
tener acceso a nuestro componente externo.

87
00:06:50,650 --> 00:06:52,570
Te acuerdas.

88
00:06:52,810 --> 00:06:58,750
Y cómo lo hacemos simplemente usando ket componentes entonces escribimos una nueva variable de tipo

89
00:06:58,750 --> 00:07:01,890
Player y vamos a llamar Player y la igualamos.

90
00:07:01,930 --> 00:07:06,120
Otro punto que Component y el componente que estás buscando es.

91
00:07:07,670 --> 00:07:14,900
Luego checamos que Speller sea diferente Null usando If Player signo de admiración igual a null.

92
00:07:15,350 --> 00:07:18,040
Así nos aseguramos de que el componente exista.

93
00:07:18,950 --> 00:07:24,930
Y una vez hecho eso lo único que tenemos que hacer es escribir Player punto damas y cuando estamos mandando

94
00:07:24,940 --> 00:07:25,560
llamar damas.

95
00:07:25,570 --> 00:07:32,280
Lo que vamos a hacer es primero que nada restarle una vida a ese jugador y lo vamos a revisar si aún

96
00:07:32,350 --> 00:07:37,540
tenemos vidas restantes en caso de que ya no tengamos bits restantes o que el jugador no tenga bits

97
00:07:37,540 --> 00:07:39,920
restantes lo vamos a destruir.

98
00:07:40,230 --> 00:07:41,930
Y bueno vamos a probar esto.

99
00:07:42,950 --> 00:07:48,950
Vamos a correr el juego vamos a seleccionar nuestro jugador para bueno aquí podemos ver que en su variable

100
00:07:49,510 --> 00:07:57,290
están un número tres y vamos a ver lo que pasa cuando colisión colisiona el jugador y el enemigo.

101
00:07:57,370 --> 00:08:06,290
Aquí vemos que si el enemigo pasa sobre mi jugador entonces mis vidas son 2 y ahora solamente una.

102
00:08:07,640 --> 00:08:09,540
Y ahora se murió.

103
00:08:10,580 --> 00:08:17,260
Ahora lo que falta por hacer es que cuando el enemigo colisiona con el jugador el enemigo debería destruirse

104
00:08:17,330 --> 00:08:18,860
sin importar lo que pase.

105
00:08:19,370 --> 00:08:25,460
Entonces vamos a nuestro script de hoy y en el otro entre al final de toda nuestra lógica después de

106
00:08:25,460 --> 00:08:27,380
que dañamos al jugador.

107
00:08:27,860 --> 00:08:28,900
Vamos a escribir aquí.

108
00:08:28,930 --> 00:08:29,740
Disney.

109
00:08:30,000 --> 00:08:31,340
10.

110
00:08:33,110 --> 00:08:34,850
Vamos a probar de nuevo.

111
00:08:36,650 --> 00:08:42,440
Lo que vas a ver aquí que está pasando es que mi jugador tiene tres vidas.

112
00:08:42,530 --> 00:08:50,300
Voy a chocar con el enemigo el enemigo se destruye por completo y yo tengo dos vidas.

113
00:08:50,810 --> 00:08:51,860
Así que muy bien.

114
00:08:51,860 --> 00:08:58,620
Ahora tenemos un sistema de vidas para nuestro jugador y ya tenemos bien configurado nuestra colección.

115
00:08:58,620 --> 00:09:04,060
Nuestra detección de colisiones tanto con el jugador como con el láser.

116
00:09:04,580 --> 00:09:10,580
Ahora hace rato nos dimos cuenta de que había un problema con nuestro disparo triple nuestro disparo

117
00:09:10,580 --> 00:09:18,020
triple por alguna razón no estaba afectando a nuestro enemigo y vamos a ver vamos a ver por qué está

118
00:09:18,020 --> 00:09:18,780
fallando.

119
00:09:20,510 --> 00:09:25,670
Y bueno para empezar hay que arrastrar nuestro disparo triple-a hacia la escena y vamos a revisar sus

120
00:09:25,670 --> 00:09:27,420
propiedades.

121
00:09:27,410 --> 00:09:30,420
Aquí podemos ver nuestro script de láser.

122
00:09:30,440 --> 00:09:34,110
Podemos ver que el sortilegio está en folre lo cual es correcto.

123
00:09:35,100 --> 00:09:43,050
Sin embargo te puedes dar cuenta de que estos objetos estos objetos de adentro no tienen ningún color.

124
00:09:43,070 --> 00:09:44,370
Entonces eso es lo que está pasando.

125
00:09:44,370 --> 00:09:45,470
Por eso no funciona.

126
00:09:46,420 --> 00:09:52,780
Si la comparamos con nuestro primer sencillo nos podemos dar cuenta de que adentro tiene un box box

127
00:09:52,800 --> 00:09:53,420
con aires.

128
00:09:53,510 --> 00:09:55,280
Y además tiene un Riddle.

129
00:09:56,570 --> 00:10:01,920
Entonces vamos a hacer lo mismo para los tres objetos que están dentro de nuestro disparo triple.

130
00:10:02,030 --> 00:10:05,670
Seleccionamos los tres al mismo tiempo y damos clic en componer.

131
00:10:05,690 --> 00:10:12,270
Buscamos box y debería disgregarse automáticamente y debían de estar correctamente configurados.

132
00:10:12,290 --> 00:10:19,310
Revilla que se ve bien en la escena también se ha querido dar un ritual ituri y cuando lo haga revisa

133
00:10:19,310 --> 00:10:22,160
que el Gravity esté configurado en cero.

134
00:10:23,540 --> 00:10:28,100
Vamos a borrar nuestro disparo triple de la escena y vamos a salvar la escena.

135
00:10:28,190 --> 00:10:30,040
Vamos a probar.

136
00:10:30,040 --> 00:10:37,290
Voy a arrancar el juego y rápidamente voy a tomar mi powervr de disparo triple y debería estar funcionando

137
00:10:37,290 --> 00:10:41,080
ahora pero aún no está funcionando.

138
00:10:41,080 --> 00:10:47,840
Vamos a revisar por qué está pasando esto y otra cosa que me acabo de dar cuenta es que aquí en la jerarquía

139
00:10:47,840 --> 00:10:50,090
estamos viendo un montón de clones de disparos.

140
00:10:50,130 --> 00:10:53,800
Esto no debería estar pasando porque se van a quedar aquí para siempre.

141
00:10:55,040 --> 00:10:57,930
Lo voy a probar otra vez lo voy a correr de nuevo para ver qué está pasando.

142
00:10:57,940 --> 00:11:00,220
Necesito analizar qué está pasando.

143
00:11:00,640 --> 00:11:08,140
Si yo disparo veo que mis clases simplemente atraviesan al enemigo así que vamos a revisar qué está

144
00:11:08,140 --> 00:11:09,420
pasando.

145
00:11:10,240 --> 00:11:17,350
Primero revisamos al enemigo y seleccionamos vemos que si tiene un box Turi que está configurado como

146
00:11:17,350 --> 00:11:18,260
un thriller.

147
00:11:18,580 --> 00:11:22,410
Además está el sorteen offshore lo cual es correcto.

148
00:11:22,870 --> 00:11:25,110
Ahora vamos a revisar nuestro disparo triple.

149
00:11:25,110 --> 00:11:27,710
Vamos a restaurar la escena.

150
00:11:28,890 --> 00:11:36,360
Lo que me acabo de dar cuenta es que ha cometido un error de novato porque cuando yo agregué mis componentes

151
00:11:36,360 --> 00:11:40,300
hace rato a mi tripulación no apliqué mis cambios.

152
00:11:40,470 --> 00:11:46,360
Entonces vamos a tener que hacerlo de nuevo vamos a seleccionar los tres objetos vamos a crear un billete

153
00:11:46,520 --> 00:11:49,760
para 12 y un colador box.

154
00:11:49,960 --> 00:11:50,900
2.

155
00:11:51,310 --> 00:11:57,780
No no vayas a olvidar poner o configurar el que lencero ni tampoco vayas a olvidar seleccionar el check

156
00:11:57,780 --> 00:11:59,400
box instruirá.

157
00:11:59,880 --> 00:12:05,970
Una vez hecho todo eso simplemente selecciona y haz clic en el botón Play.

158
00:12:06,000 --> 00:12:09,500
Vamos a borrarlo vamos a salvar y vamos a correr en un juego.

159
00:12:09,990 --> 00:12:19,440
De inmediato voy a recolectar mi web de disparo triple y ya debería funcionar pero aún no funciona.

160
00:12:19,860 --> 00:12:25,790
Entonces por qué mi disparo sencillo si funciona y mi disparo triple no está funcionando.

161
00:12:26,250 --> 00:12:27,450
Entonces vamos a revisarlo.

162
00:12:27,460 --> 00:12:31,740
No vamos a arrastrar el primate al entrar en escena.

163
00:12:31,800 --> 00:12:38,730
Puedo ver que la posición está correcta y vuelvo a poner en cero cero cero mis objetos Lazer si tienen

164
00:12:38,730 --> 00:12:41,310
un ripari y si tienen un box.

165
00:12:41,910 --> 00:12:45,420
También están en la capa folguera.

166
00:12:45,930 --> 00:12:49,100
Entonces por que no está funcionando.

167
00:12:49,650 --> 00:12:52,040
Bueno vamos a ver si ustedes pueden descifrarlo.

168
00:12:52,050 --> 00:12:57,000
Ya sé que acabo de revisar mi disparo triple está correctamente configurado.

169
00:12:57,450 --> 00:13:04,680
Sin embargo yo sé que hay una diferencia entre mi disparo sencillo laser y disparo triple y lo que pasa

170
00:13:04,770 --> 00:13:11,660
es que mis tres lasers dentro de mi disparo triple no tienen el track que le asigne a mi disparo sencillo

171
00:13:11,750 --> 00:13:12,750
clásico.

172
00:13:13,110 --> 00:13:20,520
Si lo recuerdas en nuestro sistema de detección de colisiones estamos checando que el otro objeto tenga

173
00:13:20,700 --> 00:13:21,340
ctag.

174
00:13:22,370 --> 00:13:29,710
Ahora si seleccionamos los 3 objetos les aplicamos ese tag salvamos y corremos de nuevo el juego voy

175
00:13:29,780 --> 00:13:34,130
a activar mi disparo triple y deberíamos de ser capaces de destruir.

176
00:13:34,130 --> 00:13:38,050
Y ahí lo tenemos ya podemos destruirlo usando nuestro disparo triple.

177
00:13:38,210 --> 00:13:42,110
Y ahí tenemos nuestro disparo triple ahora está funcionando.

178
00:13:42,620 --> 00:13:48,350
Pero ahora lo único que tenemos que hacer es limpiarlo de nuestra escena porque si se fijan aquí están

179
00:13:49,160 --> 00:13:50,860
acumulándose los disparos triples.

180
00:13:50,870 --> 00:13:52,480
No se están destruyendo nunca.

181
00:13:54,270 --> 00:13:56,710
Y eso se arregla de una forma muy fácil.

182
00:13:56,730 --> 00:14:02,310
Vamos a ir a nuestro script Deleuze y aquí donde estamos revisando si el transforma punto a punto es

183
00:14:02,310 --> 00:14:05,270
mayor o igual a 6 y estamos destruyendo el objeto.

184
00:14:05,580 --> 00:14:12,750
Vamos a tener que agregar una sentencia más en la que vamos a destruir al objeto padre de este objeto.

185
00:14:13,080 --> 00:14:19,580
Y para hacerlo primero necesitó revisar si este objeto láser tiene un padre si lo tiene.

186
00:14:19,620 --> 00:14:27,510
Entonces lo voy a destruir y para eso es voy a escribir un nuevo gif que va a decir y Transform es diferente

187
00:14:27,510 --> 00:14:28,120
de Nul.

188
00:14:28,230 --> 00:14:35,760
O sea que si tienen un padre porque nuestro hijo del triple disparó todos nuestros Lazer son hijos de

189
00:14:35,760 --> 00:14:36,830
un objeto vacío.

190
00:14:37,690 --> 00:14:40,490
Si ese es el caso entonces necesitamos escribir aquí.

191
00:14:40,700 --> 00:14:48,970
Display hay un punto en que el papá de los tres lasers vamos a salvar esto.

192
00:14:48,970 --> 00:14:54,460
Eso debería de limpiar la escena porque ahora está destruyendo al padre de los tres lasers y también

193
00:14:54,490 --> 00:14:56,130
en el escrito de Enemy.

194
00:14:56,260 --> 00:15:00,880
Necesitamos revisar algo muy similar porque aquí estamos destruyendo el.

195
00:15:01,120 --> 00:15:05,710
Pero necesitamos saber si ese láser que está colisionando.

196
00:15:05,710 --> 00:15:09,430
Tiene un padre para saber si es el hacer es un disparo triple.

197
00:15:09,690 --> 00:15:14,230
Entonces que necesitamos hacer algo muy similar simplemente voy a revisar si el objeto tiene un padre

198
00:15:14,800 --> 00:15:21,310
y para eso voy a escribir y poder Transform toparan es diferente.

199
00:15:21,550 --> 00:15:28,390
Entonces lo que voy a hacer es destruir lo voy a escribir display o de Transform.

200
00:15:28,900 --> 00:15:34,290
Ahora esto muy probablemente no funcione y creo que necesito extenderlo un poco más y decirle que destruya

201
00:15:34,300 --> 00:15:34,960
a alguien.

202
00:15:34,990 --> 00:15:41,210
De hecho entonces voy a poner aquí punto que íbamos a ir para ver si algún error.

203
00:15:43,560 --> 00:15:47,580
Pero parece que no. Parece que sí puedo destruirlos usando su componente Transform.

204
00:15:48,590 --> 00:15:55,200
Pero es simplemente para mantenerlo consistente y recomiendo que siempre se use el óptico siempre estrellas

205
00:15:55,210 --> 00:15:56,090
del mismo.

206
00:15:56,370 --> 00:16:04,630
Entonces haremos lo mismo en nuestro script láser vamos a destruir un punto que sólo para ser más específicos

207
00:16:04,950 --> 00:16:06,890
entonces vamos a probar esto.

208
00:16:07,080 --> 00:16:13,890
Veo que el juego va a disparar triple y ya está activado y vamos a disparar y efectivamente ya se está

209
00:16:13,890 --> 00:16:15,750
limpiando muy bien.

210
00:16:15,750 --> 00:16:17,100
Espero que hayan aprendido algo.

211
00:16:17,100 --> 00:16:18,710
Los veo en el siguiente vídeo.
