﻿1
00:00:04,890 --> 00:00:05,790
‫Hola y bienvenido.

2
00:00:05,790 --> 00:00:12,090
‫En esta lección, aprenderemos sobre los objetos y cómo podemos usar la funcionalidad de los objetos

3
00:00:12,090 --> 00:00:16,110
‫y sus datos para comenzar a crear programas interesantes.

4
00:00:16,110 --> 00:00:17,430
‫Sumerjámonos.

5
00:00:18,940 --> 00:00:22,690
‫Entonces, comencemos esta lección introduciendo un nuevo concepto.

6
00:00:22,690 --> 00:00:27,400
‫El concepto de objetos es absolutamente vital para muchos lenguajes de programación.

7
00:00:28,030 --> 00:00:35,230
‫Entonces, un objeto es esencialmente algo en lo que quieres representar una cosa, algo como en un juego en el

8
00:00:35,230 --> 00:00:37,050
‫que podrías tener un aventurero.

9
00:00:37,060 --> 00:00:44,710
‫Es un objeto en tu mundo y podría tener algunos datos que representen lo que es.

10
00:00:44,980 --> 00:00:50,020
‫Cosas como sus puntos de experiencia, por ejemplo, o tal vez su nivel.

11
00:00:50,020 --> 00:00:51,430
‫Es un aventurero de nivel dos.

12
00:00:51,430 --> 00:00:55,000
‫Cosas así son los datos que componen a un aventurero.

13
00:00:55,510 --> 00:00:57,310
‫Pero eso no es todo lo que es un aventurero.

14
00:00:57,550 --> 00:01:04,990
‫Un aventurero también tiene alguna funcionalidad, como la capacidad de disparar flechas, como poder

15
00:01:04,990 --> 00:01:06,400
‫saltar, etc.

16
00:01:07,270 --> 00:01:09,370
‫Sin embargo, hay otras cosas que pueden ser objetos.

17
00:01:09,400 --> 00:01:15,700
‫Por ejemplo, podemos representar cosas en el mundo real, en la computadora, como el jugador, y podemos

18
00:01:15,700 --> 00:01:20,770
‫almacenar propiedades relevantes para el jugador, como ¿el jugador está usando un controlador?

19
00:01:21,370 --> 00:01:23,930
‫¿El jugador es el número uno o el número dos?

20
00:01:23,950 --> 00:01:29,380
‫Ese tipo de datos y la funcionalidad relevante, como obtener sus entradas actuales.

21
00:01:29,890 --> 00:01:35,200
‫Si mantienen presionada la barra espaciadora, por ejemplo, obtienen el nivel de habilidad del jugador, y luego

22
00:01:35,200 --> 00:01:38,440
‫pueden tener objetos completamente abstractos, cosas como una lista.

23
00:01:38,740 --> 00:01:42,010
‫Entonces podría tener una lista que tenga los elementos uno, dos, tres, cuatro.

24
00:01:42,010 --> 00:01:44,430
‫Y es o tal vez podría tener cualquier artículo que te guste.

25
00:01:44,440 --> 00:01:50,530
‫Los datos podrían cambiar, pero también podrían tener alguna funcionalidad, como eliminar el último elemento de la lista o agregarlo

26
00:01:50,530 --> 00:01:52,420
‫al final de la lista.

27
00:01:52,780 --> 00:01:55,120
‫Así que puedes ver que los objetos son muy, muy flexibles.

28
00:01:55,120 --> 00:01:58,390
‫Se pueden utilizar para representar innumerables cosas diferentes.

29
00:01:58,810 --> 00:02:05,230
‫Y notará que la funcionalidad en la parte inferior de estos objetos es en realidad lo que son

30
00:02:05,230 --> 00:02:08,320
‫esos nodos o cuántos nodos hay en Blueprint.

31
00:02:08,410 --> 00:02:14,830
‫Entonces comienzan a tener un poco de mapeo entre los objetos y la funcionalidad.

32
00:02:15,490 --> 00:02:15,760
‫Bueno.

33
00:02:15,760 --> 00:02:19,630
‫Así que hemos introducido un montón de conceptos nuevos que recapitulemos un poco.

34
00:02:19,900 --> 00:02:24,310
‫Así que hemos dicho que los objetos son colecciones de datos y funcionalidad.

35
00:02:25,030 --> 00:02:28,870
‫Es posible que no nos hayamos dado cuenta de que los actores son en realidad objetos.

