﻿1
00:00:04,370 --> 00:00:05,210
‫Hola y bienvenido.

2
00:00:05,210 --> 00:00:10,250
‫En esta lección, vamos a investigar el concepto de variables locales, variables que solo existen dentro

3
00:00:10,250 --> 00:00:11,750
‫de una función dada.

4
00:00:12,080 --> 00:00:19,970
‫Y vamos a ver cómo podemos usar esto para establecer nuestra ubicación en un valor diferente al almacenado

5
00:00:19,970 --> 00:00:21,380
‫en mi vector.

6
00:00:21,530 --> 00:00:22,190
‫Sumerjámonos.

7
00:00:22,730 --> 00:00:28,340
‫Entonces, hasta este punto, hemos estado tratando con variables que pertenecen a una clase.

8
00:00:28,580 --> 00:00:31,520
‫Hemos hecho esto en Blueprint y ahora lo hemos hecho en C++.

9
00:00:31,910 --> 00:00:37,130
‫Y esto significa que la variable está viva mientras dure la instancia de la clase.

10
00:00:37,130 --> 00:00:43,190
‫Cada instancia obtiene su propia copia de una variable, pero mientras la instancia de clase está viva, la variable es

11
00:00:43,190 --> 00:00:43,820
‫dos.

12
00:00:44,030 --> 00:00:47,660
‫Ahora, este concepto del que acabo de hablar tiene un nombre.

13
00:00:47,660 --> 00:00:48,830
‫Se llama Alcance.

14
00:00:49,430 --> 00:00:52,640
‫Lo que significa es ¿cuánto tiempo vive la variable?

15
00:00:52,640 --> 00:00:59,450
‫Y acabo de describir una variable de instancia que es una variable que vive tanto como una instancia particular de

16
00:00:59,450 --> 00:01:00,470
‫una clase.

17
00:01:00,950 --> 00:01:03,830
‫Ahora también hay otros tipos de variables.

18
00:01:03,830 --> 00:01:07,430
‫Hay variables que viven tanto como una función.

19
00:01:07,430 --> 00:01:13,160
‫Básicamente, cuando llamas a una función en particular, esa función se ejecuta y tan pronto como la función

20
00:01:13,160 --> 00:01:14,720
‫finaliza, la variable muere.

21
00:01:15,200 --> 00:01:23,660
‫Entonces, en C ++, en términos generales, una variable es válida entre las llaves en la sintaxis.

22
00:01:23,660 --> 00:01:25,470
‫Así que es una buena regla general.

23
00:01:25,470 --> 00:01:31,460
‫No siempre es exactamente correcto, pero la función tick, por ejemplo, tenemos algunas

24
00:01:31,460 --> 00:01:39,710
‫llaves aquí y si tuviéramos que declarar una variable dentro de esta función tick, entonces solo existiría una vez.

25
00:01:39,710 --> 00:01:43,820
‫Se llama a la función tick y la próxima vez se creará de nuevo.

26
00:01:44,480 --> 00:01:45,950
‫La plataforma móvil.

27
00:01:45,980 --> 00:01:52,130
‫Si podemos ver eso, si echamos un vistazo a la plataforma en movimiento dot h, puede ver que mi

28
00:01:52,130 --> 00:01:59,540
‫vector se declara dentro de algunas llaves que pertenecen a la definición de la clase, razón por la cual estas variables viven tanto como

29
00:01:59,540 --> 00:02:02,210
‫un la instancia de la clase lo hace.

30
00:02:02,420 --> 00:02:04,580
‫Así que me gustaría probarte esto.

31
00:02:04,580 --> 00:02:11,060
‫Así que vayamos al punto CP de la plataforma móvil y creemos una variable local dentro de esto.

32
00:02:11,240 --> 00:02:14,870
‫Así que voy a crearlo exactamente de la misma manera que lo hicimos nosotros.

33
00:02:15,110 --> 00:02:20,840
‫Cuando declaramos un error en el encabezado del archivo, vamos a tener un vector F, luego el nombre

