﻿1
00:00:04,380 --> 00:00:05,280
‫Hola y bienvenido.

2
00:00:05,280 --> 00:00:12,510
‫En esta lección, vamos a acceder a los actores superpuestos en algo llamado matriz

3
00:00:12,510 --> 00:00:19,800
‫para que podamos imprimir los actores que vemos dentro de este volumen completamente desde C++.

4
00:00:19,800 --> 00:00:21,300
‫Vamos a sumergirnos y ver cómo se hace.

5
00:00:22,480 --> 00:00:30,700
‫Así que como en las analogías anteriores, imaginemos que un tipo o una variable es una casilla en la que ponemos un valor.

6
00:00:31,150 --> 00:00:35,250
‫Ahora bien, ¿qué sucede si no sabemos cuántos valores queremos almacenar?

7
00:00:35,260 --> 00:00:36,640
‫Podríamos crear muchas variables.

8
00:00:36,640 --> 00:00:39,430
‫Si supiéramos que íbamos a tener cinco, podríamos hacer cinco variables.

9
00:00:39,700 --> 00:00:45,670
‫Pero, ¿y si tuviéramos algo que es impredeciblemente muchos, como la cantidad de actores que tenemos en nuestro nivel

10
00:00:46,170 --> 00:00:51,010
‫A, o los actores que se superponen con un volumen de activación en particular?

11
00:00:51,490 --> 00:01:00,130
‫En este caso, necesitamos usar un nuevo tipo de datos llamado matriz T en Unreal y básicamente una matriz T de

12
00:01:00,130 --> 00:01:01,200
‫cierto tipo.

13
00:01:01,210 --> 00:01:08,560
‫Aquí nuevamente, estamos viendo estos paréntesis angulares que, como dijimos anteriormente, compilan parámetros de tiempo.

14
00:01:08,980 --> 00:01:14,770
‫Y esta vez estamos tomando, nuevamente, un tipo que nos dice qué tipo podemos almacenar en una matriz.

15
00:01:14,770 --> 00:01:21,310
‫Una matriz es como una variable, excepto que tiene varias casillas y el número de casillas que tenemos puede

16
00:01:21,670 --> 00:01:22,750
‫ser diferente.

17
00:01:22,750 --> 00:01:23,920
‫Cuando estamos jugando un juego.

18
00:01:23,920 --> 00:01:24,910
‫puede cambiar

19
00:01:24,910 --> 00:01:30,880
‫Podemos agregar más o menos a medida que avanzamos en el juego, a medida que las cosas comienzan a superponerse con agregar más cuadros, a medida

20
00:01:30,880 --> 00:01:33,640
‫que las cosas salen de la zona de superposición, las quitamos.

21
00:01:33,880 --> 00:01:37,270
‫Y como dije, este es un parámetro dentro de estos.

22
00:01:38,270 --> 00:01:39,260
‫Paréntesis angulares.

23
00:01:39,680 --> 00:01:45,350
‫Entonces, podríamos tener una matriz T de enteros, por ejemplo, que almacenaría diferentes enteros en esos

24
00:01:45,350 --> 00:01:45,980
‫cuadros.

25
00:01:46,310 --> 00:01:52,670
‫Podríamos tener una matriz t de punteros de actores, y esto en realidad almacenaría los punteros en las cajas,

26
00:01:52,670 --> 00:01:55,610
‫que señalarían a los actores en el mundo.

27
00:01:55,940 --> 00:02:01,190
‫Y como puede ver, incluso podrían superponerse de modo que algunos de estos punteros apunten a los mismos actores.

28
00:02:01,490 --> 00:02:04,580
‫Ahora practica eso no sería muy útil, pero ciertamente es posible.

29
00:02:04,850 --> 00:02:10,790
‫Así que quiero revisar la documentación del componente primitivo you, porque lo

30
00:02:10,790 --> 00:02:16,450
‫que estoy buscando aquí es una función llamada obtener actores superpuestos.

31
00:02:16,460 --> 00:02:20,930
‫Y si echa un vistazo a la función de obtención de actores superpuestos, hay un par de versiones.

32
00:02:21,590 --> 00:02:26,570
‫Pero el que más me interesa es el segundo.

33
00:02:27,200 --> 00:02:29,030
‫No tiene valor de retorno.

34
00:02:29,030 --> 00:02:30,440
‫Es un valor de retorno nulo.

35
00:02:30,440 --> 00:02:38,690
‫Pero puede ver que el primer parámetro aquí es una matriz de punteros de actor con un ampersand al final, lo

36
00:02:38,690 --> 00:02:43,640
‫que significa que todo esto es una referencia a una matriz t.

