﻿1
00:00:04,400 --> 00:00:05,180
‫Hola y bienvenido.

2
00:00:05,180 --> 00:00:10,070
‫En esta lección, veremos una función especial llamada constructor que nos permite dar

3
00:00:10,070 --> 00:00:13,640
‫valores predeterminados a las propiedades de nuestra clase.

4
00:00:13,850 --> 00:00:16,760
‫Y veremos cuando se llama en el editor.

5
00:00:16,790 --> 00:00:18,590
‫Vamos a sumergirnos y averiguarlo.

6
00:00:19,460 --> 00:00:25,400
‫Ahora, con este componente desencadenante, me gustaría agregar una función de componente de marca

7
00:00:25,400 --> 00:00:32,420
‫aquí para que podamos verificar qué componentes, qué otros actores se superponen actualmente a este componente desencadenante

8
00:00:32,420 --> 00:00:36,740
‫y podemos activar si es el tipo correcto de actor.

9
00:00:37,610 --> 00:00:39,860
‫El problema es, bueno, veremos cuál es el problema.

10
00:00:39,860 --> 00:00:46,160
‫Probemos e implementemos una función de marca si vamos a la captura en relación para ver cómo debería verse la

11
00:00:46,160 --> 00:00:50,420
‫declaración de una función de componente, debe estar en la sección pública.

12
00:00:50,720 --> 00:00:53,420
‫Es un vacío virtual, componentes de tictac, tiempo delta.

13
00:00:53,420 --> 00:00:55,700
‫Hay muchos parámetros, así que copiémoslo.

14
00:00:56,070 --> 00:01:04,190
‫Vaya al encabezado del componente de marca, agréguelo debajo de nuestra reproducción inicial y luego copiaremos esa

15
00:01:04,490 --> 00:01:09,470
‫definición, la llevaremos a nuestro paso del componente de activación.

16
00:01:10,010 --> 00:01:13,250
‫Y una cosa que notará es que hay un par de palabras clave aquí que podemos eliminar.

17
00:01:13,250 --> 00:01:15,080
‫Podemos eliminar la palabra clave virtual.

18
00:01:15,080 --> 00:01:17,000
‫Esa es generalmente una regla que podemos seguir.

19
00:01:17,000 --> 00:01:19,370
‫También podemos eliminar la palabra clave anular.

20
00:01:19,370 --> 00:01:21,830
‫Estas son cosas que no necesitan estar en el archivo C++.

21
00:01:22,310 --> 00:01:24,710
‫Necesitamos agregar el nombre de la clase.

22
00:01:24,710 --> 00:01:33,020
‫Así que prueba un componente de dos puntos, dos puntos, y luego reemplazamos nuestro punto y coma con algunas llaves y

23
00:01:33,020 --> 00:01:35,840
‫necesitamos hacer la llamada al componente supertick.

24
00:01:35,840 --> 00:01:43,400
‫Como es una llamada bastante larga, voy a copiarla y tomar una copia y pegarla en esta.

25
00:01:43,400 --> 00:01:49,010
‫Ahora, lo que esto está haciendo es esencialmente llamar a la función del componente de marca del padre.

26
00:01:49,010 --> 00:01:52,640
‫Entonces, el padre en este caso es nuestro componente de caja.

27
00:01:53,000 --> 00:02:00,020
‫Por lo tanto, es importante llamarlo en caso de que haya alguna funcionalidad que deba usarse y habilitarse para que

28
00:02:00,020 --> 00:02:01,340
‫este componente funcione.

29
00:02:01,640 --> 00:02:06,680
‫Si no hacemos eso, esencialmente estamos pasando por alto cualquiera de esas funciones y las cosas pueden fallar.

30
00:02:06,920 --> 00:02:07,630
‫Muy importante.

31
00:02:07,650 --> 00:02:13,670
‫Recuerde siempre que es una llamada a super cuando estamos implementando el componente de inicio, reproducción y marcación.

32
00:02:13,850 --> 00:02:18,650
‫Ahora copiemos nuestro mensaje de registro de Begin Play y colóquelo en el componente de marca en lugar de decir componente de