36
00:02:28,870 --> 00:02:34,660
‫Los actores son objetos que pueden ir en un nivel y puedes ver esto si entras en tu nivel, seleccionas

37
00:02:34,660 --> 00:02:39,820
‫el cubo, puedes ver que hay un montón de detalles, pintar una gran cantidad de datos.

38
00:02:39,820 --> 00:02:45,130
‫Y como veremos en un momento, también hay una gran cantidad de funciones en el formulario de nodo y en el plano.

39
00:02:46,120 --> 00:02:47,320
‫Luego están los componentes.

40
00:02:47,350 --> 00:02:50,800
‫Ahora los componentes no los hemos detallado antes, pero aquí están.

41
00:02:51,070 --> 00:02:56,980
‫Son objetos que pueden ir sobre un actor, mientras que los actores van sobre el nivel, los componentes van sobre el propio

42
00:02:56,980 --> 00:02:57,460
‫actor.

43
00:02:57,730 --> 00:03:03,190
‫Entonces, con el Cubo seleccionado, puede ver en la parte superior del panel de detalles que existe este componente de

44
00:03:03,190 --> 00:03:03,910
‫malla estática.

45
00:03:04,570 --> 00:03:11,050
‫Si realmente hace clic en eso, verá que el panel de detalles obtiene un conjunto restringido de detalles.

46
00:03:11,050 --> 00:03:19,180
‫No muestra todas las propiedades que están disponibles en el actor Cubo, sino solo el subconjunto de propiedades

47
00:03:19,180 --> 00:03:25,780
‫que pertenecen al componente de malla estática, que es básicamente el componente responsable de decirnos

48
00:03:25,780 --> 00:03:27,790
‫cómo dibujar un cubo.

49
00:03:28,480 --> 00:03:34,270
‫Ahora, estos objetos a menudo pueden tener muchos más datos que estos, y eso significa

50
00:03:34,270 --> 00:03:40,360
‫que su computadora puede volverse bastante difícil de manipular y, ciertamente, si tiene que copiar estos objetos.

51
00:03:40,810 --> 00:03:46,990
‫Entonces, en lugar de hacer eso, usamos una estructura inteligente llamada referencia que es esencialmente solo una dirección

52
00:03:46,990 --> 00:03:53,800
‫o ¿dónde debo ir para encontrar este objeto en la memoria de la computadora para no tener que mover el

53
00:03:53,800 --> 00:03:55,450
‫objeto todo el tiempo?

54
00:03:55,810 --> 00:04:01,750
‫Cubriremos un poco más sobre cómo funciona esto realmente en la memoria cuando lleguemos a C++, pero por ahora, es

55
00:04:01,750 --> 00:04:03,910
‫suficiente saber que es solo una dirección.

56
00:04:04,870 --> 00:04:09,640
‫Entonces, lo que podemos hacer, por ejemplo, sumerjámonos en Unreal.

57
00:04:09,640 --> 00:04:17,110
‫Si estuviéramos en nuestro nivel principal y deseáramos usar alguna funcionalidad en nuestro cubo, entonces lo que puedo hacer es seleccionar el cubo en

58
00:04:17,110 --> 00:04:22,030
‫la escena y luego puedo ir a mi plano de nivel y hacer clic derecho,

59
00:04:22,390 --> 00:04:27,490
‫y luego puedo haga clic en crear una referencia a Cube y esto crea un nuevo nodo.

60
00:04:28,000 --> 00:04:29,170
‫Ahora, ¿qué está haciendo eso?

61
00:04:29,170 --> 00:04:32,980
‫Bueno, eso básicamente nos dice que esta es la dirección del Cubo.

62
00:04:32,980 --> 00:04:35,740
‫Si quieres hacer algo con el cubo, aquí es donde lo encuentras.

63
00:04:36,250 --> 00:04:41,230
‫Lo que sucede en Blueprint cuando ejecutas el juego es que va a buscar ese cubo.

64
00:04:41,230 --> 00:04:47,080
‫Y luego puede hacer preguntas o usar la funcionalidad en el cubo, como decir, Oye, ¿dónde vive tu

65
00:04:47,080 --> 00:04:48,640
‫componente de malla estática?

66
00:04:48,820 --> 00:04:51,220
‫Y dice, está bien, los componentes de malla estática de allí.

67
00:04:51,220 --> 00:04:56,260
‫Así que vamos y encontramos el componente de malla estática y luego podemos hacer preguntas sobre eso y ellos pueden decir:

