1 00:00:00,300 --> 00:00:05,339 En este vídeo vamos a ver un poco el tema de las colisiones. Teniendo el personaje, 2 00:00:05,339 --> 00:00:14,580 este personaje lo único que he hecho ha sido coger el sprite que sea del caballero y le he 3 00:00:14,580 --> 00:00:20,219 puesto 16. Luego también lo he hecho para la moneda, le he puesto 16, he seleccionado todo 4 00:00:20,219 --> 00:00:27,460 y me ha creado un clip. Simplemente lo arrastras arriba y te crea un personaje. Y la moneda lo 5 00:00:27,460 --> 00:00:31,780 mismo, arrastras hacia arriba y te crea la moneda. Yo lo que he hecho ha sido seleccionar 6 00:00:31,780 --> 00:00:38,960 todo esto para que me crea una animación. Entonces, tenemos ahora mismo el personaje 7 00:00:38,960 --> 00:00:46,960 y la moneda. ¿Cómo hago para hacer que el personaje 8 00:00:46,960 --> 00:00:52,320 tiene ya las colisiones hechas? Tiene Boss Collider y tiene Rigidbody. El Rigidbody es 9 00:00:52,320 --> 00:00:57,259 el que permite que haga ya físicas. Aquí tiene a la verdad y yo he cambiado lo de la 10 00:00:57,259 --> 00:01:02,960 rotación porque si no al colisionar puede rotar en la Z y hace cosas raras 11 00:01:02,960 --> 00:01:10,859 lo podemos ver ahora y a ver si lo consigo que se pase vale aquí hay una rotación rara 12 00:01:10,859 --> 00:01:14,760 pues la voy a eliminar si os fijáis ya he cogido la moneda pero ahora explico un 13 00:01:14,760 --> 00:01:22,829 poco cómo funciona todo eso vale colisiones me voy a ir a Descript y tengo 14 00:01:22,829 --> 00:01:32,390 colisión enter, colisión exit, entonces cuando comparo con el TAG y el GROUND, colisión, se pone 15 00:01:32,390 --> 00:01:39,670 GROUND a TRUE y cuando no pues a FALSE, aquí además tenemos el tema de la moneda, yo he creado una 16 00:01:39,670 --> 00:01:49,689 moneda, objeto, le he puesto el TAG COIN que lo he creado aquí y ya me permite destruir la 17 00:01:49,689 --> 00:01:52,269 la moneda 18 00:01:52,269 --> 00:01:54,549 simplemente tengo el personaje 19 00:01:54,549 --> 00:01:56,790 y ahí 20 00:01:56,790 --> 00:01:58,829 vale, y pasará 21 00:01:58,829 --> 00:01:59,329 por 22 00:01:59,329 --> 00:02:01,730 ese log 23 00:02:01,730 --> 00:02:04,310 que es el que vemos aquí 24 00:02:04,310 --> 00:02:06,069 vale 25 00:02:06,069 --> 00:02:08,229 entonces, por ejemplo 26 00:02:08,229 --> 00:02:09,530 si queremos hacer 27 00:02:09,530 --> 00:02:12,349 también un enemigo, voy a ver si tengo 28 00:02:12,349 --> 00:02:13,629 un sprite de un enemigo 29 00:02:13,629 --> 00:02:16,770 el slime este 30 00:02:16,770 --> 00:02:18,229 vamos a poner este 31 00:02:18,229 --> 00:02:19,629 como enemigo, vale 32 00:02:19,629 --> 00:02:23,069 este tipo de cosa como enemigo 33 00:02:23,069 --> 00:02:28,009 vale, pues voy a hacer lo mismo que con la moneda 34 00:02:28,009 --> 00:02:32,659 y voy a seleccionar 35 00:02:32,659 --> 00:02:35,319 que no sé como 36 00:02:35,319 --> 00:02:39,009 bueno, voy a poner solo uno 37 00:02:39,009 --> 00:02:41,310 este por ejemplo, o este 38 00:02:41,310 --> 00:02:45,229 y voy a tener el mismo problema de antes 39 00:02:45,229 --> 00:02:48,569 voy a tener que poner a 16 que es donde estamos trabajando 40 00:02:48,569 --> 00:02:51,930 ahora vamos en 16 41 00:02:51,930 --> 00:02:54,469 paso en 42 00:02:54,469 --> 00:03:03,050 sprite, lo tengo que guardar, vale, ya tenemos el posible enemigo 43 00:03:03,050 --> 00:03:07,509 ¿cómo iría el tema de las colisiones con este enemigo? 44 00:03:08,469 --> 00:03:13,169 tenemos que hacer lo siguiente, añadirle un collide, poscollide2d 45 00:03:13,169 --> 00:03:17,669 y aquí lo podemos editar, si queremos cambiarlo un poco 46 00:03:17,669 --> 00:03:25,810 vale, tenemos el personaje y colisionará con el enemigo, vamos a ver cómo funciona 47 00:03:25,810 --> 00:03:37,379 voy y colisiono, veis, choca el collider con collider y ahí se queda 48 00:03:37,379 --> 00:03:42,379 vale, entonces podemos hacer por ejemplo 49 00:03:42,379 --> 00:03:51,099 que el enemigo, vale uno de los dos tiene que tener rey y duodio en este caso 50 00:03:51,099 --> 00:03:56,539 el personaje, el enemigo podría tener un tag enemy, ese creo que si que está hecho 51 00:03:56,539 --> 00:04:01,000 no, pues lo hacemos, hacemos un tag, lo añadimos 52 00:04:01,000 --> 00:04:08,719 Si le ponemos Enemy, y ese tag Enemy hará lo que sea, restar una vida o similar. 53 00:04:12,229 --> 00:04:16,750 Entonces, ¿ahora cómo gestiono esa colisión? 54 00:04:16,750 --> 00:04:27,569 Pues, por ejemplo, en el Player puedo hacer que si colisiona con un elemento que su tag sea Enemy, 55 00:04:29,889 --> 00:04:32,750 pues aquí restaría una vida o lo que fuera. 56 00:04:32,750 --> 00:04:44,620 ahora vamos a ver qué pasa también con esta colisión es digamos que existe esa colisión 57 00:04:44,620 --> 00:04:51,939 choca uno con otra la extensión se pueden trabajar con cuando entra cuando sale etcétera como hemos 58 00:04:51,939 --> 00:05:00,379 visto con los grados aquí colisiona y sale aquí en la consola el enemigo también podría ser de 59 00:05:00,379 --> 00:05:06,319 la colisión de tipo Trigger. Estoy cambiando el Collider del enemigo en tipo Trigger. 60 00:05:06,540 --> 00:05:11,800 Entonces vamos a ver qué pasa. Porque el tipo Trigger es una colisión en la que no 61 00:05:11,800 --> 00:05:20,139 atravieso el enemigo, pero esa colisión se produce. Lo que pasa es que nosotros la tenemos 62 00:05:20,139 --> 00:05:27,720 que gestionar en un método que se va a llamar OnTriggerEnter, en este caso. 63 00:05:27,720 --> 00:05:56,819 un trigger enter, si la traje a ese enemigo, pasará por aquí, entramos, esto cambia un poco a lo mejor 64 00:06:00,930 --> 00:06:06,230 vamos a cambiar, aquí habrá que cambiar el collider 65 00:06:06,230 --> 00:06:09,089 este tipo 66 00:06:09,089 --> 00:06:10,889 gay not yet 67 00:06:10,889 --> 00:06:12,089 comparamos el tag 68 00:06:12,089 --> 00:06:15,189 y vamos a ver 69 00:06:15,189 --> 00:06:17,170 si pasa o no pasa 70 00:06:17,170 --> 00:06:18,329 esto nos puede permitir 71 00:06:18,329 --> 00:06:20,689 pasar de escena 72 00:06:20,689 --> 00:06:23,069 cuando pasa por una puerta o cosas similares 73 00:06:23,069 --> 00:06:25,329 en las que no haga falta una colisión física 74 00:06:25,329 --> 00:06:27,569 pero si que nos interesa 75 00:06:27,569 --> 00:06:28,910 saber si ha pasado por ahí 76 00:06:28,910 --> 00:06:31,689 y con esto 77 00:06:31,689 --> 00:06:33,050 ya podríamos hacer, por ejemplo 78 00:06:33,050 --> 00:06:34,269 podríamos tener un trigger 79 00:06:34,269 --> 00:06:36,370 podríamos tener dos colliders 80 00:06:36,370 --> 00:06:37,509 por ejemplo uno para 81 00:06:37,509 --> 00:06:39,689 uno para el enemigo 82 00:06:39,689 --> 00:06:41,550 y otro podríamos tener 83 00:06:41,550 --> 00:06:43,370 un collider 84 00:06:43,370 --> 00:06:46,470 en la parte de arriba 85 00:06:46,470 --> 00:06:47,009 por ejemplo 86 00:06:47,009 --> 00:06:51,360 para ver si lo mata 87 00:06:51,360 --> 00:06:53,339 y podríamos ponerlo así 88 00:06:53,339 --> 00:06:55,439 o similar, se podría hacer de muchas formas 89 00:06:55,439 --> 00:06:58,240 pero aquí podríamos tener este trigger 90 00:06:58,240 --> 00:06:59,519 de kill 91 00:06:59,519 --> 00:07:01,420 y trabajarlo con otro tag 92 00:07:01,420 --> 00:07:03,660 pero bueno, en esencia 93 00:07:03,660 --> 00:07:05,959 quiero que se entienda lo que es un collider 94 00:07:05,959 --> 00:07:09,660 cómo se colisiona, cómo se gestiona desde aquí 95 00:07:09,660 --> 00:07:13,120 y la diferencia entre un collider, que es una colisión tal cual 96 00:07:13,120 --> 00:07:17,500 y un trigger, un collider tipo trigger 97 00:07:17,500 --> 00:07:20,779 en el que la colisión se produce, en el código se pasa 98 00:07:20,779 --> 00:07:22,660 pero no hay una colisión física