33
00:02:18,650 --> 00:02:19,010
‫marca.

34
00:02:19,010 --> 00:02:27,080
‫Iniciando sesión para decir que el componente tick está funcionando aquí y vamos a seguir adelante y compilar y ver si

35
00:02:27,080 --> 00:02:29,030
‫ese tick realmente funciona.

36
00:02:29,300 --> 00:02:33,920
‫Una vez que el compilador haya terminado, sigamos adelante y presionemos reproducir, abramos nuestro registro de salida y.

37
00:02:34,130 --> 00:02:37,340
‫Hmm, bueno, nada parece estar pasando ahora.

38
00:02:37,340 --> 00:02:43,820
‫La razón de esto es que, en términos de optimización, automáticamente la mayoría de los componentes no reales

39
00:02:43,820 --> 00:02:45,320
‫tienen su marca desactivada.

40
00:02:45,590 --> 00:02:49,760
‫Por lo tanto, los actores generalmente lo tienen activado de manera predeterminada, pero los componentes generalmente lo tienen desactivado.

41
00:02:49,880 --> 00:02:54,860
‫Entonces, de hecho, si observamos algunos de los otros componentes que tenemos, como nuestro movimiento que sabemos que marcar

42
00:02:54,860 --> 00:02:58,550
‫funciona para usted, puede ver que en la parte superior del archivo está esto.

43
00:02:58,550 --> 00:03:06,890
‫Mueve una función y tiene este componente principal, el punto B puede marcar igual a verdadero si no

44
00:03:06,890 --> 00:03:09,710
‫establece esta propiedad en la clase.

45
00:03:09,710 --> 00:03:15,230
‫Entonces, esta es una propiedad de la clase como una propiedad del componente primario clásico tick y es una

46
00:03:15,230 --> 00:03:19,100
‫estructura que tiene una B puede tener una propiedad tick dentro de ella.

47
00:03:19,580 --> 00:03:28,430
‫Entonces, lo que estamos haciendo aquí es establecer este valor predeterminado en la clase de movimiento cuando la construimos.

48
00:03:28,430 --> 00:03:29,630
‫Eso es lo que es esta función.

49
00:03:29,630 --> 00:03:36,920
‫Se llama constructor y es una función que se llama cada vez que creamos un nuevo componente de movimiento

50
00:03:37,190 --> 00:03:39,920
‫para establecer automáticamente los valores predeterminados.

51
00:03:40,160 --> 00:03:44,570
‫Podemos establecer algunos valores predeterminados en el encabezado del archivo como lo hemos hecho con el tiempo de movimiento.

52
00:03:44,810 --> 00:03:50,690
‫Pero la alternativa a hacerlo siempre en el archivo de encabezado es que podemos establecer estas propiedades en

53
00:03:50,690 --> 00:03:51,620
‫el constructor.

54
00:03:51,860 --> 00:03:54,890
‫Ahora me gustaría que notara la sintaxis aquí.

55
00:03:55,100 --> 00:04:02,300
‫Si pasamos al avance del archivo, puede ver que un constructor se llama exactamente igual que

56
00:04:02,300 --> 00:04:03,290
‫la clase.

57
00:04:03,290 --> 00:04:11,510
‫Por lo tanto, you mover es el nombre de la clase de nuestros componentes move y su constructor también se llama aviso you

58
00:04:11,870 --> 00:04:12,320
‫move.

59
00:04:12,320 --> 00:04:14,600
‫Tampoco tiene tipo de retorno.

60
00:04:14,600 --> 00:04:19,460
‫No tiene sentido devolver nada porque estamos construyendo un nuevo objeto.

61
00:04:19,460 --> 00:04:22,670
‫Solo estamos haciendo que esta clase suceda.

62
00:04:22,880 --> 00:04:30,530
‫Entonces, todo lo que necesitamos es acceder a las propiedades de esta clase y también notar que está configurada como pública.

