﻿1
00:00:04,350 --> 00:00:04,760
‫Hola.

2
00:00:04,800 --> 00:00:05,190
‫Bienvenidos.

3
00:00:05,190 --> 00:00:09,750
‫En esta lección, vamos a hacer que el capturador sea mucho más confiable.

4
00:00:09,750 --> 00:00:16,860
‫Y también vamos a hacer posible soltar un componente agarrado para que podamos lanzarlo y, en general,

5
00:00:16,860 --> 00:00:19,890
‫hacer que sea un poco más útil.

6
00:00:19,920 --> 00:00:21,870
‫Vamos a sumergirnos y ver cómo se hace esto.

7
00:00:22,850 --> 00:00:28,430
‫Ahora, la razón por la que a menudo no podemos captar esta gárgola es que los

8
00:00:28,430 --> 00:00:35,990
‫componentes que simulan la física por motivos de rendimiento se pondrán en reposo cuando hayan estado inmóviles durante un cierto período de tiempo.

9
00:00:35,990 --> 00:00:37,310
‫Y eso es lo que estamos viendo.

10
00:00:37,310 --> 00:00:43,310
‫Esta simulación de física de gárgolas se va a dormir y no se despierta cuando la conectamos

11
00:00:43,310 --> 00:00:45,290
‫con nuestro controlador de física.

12
00:00:45,290 --> 00:00:51,400
‫Entonces, lo que debemos aprender a hacer es despertarlo cuando lo golpeamos con un trazo de esfera.

13
00:00:51,410 --> 00:00:56,420
‫Ahora vamos a echar un vistazo a la documentación del componente primitivo que hemos visto.

14
00:00:56,420 --> 00:01:02,420
‫El componente primitivo es lo que devuelve nuestro resultado de coincidencia, pero en realidad es un

15
00:01:02,420 --> 00:01:03,260
‫componente primitivo.

16
00:01:03,440 --> 00:01:10,010
‫Entonces dice aquí en la documentación que un componente primitivo es un componente de escena que contiene

17
00:01:10,010 --> 00:01:16,160
‫o genera algún tipo de geometría y se representa o usa como datos de colisión.

18
00:01:16,160 --> 00:01:21,770
‫Entonces, en términos generales, los componentes primitivos son los que pueden simular la física.

19
00:01:22,130 --> 00:01:27,830
‫Así que podemos esperar encontrar algunos métodos de simulación física aquí.

20
00:01:27,830 --> 00:01:32,030
‫Y lo que voy a buscar es una función con la palabra clave despertar.

21
00:01:32,060 --> 00:01:37,820
‫Vamos a revisar algunas funciones hasta que encontremos una que diga Activar todos los cuerpos rígidos.

22
00:01:38,270 --> 00:01:43,610
‫Los cuerpos rígidos son esencialmente un término físico para objetos que simulan la física.

23
00:01:43,610 --> 00:01:44,780
‫Entonces puedes ver que tiene un vacío.

24
00:01:44,780 --> 00:01:46,700
‫El tipo de retorno no toma ningún argumento.

25
00:01:46,700 --> 00:01:52,010
‫Por lo tanto, deberíamos poder simplemente llamar a esto cuando intentemos adjuntarlo.

26
00:01:52,010 --> 00:01:58,220
‫Entonces, si vamos a tomar un CP dentro de nuestra declaración if, hemos tocado este componente, estamos a punto de

27
00:01:58,220 --> 00:01:58,610
‫tomarlo.

28
00:01:58,610 --> 00:02:04,550
‫Lo primero que tenemos que hacer es crear una variable para almacenar este componente primitivo.

29
00:02:04,550 --> 00:02:15,170
‫Así que tendremos un puntero de componente primitivo llamado conjunto de componentes de hit que es igual al componente de punto

30
00:02:15,470 --> 00:02:17,990
‫de resultado de hit.

31
00:02:18,530 --> 00:02:27,770
‫Y luego, usando ese puntero de componente de golpe, podemos activar con flecha todos los cuerpos rígidos y luego poner los paréntesis y el punto

32
00:02:27,770 --> 00:02:29,690
‫y coma al final.

33
00:02:29,690 --> 00:02:35,900
‫Entonces esto debería darle una patada a ese componente, despertarlo para que responda al controlador de física.

34
00:02:35,930 --> 00:02:39,160
‫Ahora reemplacemos donde hemos hecho resultados exitosos.

35
00:02:39,200 --> 00:02:46,400
‫No obtenga componentes en nuestra llamada de controlador de física para capturar la ubicación del componente porque ahora tenemos una

36
00:02:46,400 --> 00:02:49,460
‫variable para eso y recompilaremos cuando haya terminado.

37
00:02:49,460 --> 00:02:56,480
‫Sigamos adelante y presionemos reproducir y dejemos que la gárgola se siente un poco en el piso por ahora y dejemos que