37
00:02:43,640 --> 00:02:46,280
‫Ahora observe que no es una referencia constante.

38
00:02:46,700 --> 00:02:51,860
‫Entonces podemos asumir que este parámetro es en realidad un parámetro de salida.

39
00:02:51,860 --> 00:03:00,050
‫Nos da el resultado de los actores superpuestos y nos dice qué actores se superponen actualmente con

40
00:03:00,290 --> 00:03:02,270
‫nuestros componentes primitivos.

41
00:03:02,540 --> 00:03:06,500
‫Ahora sucede que nuestro componente de caja es un componente primitivo.

42
00:03:06,890 --> 00:03:12,440
‫Entonces, nuestro componente desencadenante también es un componente de proyecto, y yo tendría acceso a esta función.

43
00:03:13,490 --> 00:03:18,140
‫Aquí hay un segundo argumento, pero no tenemos que preocuparnos por eso porque en realidad tiene un

44
00:03:18,140 --> 00:03:19,520
‫valor predeterminado si lo usamos.

45
00:03:19,730 --> 00:03:25,820
‫Así que sigamos adelante e intentemos obtener y completar una matriz de punteros activos.

46
00:03:26,150 --> 00:03:28,490
‫Vamos a entrar en el componente de trucos, CPP.

47
00:03:28,520 --> 00:03:31,340
‫Vamos a bajar a los componentes de tick.

48
00:03:31,820 --> 00:03:38,150
‫Y aquí vamos a crear una matriz t vacía que podemos llenar usando esta función.

49
00:03:38,300 --> 00:03:48,080
‫Así que la sintaxis es matriz t entre corchetes angulares abiertos una estrella de actor para decir que tenemos una matriz t de punteros

50
00:03:48,080 --> 00:03:55,070
‫de actor, cierre los corchetes angulares y luego podemos dar a esta variable el nombre de actores.

51
00:03:55,370 --> 00:04:05,510
‫Luego llamaríamos para obtener actores superpuestos y pasaríamos la matriz de actores.

52
00:04:06,650 --> 00:04:06,890
‫Ahora.

53
00:04:06,890 --> 00:04:11,630
‫No sé por qué no solo pasan esto como un valor de retorno, pero.

54
00:04:12,780 --> 00:04:13,380
‫Ahí tienes

55
00:04:13,380 --> 00:04:18,150
‫Nos da la oportunidad de usar esos nuestros parámetros un poco más.

56
00:04:18,330 --> 00:04:19,470
‫Ahora, eso está muy bien.

57
00:04:19,500 --> 00:04:22,110
‫Tenemos algunos actores en una matriz.

58
00:04:22,650 --> 00:04:24,090
‫Hay una longitud variable de ellos.

59
00:04:24,090 --> 00:04:25,080
‫Puede haber bastantes.

60
00:04:25,080 --> 00:04:26,310
‫Puede haber cero.

61
00:04:26,820 --> 00:04:29,490
‫¿Qué hacemos con arreglos como este?

62
00:04:29,640 --> 00:04:33,980
‫Bueno, podemos consultar cuántos elementos hay en la matriz.

63
00:04:33,990 --> 00:04:40,980
‫Puede usar paréntesis de número de punto de matriz y eso puede devolver un número entero que le indica cuántos elementos hay en la

64
00:04:40,980 --> 00:04:41,550
‫matriz.

65
00:04:41,580 --> 00:04:48,570
‫Entonces, en esta matriz en particular, podríamos decir que hay cinco, y luego podemos acceder a los elementos

66
00:04:48,570 --> 00:04:51,780
‫dentro de esa matriz usando estos corchetes.

67
00:04:52,410 --> 00:04:55,830
‫Y luego el número que pasas entre corchetes te dice qué artículo obtener.

68
00:04:56,250 --> 00:05:02,610
‫Y es una convención habitual en muchos lenguajes de programación que empecemos a contar desde cero en matrices.

69
00:05:02,940 --> 00:05:09,480
‫Entonces, el elemento cero de una matriz es el primero, el elemento uno de una matriz es el segundo, etc.

70
00:05:09,690 --> 00:05:14,940
‫Y así terminas con el último elemento siempre siendo uno menos que el número de elementos en la matriz.

71
00:05:15,750 --> 00:05:17,490
‫Entonces, ¿cómo podemos usar este conocimiento?

72
00:05:17,550 --> 00:05:24,330
‫Bueno, por ejemplo, solo podríamos imprimir los actores superpuestos si hay más de uno.

73
00:05:24,690 --> 00:05:26,030
‫Entonces, ¿cómo haríamos esto?

74
00:05:26,040 --> 00:05:38,070
‫Pondríamos una declaración if diciendo que si el número de puntos entre paréntesis de los actores es mayor que cero, entonces podemos hacer algo aquí,