63
00:04:30,530 --> 00:04:35,060
‫Así que está en la sección pública de nuestra definición de clase.

64
00:04:35,210 --> 00:04:39,410
‫Así que me gustaría desafiarte a que habilites el tictac por ti mismo.

65
00:04:39,410 --> 00:04:44,660
‫Así que vas a crear un constructor en el encabezado y teniendo en cuenta la sintaxis que

66
00:04:44,660 --> 00:04:51,800
‫hemos visto tanto en las películas de movimiento o H como en el capturador H, vas a habilitar el tictac, como hemos visto nuevamente.

67
00:04:51,800 --> 00:04:54,410
‫en esos otros componentes en sus archivos CP.

68
00:04:54,710 --> 00:04:56,900
‫Así que puedes copiar cómo se está haciendo eso.

69
00:04:57,380 --> 00:05:02,380
‫También puede iniciar sesión desde el constructor para intentar ver cuándo se llama.

70
00:05:02,390 --> 00:05:03,590
‫¿Es como empezar a jugar?

71
00:05:03,720 --> 00:05:07,050
‫¿O lo llaman antes de estar en juego o qué?

72
00:05:07,260 --> 00:05:09,600
‫Ve y publica un video y pruébalo.

73
00:05:12,920 --> 00:05:13,250
‫Bueno.

74
00:05:13,250 --> 00:05:14,030
‫Bienvenido de nuevo.

75
00:05:14,060 --> 00:05:20,480
‫Así que vamos a entrar a nuestro componente trigonométrico en H para crear una nueva sección pública.

76
00:05:20,480 --> 00:05:26,120
‫Y aquí estamos recordando los dos puntos al final y luego necesitamos llamarlo exactamente igual que la

77
00:05:26,120 --> 00:05:26,600
‫clase.

78
00:05:26,600 --> 00:05:27,980
‫Así que ese no es el componente disparador.

79
00:05:27,980 --> 00:05:33,260
‫No es usted el disparador, es el disparador de los componentes en su totalidad.

80
00:05:33,260 --> 00:05:39,710
‫Y luego no tenemos ningún argumento en este constructor, así que solo ponemos paréntesis vacíos y luego un punto y coma

81
00:05:39,710 --> 00:05:41,540
‫al final de la línea.

82
00:05:41,540 --> 00:05:46,850
‫Ahora podemos ir al archivo CPP y podemos hacer la implementación aquí.

83
00:05:46,860 --> 00:05:48,230
‫Nuevamente, no necesitamos un tipo de retorno.

84
00:05:48,230 --> 00:05:53,330
‫Así que son solo tus componentes desencadenantes, el colon.

85
00:05:53,330 --> 00:05:58,280
‫Dos puntos activas los componentes un poco repetitivos, pero así es como funciona.

86
00:05:58,610 --> 00:06:05,210
‫Luego ponemos algunas llaves y aquí podemos hacer cualquiera de nuestro código de configuración para dar los valores predeterminados a la

87
00:06:05,510 --> 00:06:06,920
‫instancia de la clase.

88
00:06:07,430 --> 00:06:12,470
‫Entonces, si vamos a agarrar un CPP y echamos un vistazo a lo que está haciendo, puede ver

89
00:06:12,470 --> 00:06:16,460
‫que tiene su componente principal, el punto tecnológico B puede tomarlo como verdadero.

90
00:06:16,790 --> 00:06:17,750
‫Así que escribamos eso.

91
00:06:17,750 --> 00:06:26,330
‫El componente principal tick dot B puede marcar B es solo un prefijo que usamos a menudo cuando las cosas tienen

92
00:06:26,330 --> 00:06:31,280
‫un tipo booleano establecido igual a verdadero con una t minúscula.

93
00:06:31,760 --> 00:06:38,690
‫Entonces, debido a que los cambios en un constructor no siempre se propagan correctamente en la codificación en vivo, voy a

94
00:06:38,690 --> 00:06:39,740
‫cerrar el editor.

95
00:06:40,130 --> 00:06:46,370
‫Voy a reconstruir desde dentro del código de Visual Studio, luego voy a reiniciar desde el nuevo archivo de