38
00:02:56,480 --> 00:02:58,910
‫se duerma y luego tratemos de levantarla.

39
00:02:58,910 --> 00:03:05,120
‫Y notarás que no tenemos problemas para recogerlo, dejarlo en el suelo, lo que sea.

40
00:03:05,120 --> 00:03:12,440
‫Va a estar bien y despertar esos cuerpos rígidos físicos y comenzar a simularlos para que puedan ser

41
00:03:12,440 --> 00:03:13,910
‫levantados y agarrados.

42
00:03:13,910 --> 00:03:18,560
‫Ahora, es posible que haya notado que actualmente no podemos liberar el controlador de

43
00:03:18,560 --> 00:03:23,300
‫física, por lo que ese será su desafío para hacerlo en la función de lanzamiento.

44
00:03:23,360 --> 00:03:26,570
‫Así que vas a llamar al componente de liberación en ese identificador de física.

45
00:03:26,570 --> 00:03:29,660
‫Esa es una función que está disponible en el puntero del controlador de física.

46
00:03:29,840 --> 00:03:34,910
‫Primero comprobará si tenemos un componente de captura.

47
00:03:34,910 --> 00:03:40,040
‫Entonces, si obtiene un componente de captura que devuelve un puntero al componente de captura, esos puntos serán nulos

48
00:03:40,040 --> 00:03:43,010
‫si el controlador de física no está capturando nada actualmente.

49
00:03:43,010 --> 00:03:48,110
‫Entonces puede usar eso para verificar si tenemos algo y solo liberarlo si actualmente estamos tomando

50
00:03:48,110 --> 00:03:48,530
‫algo.

51
00:03:48,530 --> 00:03:53,090
‫Y como beneficio adicional, puede intentar ver si podemos establecer el objetivo nuevamente.

52
00:03:53,090 --> 00:03:58,070
‫Solo si estamos agarrando algo, pero mira el video y pruébalo.

53
00:04:01,590 --> 00:04:02,470
‫Bienvenido de nuevo.

54
00:04:02,490 --> 00:04:06,090
‫Así que entremos a tomar una taza.

55
00:04:06,230 --> 00:04:10,490
‫Voy a entrar en la función de lanzamiento y eliminar el registro de lanzamiento.

56
00:04:10,500 --> 00:04:16,650
‫Y aquí vamos a poner una declaración if y vamos a decir si y ahora necesitamos

57
00:04:16,650 --> 00:04:18,360
‫controlar nuestras manijas físicas.

58
00:04:18,360 --> 00:04:25,650
‫Así que, en primer lugar, vamos a hacer un puntero de componente del controlador de física, al que

59
00:04:25,650 --> 00:04:31,410
‫llamaremos controlador de física y lo igualaremos para obtener el controlador de física.

60
00:04:31,590 --> 00:04:40,770
‫Entonces, vamos a decir que si el identificador de física es igual a un puntero nulo, queremos seguir adelante y regresar

61
00:04:40,770 --> 00:04:44,400
‫porque no podremos hacer nada, liberar nada.

62
00:04:44,400 --> 00:04:51,330
‫Si no tenemos un controlador de física en absoluto, entonces queremos verificar si actualmente nos estamos aferrando a algo con nuestro

63
00:04:51,330 --> 00:04:52,650
‫controlador de física.

64
00:04:52,650 --> 00:05:03,390
‫Entonces, si, digamos, si la flecha del controlador de física se agarra entre paréntesis del componente no es igual al puntero nulo, entonces dentro del cuerpo de esta

65
00:05:04,080 --> 00:05:09,420
‫declaración if significa que tenemos algo actualmente agarrado, bueno, entonces vamos a hacer un

66
00:05:09,420 --> 00:05:16,980
‫componente de liberación de flecha del controlador de física , que lo va a dejar pasar, como sugiere su

67
00:05:16,980 --> 00:05:17,730
‫nombre.

68
00:05:17,730 --> 00:05:24,450
‫Y una cosa que no hice en el código aquí, pero probablemente valga la pena agregarlo al suyo, es

69
00:05:24,450 --> 00:05:32,160
‫que antes de lanzar el componente, vale la pena seguir adelante y llamar a los componentes agarrados y luego agregar los cuerpos rígidos

70
00:05:32,160 --> 00:05:36,180
‫débiles tal como lo hicimos nosotros. antes de agarrar el componente.

71
00:05:36,180 --> 00:05:41,520
‫Porque si hiciéramos crecer un componente y no nos moviéramos por un tiempo, también podría quedarse dormido.

72
00:05:41,520 --> 00:05:43,470
‫Y así liberarlo no haría nada.

73
00:05:43,470 --> 00:05:51,300
‫Por lo tanto, vale la pena agregarlo, ya que captaría ese caso de esquina y no queremos establecer la ubicación de destino