68
00:04:56,260 --> 00:04:57,310
‫Oye, ¿cómo te llamas?

69
00:04:57,310 --> 00:04:58,420
‫Componente de malla estática.

70
00:04:58,660 --> 00:05:01,360
‫Y el componente estático puede decir: Hola, me llamo Bob.

71
00:05:01,630 --> 00:05:07,510
‫Y así es como podemos usar estas referencias y usar la funcionalidad de múltiples objetos diferentes para llegar

72
00:05:07,810 --> 00:05:09,400
‫a donde queremos ir.

73
00:05:09,670 --> 00:05:13,750
‫Ahora hemos dicho que una referencia es dónde encontrar un objeto.

74
00:05:13,990 --> 00:05:17,740
‫Y ahora algo más que vale la pena señalar es un panel de datos.

75
00:05:17,740 --> 00:05:18,250
‫¿Qué es un

76
00:05:18,440 --> 00:05:21,260
‫TAPPIN Bueno, esta referencia de cubo en realidad tiene uno.

77
00:05:21,260 --> 00:05:26,590
‫Esta pequeña cosa redonda azul en su lado derecho es un pin de datos.

78
00:05:26,600 --> 00:05:30,470
‫De hecho, los hemos visto antes en los nodos de la cadena de impresión en el lado izquierdo, y son de

79
00:05:30,470 --> 00:05:31,040
‫color púrpura.

80
00:05:31,490 --> 00:05:37,190
‫¿Y en qué se diferencian de los otros tipos de pines que hemos visto, estos pines blancos?

81
00:05:37,700 --> 00:05:42,530
‫Bueno, el pin de datos es la entrada o salida de datos para un nodo.

82
00:05:42,770 --> 00:05:47,630
‫Entonces, un nodo, si está en el lado izquierdo, es la entrada, son los datos con los que puede trabajar el nodo.

83
00:05:47,930 --> 00:05:51,950
‫Si está en el lado derecho, son los datos que produce Node.

84
00:05:52,190 --> 00:06:00,430
‫Entonces, en el caso del cubo, este nodo produce una referencia al actor del cubo, luego los pines de ejecución.

85
00:06:00,710 --> 00:06:06,410
‫En realidad, estos son los nombres de esos pines blancos para diferenciarlos de los pines de datos,

86
00:06:06,620 --> 00:06:09,680
‫y siguen siendo cuando se ejecuta el nodo.

87
00:06:09,680 --> 00:06:12,230
‫Entonces, los pines de datos son con lo que se ejecuta el nodo.

88
00:06:12,440 --> 00:06:14,660
‫Los pines de ejecución son cuándo ejecutarlo.

89
00:06:14,900 --> 00:06:21,230
‫Entonces, con toda esa información, hagamos un poco de uso de la funcionalidad de estos objetos.

90
00:06:21,590 --> 00:06:23,300
‫Así que tenemos nuestra referencia de cubo.

91
00:06:23,300 --> 00:06:30,050
‫Si arrastramos fuera del pin de referencia del cubo, puede usar toda la funcionalidad que tiene ese cubo.

92
00:06:30,380 --> 00:06:36,230
‫Como dije, tenemos un componente en el cubo llamado componente de malla estática, y quiero seguir adelante

93
00:06:36,230 --> 00:06:38,360
‫y conseguir una referencia a eso.

94
00:06:38,360 --> 00:06:42,770
‫Así que buscaremos obtener componentes de malla estática.

95
00:06:43,340 --> 00:06:46,970
‫Y el elemento más bajo para mí es obtener un componente de malla estática.

96
00:06:46,970 --> 00:06:47,870
‫Puedo hacer clic en eso.

97
00:06:48,110 --> 00:06:54,560
‫Obtenemos un nuevo nodo en el que la entrada es una referencia de cubo y la salida es una referencia a este.

98
00:06:54,560 --> 00:06:56,240
‫Es un componente de malla estática.

99
00:06:56,600 --> 00:07:01,640
‫Entonces, si nos alejamos de eso, podemos solicitar la funcionalidad del componente de

100
00:07:01,640 --> 00:07:11,270
‫malla estática, como obtener el nombre para mostrar, y eso nos da la entrada de la referencia del componente de malla estática y usa su funcionalidad de

101
00:07:11,270 --> 00:07:19,400
‫obtener el nombre para mostrar y luego regresa una cadena o un valor de texto que podemos imprimir usando el nodo de cadena

102
00:07:19,400 --> 00:07:20,270
‫de impresión.