75
00:05:38,070 --> 00:05:46,470
‫como obtener acceso al elemento cero de nuestros actores porque sabemos que si es mayor que cero, debe

76
00:05:46,470 --> 00:05:50,100
‫haber al menos menos un elemento allí.

77
00:05:50,100 --> 00:05:54,480
‫Entonces, los elementos cero de esta matriz deben tener algo.

78
00:05:54,720 --> 00:05:59,880
‫No podemos garantizar que el primer elemento, el único elemento de la matriz, tenga algo o que

79
00:05:59,880 --> 00:06:01,440
‫los dos elementos tengan algo.

80
00:06:01,680 --> 00:06:06,840
‫Tendríamos que verificar si tenemos suficientes elementos en la matriz para hacerlo, pero definitivamente sabemos que

81
00:06:06,840 --> 00:06:08,550
‫aquí está el primero.

82
00:06:08,730 --> 00:06:12,510
‫Así que vamos a desafiarte a que imprimas el primer actor superpuesto de esa matriz.

83
00:06:12,780 --> 00:06:16,470
‫Use la matriz para obtener el puntero usando esos corchetes.

84
00:06:16,770 --> 00:06:22,200
‫Luego, usará ese puntero para llamar, obtener actor, nombre o etiqueta, y luego

85
00:06:22,200 --> 00:06:23,280
‫imprimirá eso.

86
00:06:23,580 --> 00:06:24,870
‫Pausa el video y pruébalo.

87
00:06:28,250 --> 00:06:28,570
‫Bueno.

88
00:06:28,580 --> 00:06:29,390
‫Bienvenido de nuevo.

89
00:06:29,750 --> 00:06:34,460
‫Entonces podemos obtener el puntero aquí usando estos corchetes.

90
00:06:34,820 --> 00:06:41,090
‫Y luego voy a obtener el nombre directamente usando el operador de flecha y llamando a

91
00:06:41,240 --> 00:06:43,310
‫obtener actor, nombre o etiqueta.

92
00:06:44,180 --> 00:06:50,030
‫Y voy a poner eso en una variable de cadena F llamada nombre del actor.

93
00:06:50,240 --> 00:06:56,480
‫Luego vamos a hacer un registro U, que llamaremos los dos puntos superpuestos.

94
00:06:56,480 --> 00:06:58,130
‫Y luego por ciento s.

95
00:06:58,460 --> 00:07:03,440
‫Y luego el segundo argumento aquí debería ser asterisco, nombre del actor.

96
00:07:03,740 --> 00:07:09,470
‫Luego podemos recompilar, saltar a nuestro expediente de registro de salida en el diseño.

97
00:07:09,620 --> 00:07:16,070
‫Entonces vamos a abrir el muro secreto de BP porque no quiero imprimir esta cadena que confunde

98
00:07:16,070 --> 00:07:17,210
‫las cosas.

99
00:07:17,210 --> 00:07:23,960
‫En Blueprint, estamos haciendo esto ahora desde C++, así que vayamos al nivel de la mazmorra, haga clic en reproducir.

100
00:07:25,190 --> 00:07:28,430
‫Y obviamente nada se superpone a ese actor en este momento.

101
00:07:28,820 --> 00:07:31,520
‫Entonces, ¿qué pasa si entramos y entramos?

102
00:07:32,060 --> 00:07:36,080
‫Puede ver que comienza a imprimir instantáneamente, que estamos superponiendo el reproductor BP.

103
00:07:36,500 --> 00:07:37,520
‫Cosas fantásticas.

104
00:07:37,820 --> 00:07:40,130
‫¿Qué pasaría si fuéramos a buscar la gárgola en su lugar?

105
00:07:40,370 --> 00:07:43,780
‫Llévalo a la alcoba, mételo y listo.

106
00:07:43,790 --> 00:07:46,160
‫Dice que se superpone a la estatua de la gárgola.

107
00:07:46,700 --> 00:07:47,210
‫Buena cosa.

108
00:07:47,210 --> 00:07:55,280
‫Así que hemos aprendido cómo usar una matriz t para obtener una lista de actores y averiguar cuántas cosas hay

109
00:07:55,280 --> 00:08:00,770
‫en esa lista y cómo obtener un elemento en particular de esa lista.

110
00:08:01,070 --> 00:08:05,600
‫En la próxima lección, veremos algunas estructuras de programación que nos permiten

111
00:08:05,810 --> 00:08:10,520
‫tratar con un número variable de cosas para realizar un número variable de tareas.

112
00:08:10,790 --> 00:08:11,600
‫Te veré allá.