74
00:05:51,300 --> 00:05:56,790
‫en tic si tenemos un controlador de física que actualmente no está capturando nada.

75
00:05:56,790 --> 00:06:02,190
‫Así que aquí en nuestros componentes de ticks, vamos a poner una declaración if que será exactamente igual.

76
00:06:02,190 --> 00:06:11,730
‫Va a decir que la flecha del controlador de física obtiene un componente agarrado que no es igual al puntero nulo.

77
00:06:11,760 --> 00:06:18,810
‫Luego, en el cuerpo de la declaración if, vamos a poner el cálculo de la ubicación del objetivo y la configuración de

78
00:06:18,810 --> 00:06:22,380
‫la ubicación del objetivo en ese controlador de física también.

79
00:06:22,380 --> 00:06:24,330
‫Vamos a recompilar y probar esto.

80
00:06:24,330 --> 00:06:26,070
‫Sigamos adelante y dale al play.

81
00:06:26,970 --> 00:06:28,920
‫E intenta agarrar la gárgola.

82
00:06:28,920 --> 00:06:33,420
‫Y luego, si suelto el ratón, vuelve a caer al suelo.

83
00:06:33,420 --> 00:06:39,000
‫Entonces, parece no verse afectado por si está despierto o dormido.

84
00:06:39,000 --> 00:06:43,610
‫Parece que lo estamos despertando sin importar si cada vez que lo estamos recogiendo, esencialmente.

85
00:06:43,620 --> 00:06:46,950
‫Así que parece estar funcionando exactamente como me gustaría.

86
00:06:46,950 --> 00:06:47,910
‫No se está atascando.

87
00:06:47,910 --> 00:06:49,950
‫Se siente casi bien.

88
00:06:49,980 --> 00:06:56,520
‫Lo único un poco extraño es que cuando me muevo hacia él, puedes ver que hace este extraño temblor

89
00:06:56,520 --> 00:06:59,550
‫porque en realidad está chocando con el jugador.

90
00:06:59,550 --> 00:07:06,840
‫Ahora podemos arreglar esto un poco yendo a nuestra gárgola en el panel de detalles, seleccionando todas las categorías,

91
00:07:06,840 --> 00:07:13,950
‫desplazándonos hacia abajo hasta colisión y mirando nuestro ajuste preestablecido de colisión personalizado y hacia abajo en las

92
00:07:13,950 --> 00:07:15,510
‫respuestas del objeto.

93
00:07:15,510 --> 00:07:17,760
‫Veremos un poco más sobre esto más adelante.

94
00:07:17,760 --> 00:07:20,910
‫Hay una respuesta de objeto peón.

95
00:07:20,910 --> 00:07:25,650
‫Esto básicamente dice: ¿Debo colisionar con el peón o qué?

96
00:07:25,680 --> 00:07:27,570
‫¿Cuál debería ser mi respuesta al peón?

97
00:07:27,570 --> 00:07:31,740
‫Bueno, voy a configurarlo para que se superponga con el peón.

98
00:07:31,740 --> 00:07:36,690
‫Y eso significa que si choca conmigo, esencialmente simplemente lo ignora.

99
00:07:36,690 --> 00:07:41,880
‫Y luego, una cosa más que tenemos que hacer es porque esto en realidad se compone de dos mallas

100
00:07:41,880 --> 00:07:43,890
‫estáticas, tienen sus propios ajustes de colisión.

101
00:07:43,890 --> 00:07:46,320
‫Voy a bajar al montículo de tierra.

102
00:07:46,320 --> 00:07:48,720
‫Esa es la cosa debajo de la gárgola.

103
00:07:49,110 --> 00:07:52,350
‫Y aquí en realidad solo voy a simplificar las cosas.

104
00:07:52,350 --> 00:07:57,480
‫Voy a hacer que el montículo de tierra se separe, que no haya colisiones.

105
00:07:57,490 --> 00:08:00,300
‫Así que voy a cambiarlo al preajuste sin colisión.

106
00:08:00,510 --> 00:08:05,250
‫Luego voy a seguir adelante y presionar play, agarrar la gárgola del suelo.

107
00:08:05,250 --> 00:08:09,540
‫Y ahora pueden ver que cuando estoy corriendo con él, no hay ninguna

108
00:08:09,540 --> 00:08:14,730
‫de esas fallas extrañas porque no está tratando de chocar con la malla de colisión del jugador.

109
00:08:14,760 --> 00:08:15,540
‫Buena cosa.

110
00:08:15,540 --> 00:08:22,170
‫En esta lección hemos aprendido cómo hacer que nuestro agarre sea mucho más confiable y también cómo podemos liberar

111
00:08:22,170 --> 00:08:23,790
‫el componente de agarre.

112
00:08:23,790 --> 00:08:24,510
‫Buena cosa.

113
00:08:24,510 --> 00:08:26,190
‫Te veré en la próxima conferencia.