34
00:02:20,840 --> 00:02:22,850
‫del vector, lo llamaré vector local.

35
00:02:23,810 --> 00:02:27,920
‫Y luego podemos establecer este valor justo cuando lo creamos.

36
00:02:28,190 --> 00:02:32,810
‫Podemos hacerlo usando el constructor para el vector F, o podemos hacerlo desde otra variable, al igual

37
00:02:32,930 --> 00:02:35,510
‫que podemos pasar una variable a una función.

38
00:02:35,510 --> 00:02:38,810
‫Entonces, en primer lugar, solo podemos usar el método constructor.

39
00:02:38,810 --> 00:02:45,410
‫Así que vamos a tener el vector F y le voy a dar un 1 a 3 y luego un punto y coma, el final de

40
00:02:45,410 --> 00:02:46,010
‫la línea.

41
00:02:46,010 --> 00:02:48,160
‫Así que ahora es una variable local.

42
00:02:48,170 --> 00:02:54,830
‫Solo existe dentro de esta función y se restablece cada vez que se llama a la función.

43
00:02:55,190 --> 00:03:01,190
‫Entonces, si tuviera que hacer algo como esto, si tuviera que hacer algo como lo que

44
00:03:01,190 --> 00:03:09,350
‫tenemos en la línea 29 con mi vector actualizado, podemos tener un vector local, podemos tener un vector local punto z igual

45
00:03:09,350 --> 00:03:12,470
‫al vector local punto z mas uno.

46
00:03:13,040 --> 00:03:22,010
‫Y si tuviera que establecer mi ubicación en ese vector local, será el mismo en cada cuadro porque

47
00:03:22,010 --> 00:03:26,180
‫reiniciamos y comenzamos desde la misma ubicación.

48
00:03:26,180 --> 00:03:28,880
‫Uno, dos, tres, cada función de marca única.

49
00:03:28,880 --> 00:03:31,520
‫Entonces, esta función realmente solo existe localmente.

50
00:03:31,670 --> 00:03:38,810
‫Así que me gustaría que intentaras un pequeño experimento como desafío para establecer un vector local desde mi vector.

51
00:03:38,810 --> 00:03:43,550
‫Entonces, básicamente, en lugar de configurarlo desde el constructor, lo configurará desde el

52
00:03:43,550 --> 00:03:49,460
‫valor que está actualmente en mi vector que tomará una copia de ese vector en su vector

53
00:03:49,460 --> 00:03:49,940
‫local.

54
00:03:50,570 --> 00:03:54,320
‫Luego, me gustaría que se establezca en una ubicación usando el vector local.

55
00:03:54,650 --> 00:04:00,350
‫Y debido a que estamos tratando de actualizar ese vector local en cada cuadro, veamos cuál es el efecto.

56
00:04:00,350 --> 00:04:01,580
‫¿Se mueve la plataforma?

57
00:04:01,580 --> 00:04:07,850
‫¿Esperaría que lo hiciera e ir y probarlo, compilar el código y ver si realmente publica un video y

58
00:04:07,850 --> 00:04:08,870
‫lo intenta?

59
00:04:11,950 --> 00:04:12,580
‫Bueno.

60
00:04:12,580 --> 00:04:13,570
‫Bienvenido de nuevo.

61
00:04:13,600 --> 00:04:19,480
‫Entonces, en lugar de usar el constructor aquí para establecer el vector local, voy a establecer mi

62
00:04:19,510 --> 00:04:20,920
‫vector en su lugar.

63
00:04:21,220 --> 00:04:28,330
‫Así que estamos tomando el valor que está actualmente almacenado en mi vector y lo estamos poniendo en el

64
00:04:28,900 --> 00:04:32,800
‫vector local y luego estamos actualizando el vector local.

65
00:04:32,800 --> 00:04:36,520
‫Estamos aumentando, dicho esto, en uno cada fotograma.