96
00:06:46,370 --> 00:06:46,790
‫proyecto.

97
00:06:47,030 --> 00:06:51,230
‫Cuando termine, seguiré adelante y presionaré reproducir, echaré un vistazo a nuestro registro de salida.

98
00:06:51,470 --> 00:06:54,620
‫Y, por supuesto, podemos ver que el componente de activación está funcionando.

99
00:06:55,250 --> 00:07:00,170
‫Así que voy a eliminar ese mensaje de registro porque es molesto y cerré el registro de salida en

100
00:07:00,170 --> 00:07:04,430
‫el código de Visual Studio, elimine este mensaje de registro en el componente de marca.

101
00:07:04,430 --> 00:07:05,780
‫Podemos ver que está funcionando ahora.

102
00:07:06,500 --> 00:07:10,670
‫Y lo que queríamos hacer es iniciar sesión en nuestro constructor.

103
00:07:11,840 --> 00:07:17,960
‫Entonces, hagamos un nuevo registro que diga "construcción", veamos si la codificación en vivo puede detectarlo esta vez y luego vamos a

104
00:07:17,960 --> 00:07:21,620
‫ir a nuestro registro de salida y echar un vistazo de inmediato.

105
00:07:21,650 --> 00:07:23,450
‫Aquí no aparece nada.

106
00:07:24,290 --> 00:07:28,160
‫Bueno, si sigo adelante y presiono reproducir, eche un vistazo a mi registro de salida.

107
00:07:28,370 --> 00:07:33,950
‫Puedo ver el mensaje de registro de que el componente desencadenante está vivo y mucho antes de esto.

108
00:07:33,950 --> 00:07:38,720
‫En realidad, puedes ver que está construyendo mucho más adelante cuando solo está creando el mundo.

109
00:07:39,050 --> 00:07:44,600
‫Comienza a construirse muy temprano, obviamente antes de comenzar a jugar porque necesitamos tener todo el mundo listo antes

110
00:07:44,600 --> 00:07:46,130
‫de comenzar a jugar.

111
00:07:46,550 --> 00:07:51,440
‫Ocurre cuando le damos al play, pero en realidad también ocurre en el editor.

112
00:07:51,440 --> 00:07:58,070
‫Entonces, si selecciono algún actor aquí y luego le agrego un componente y agrego nuestro disparador, luego mire mi

113
00:07:58,070 --> 00:07:59,240
‫registro de salida.

114
00:07:59,240 --> 00:08:03,020
‫Luego puede ver que el mensaje de construcción se imprimió.

115
00:08:03,020 --> 00:08:10,430
‫Por lo tanto, debemos tener cuidado con lo que hacemos en nuestros constructores porque en realidad se les llama, el código C++

116
00:08:10,430 --> 00:08:14,480
‫se llama justo cuando estamos editando, ni siquiera jugando nuestro juego.

117
00:08:14,480 --> 00:08:19,790
‫Estos objetos se están creando y, por lo tanto, configurando y, por lo tanto, necesitan llamar a su constructor.

118
00:08:20,120 --> 00:08:25,850
‫Seguiré adelante y eliminaré el activador nuevamente y aclararé un poco eliminando, construyendo el mensaje de

119
00:08:25,850 --> 00:08:29,960
‫registro y nuestro mensaje de registro de inicio de reproducción también.

120
00:08:30,200 --> 00:08:30,770
‫Buena cosa.

121
00:08:30,770 --> 00:08:37,370
‫Así que en esta lección hemos visto cómo podemos configurar nuestros propios componentes para que sean casi idénticos a los creados

122
00:08:37,370 --> 00:08:40,880
‫en las plantillas para componentes de escena y componentes ACT.

123
00:08:40,880 --> 00:08:47,390
‫Hemos visto cómo usar un constructor para dar valores predeterminados a las propiedades de nuestra clase.

124
00:08:47,750 --> 00:08:49,340
‫Te veré en la próxima conferencia.