103
00:07:20,270 --> 00:07:26,240
‫Entonces, podemos arrastrarlo y escribir cadena de impresión y luego podemos conectar las notas de ejecución para que se

104
00:07:26,240 --> 00:07:32,480
‫ejecuten después de las otras dos cadenas de impresión en Begin Play, notará que algunos de estos nodos no tienen

105
00:07:32,480 --> 00:07:34,700
‫pines de ejecución y podría ser confuso.

106
00:07:34,700 --> 00:07:35,690
‫¿Cuándo se ejecutan?

107
00:07:35,930 --> 00:07:42,470
‫Bueno, se ejecutan cuando los planos lo consideran apropiado, esencialmente cuando lo necesita un nodo que

108
00:07:42,470 --> 00:07:44,810
‫tiene un pin de ejecución.

109
00:07:45,200 --> 00:07:50,030
‫Entonces, si continuamos y presionamos reproducir, pueden ver que aparece con un componente cero de malla estática de cubo

110
00:07:50,030 --> 00:07:55,550
‫de nombre, algo así como un programa de bits, tal vez no lo sea, no es Bob. Es un poco más complicado

111
00:07:55,550 --> 00:07:56,150
‫que eso.

112
00:07:56,180 --> 00:08:01,940
‫Pero pueden ver que esencialmente hemos codificado en esa cadena de preguntas que tenía en mi diapositiva.

113
00:08:02,510 --> 00:08:09,050
‫Así que me gustaría desafiarlo a seguir adelante y obtener la masa de nuestros componentes de malla estática.

114
00:08:09,260 --> 00:08:11,240
‫Lo hemos configurado en el pasado.

115
00:08:11,240 --> 00:08:15,890
‫Si ingresa al nivel y observa el panel de detalles, puede ver que una de las propiedades

116
00:08:15,890 --> 00:08:20,270
‫físicas era la masa y la configuramos como un dato en el componente de malla estática.

117
00:08:20,780 --> 00:08:26,510
‫Bueno, si elimina el nodo obtener nombre para mostrar y arrastra el componente de malla estática,

118
00:08:26,510 --> 00:08:33,380
‫debería poder buscar obtener masa y eso debería obtener la pieza de datos en el componente de malla estática y

119
00:08:33,410 --> 00:08:39,650
‫ver si puede imprimir ese valor usando nuestro nodo de cadena de impresión pausa el video y prueba.

120
00:08:43,240 --> 00:08:43,890
‫Bueno.

121
00:08:43,900 --> 00:08:44,680
‫Bienvenido de nuevo.

122
00:08:44,890 --> 00:08:51,610
‫Entonces, si volvemos al modelo, simplemente elimine nuestro nombre para mostrar, arrastre el componente de malla estática

123
00:08:51,610 --> 00:08:53,380
‫y busque obtener masa.

124
00:08:54,010 --> 00:08:55,780
‫Entonces podemos extraer ese nodo.

125
00:08:56,050 --> 00:09:00,580
‫Aquí tenemos un valor de retorno y ese será nuestro valor de masa.

126
00:09:00,580 --> 00:09:05,140
‫Puede ver si pasa el cursor sobre él, dice que devuelve la masa de este componente en kilogramos.

127
00:09:05,380 --> 00:09:12,300
‫Y, por cierto, el valor de retorno solo significa los datos de salida y luego podemos arrastrar ese nodo a nuestra cadena de

128
00:09:12,310 --> 00:09:14,290
‫entrada para la cadena de impresión.

129
00:09:14,710 --> 00:09:17,770
‫Y ves que crea un pequeño nodo de conversión que está bien.

130
00:09:17,770 --> 00:09:22,630
‫Se está convirtiendo de cualquier valor que sea en algo que la cadena de impresión aceptará.

131
00:09:23,020 --> 00:09:28,990
‫Podemos seguir adelante y presionar reproducir y verá que obtenemos el valor de 1000, que sabemos que fue la masa que configuramos

132
00:09:28,990 --> 00:09:30,940
‫o lo que sea que realmente configure.

133
00:09:30,940 --> 00:09:34,570
‫Puede cambiar eso y ver que este valor también cambiará.

134
00:09:34,930 --> 00:09:36,190
‫Así que eso es todo por esta conferencia.

135
00:09:36,190 --> 00:09:42,790
‫Hemos aprendido sobre objetos y sus referencias y cómo usar nodos de funcionalidad en blueprints.