66
00:04:36,850 --> 00:04:40,930
‫Y luego me gustaría establecer una ubicación activa en lugar de desde mi vector.

67
00:04:40,930 --> 00:04:44,770
‫En su lugar, lo configuraremos desde el vector local.

68
00:04:45,580 --> 00:04:48,880
‫Ahora, ¿qué va a pasar en este caso, crees?

69
00:04:48,910 --> 00:04:50,980
‫Avancemos y averigüémoslo.

70
00:04:50,980 --> 00:04:56,590
‫Presionaré el botón de compilación y continuaré y presionaré reproducir y veré que

71
00:04:56,590 --> 00:05:03,100
‫la plataforma todavía se está moviendo hacia la derecha, pero no sube en la dirección Z.

72
00:05:03,100 --> 00:05:09,460
‫Así que pueden ver que esto realmente no tiene un impacto, el aumento del vector local porque

73
00:05:09,760 --> 00:05:14,380
‫se restablece desde el valor actual en mi vector, cada cuadro.

74
00:05:14,830 --> 00:05:17,320
‫Mi vector, sin embargo, todavía se está actualizando.

75
00:05:17,320 --> 00:05:19,780
‫En cada cuadro, el valor de y se incrementa, en cada cuadro.

76
00:05:19,780 --> 00:05:22,630
‫Y es por eso que estamos viendo el movimiento hacia la derecha.

77
00:05:22,900 --> 00:05:31,540
‫Entonces, una forma en que podemos ver que este cambio al vector local es solo local es aumentando este valor de

78
00:05:31,540 --> 00:05:33,610
‫uno a quizás 100.

79
00:05:33,820 --> 00:05:38,350
‫Entonces estamos sumando 100 al valor del vector local.

80
00:05:38,800 --> 00:05:42,280
‫Podemos repasar y compilar y luego presionar reproducir.

81
00:05:42,850 --> 00:05:47,680
‫Y lo que van a ver es que la plataforma en realidad está 100 unidades más alta en el aire.

82
00:05:47,680 --> 00:05:55,600
‫Tomemos un segundo aquí y expulsemos con F8 y pausemos el juego con el botón de pausa en la barra de

83
00:05:55,600 --> 00:06:01,750
‫herramientas principal y luego seleccionemos una plataforma en movimiento para verla en el panel de detalles.

84
00:06:01,750 --> 00:06:06,340
‫Para hacer eso, tengo que hacer clic en él en la ventana gráfica por alguna razón, a veces no funciona simplemente haciendo clic

85
00:06:06,340 --> 00:06:07,510
‫en él en el contorno.

86
00:06:07,510 --> 00:06:17,380
‫M Y me gustaría señalarles que el valor en mi vector, el valor Z en mi vector es 100 unidades

87
00:06:17,380 --> 00:06:21,790
‫menos que la ubicación Z de la transformación.

88
00:06:22,090 --> 00:06:26,970
‫Entonces puede ver que agregar a ese vector local ha tenido un impacto.

89
00:06:26,980 --> 00:06:34,120
‫Tenemos nuestra ubicación 100 unidades más alta que la ubicación en el vector my.

90
00:06:34,150 --> 00:06:39,280
‫Y lo realmente bueno de las variables locales es que cuando la función ha terminado su ejecución

91
00:06:39,280 --> 00:06:41,440
‫particular, se borran y se reinician.

92
00:06:41,440 --> 00:06:44,230
‫Por lo tanto, siempre puede saber qué esperar con la variable local.

93
00:06:44,500 --> 00:06:50,650
‫Siempre sabe qué valor va a tener, a diferencia de una variable de clase que se puede actualizar en

94
00:06:50,710 --> 00:06:52,660
‫cualquier momento desde cualquier otra función.

95
00:06:52,720 --> 00:06:57,160
‫Así que vamos a poner estas variables locales a prueba en unas pocas conferencias.

96
00:06:57,160 --> 00:06:58,360
‫Buceemos.

