1
00:00:04,200 --> 00:00:08,120
Bien bueno ahora vamos a hablar de comunicación entre scripps.

2
00:00:08,190 --> 00:00:15,440
La comunicación entre scripps es una de las partes más esenciales en el desarrollo de videojuegos.

3
00:00:15,660 --> 00:00:21,050
Prácticamente nunca vas a tener un solo script que lo haga todo sino más bien vas a tener múltiples

4
00:00:21,050 --> 00:00:24,390
clips repartidos a través de juego.

5
00:00:24,540 --> 00:00:32,100
Algunos juegos de estudio o incluso algunos juegos indie tienen cientos o miles de scripts que se comunican

6
00:00:32,100 --> 00:00:36,910
entre ellos para crear cierto tipo de gameplay.

7
00:00:37,200 --> 00:00:43,680
Ahora lo que necesitamos hacer ahora es bueno por lo pronto lo que tenemos es que cuando un Power colisiona

8
00:00:43,680 --> 00:00:49,800
con el jugador es capaz de imprimir el nombre del objeto con el que colisionó pero lo que necesitamos

9
00:00:49,800 --> 00:01:00,030
que haga es básicamente acceder al jugador y después de que el jugador es cambiar el booleano que activa

10
00:01:00,380 --> 00:01:05,820
el disparo triple A verdadero y al final los tenemos que destruir a nosotros mismos.

11
00:01:06,030 --> 00:01:09,130
Y cómo funciona la comunicación entre equipos.

12
00:01:09,180 --> 00:01:15,510
La comunicación entre scripps Funciona a través del uso de un método llamado componente Entonces primero

13
00:01:15,510 --> 00:01:19,190
vamos a consultar la referencia para ver de qué se trata el componente.

14
00:01:19,740 --> 00:01:24,850
Escribimos componentes y buscamos componentes componentes.

15
00:01:26,180 --> 00:01:34,600
Y la descripción dice algo así como regresã el componente del tipo Si el objeto tiene uno adentro y

16
00:01:34,600 --> 00:01:36,590
regresa a un nobol si no lo tiene.

17
00:01:37,030 --> 00:01:37,900
Veamos el ejemplo.

18
00:01:37,910 --> 00:01:45,430
Aquí tienen un ingenio egipcio es simplemente una clase de Unity y la llamaron Jin que es simplemente

19
00:01:45,430 --> 00:01:46,520
un nombre de la variable.

20
00:01:46,810 --> 00:01:49,460
Y luego dice que componen jinchuk.

21
00:01:49,860 --> 00:01:58,400
Y una vez que obtienen ese componente ellos pueden tener acceso a las propiedades de las clases Ginocchio.

22
00:01:58,600 --> 00:02:04,060
Otro ejemplo podría ser no sé si usamos la clase Player's que creamos y creamos una variable que llamemos

23
00:02:04,060 --> 00:02:06,050
por ejemplo.

24
00:02:06,470 --> 00:02:14,140
Y luego podríamos escribir Quiet Component Player entonces luego podríamos decir p punto y tener acceso

25
00:02:14,140 --> 00:02:18,650
a todas las variables y métodos públicos que tenga pleura dentro.

26
00:02:19,150 --> 00:02:26,250
Entonces para hacer esto funcionar hay dos partes necesarias en la comunicación de Skype.

27
00:02:26,500 --> 00:02:30,240
Primero necesitamos algo que maneje que controle el componente.

28
00:02:31,440 --> 00:02:34,350
Bueno eso es lo que vamos a hacer primero en este caso.

29
00:02:34,350 --> 00:02:36,840
Cuál es el componente que necesitamos.

30
00:02:36,840 --> 00:02:38,690
Necesitamos el componente Player.

31
00:02:39,850 --> 00:02:44,520
Entonces primero escribimos Player que es el nombre de nuestra clase y luego necesitamos un nombre de

32
00:02:44,520 --> 00:02:44,870
variable.

33
00:02:44,870 --> 00:02:48,020
Podemos llamarlo por ejemplo player con puras minúsculas.

34
00:02:48,240 --> 00:02:50,680
O podemos llamarla Boop.

35
00:02:50,730 --> 00:02:58,020
En realidad no importa porque sólo el nombre de nuestra variable pero para este caso llamar Player minusculas

36
00:02:58,590 --> 00:03:04,800
y necesitamos asignar el componente Player a esta variable y cómo lo hacemos vamos a ver la referencia.

37
00:03:04,980 --> 00:03:12,630
Vemos que aquí simplemente igualan a la variable el método que Component y en menor y mayor que hay

38
00:03:12,630 --> 00:03:17,610
que escribir el nombre de la clase que en nuestro caso sería Player queremos tener acceso a esa clase

39
00:03:17,620 --> 00:03:25,350
Eclair porque dentro de la clase Player está una variable que se llama contribucion y queremos convertir

40
00:03:25,530 --> 00:03:28,820
queremos que esa variable sea verdadero.

41
00:03:29,190 --> 00:03:31,370
Entonces cómo llegamos a eso.

42
00:03:31,410 --> 00:03:37,740
Primero lo que necesitamos es tener acceso al objeto con el que estamos colisionando el cual está almacenado

43
00:03:37,800 --> 00:03:44,220
en otros y de ahí podemos obtener el componente que necesitamos cuando estamos hablando de comunicación

44
00:03:44,220 --> 00:03:48,730
entre script siempre recuerda que el orden de acceso es jerárquico.

45
00:03:48,720 --> 00:03:55,370
Recuerdo cuando tuvimos acceso a nuestra variable X de nuestra posición de nuestro Transform del jugador.

46
00:03:56,100 --> 00:03:59,580
Se puede tener acceso directamente a ese componente.

47
00:03:59,790 --> 00:04:00,540
No se puede.

48
00:04:00,540 --> 00:04:05,640
Primero tenemos que ir tenemos que pasar a través de la posesión y antes tuvimos que haber pasado por

49
00:04:05,640 --> 00:04:09,800
el Transform y es muy similar a como va a funcionar Component.

50
00:04:09,800 --> 00:04:17,580
En nuestro pávlov primero necesito encontrar mi objeto Blair y luego puedo tener acceso a sus componentes

51
00:04:17,670 --> 00:04:19,500
o a la lista de sus componentes.

52
00:04:19,500 --> 00:04:26,710
Por ejemplo el componente Transform el prendre el player el box de Riet válidos.

53
00:04:27,060 --> 00:04:29,600
Pero es que yo necesito es el componente Player.

54
00:04:30,390 --> 00:04:38,120
Entonces después de mi signo igual yo escribo o que el jugador y puedo poner un punto y lobjet componentes

55
00:04:38,720 --> 00:04:45,950
y entre menor y mayor que escribo el nombre del componente que quiero obtener a que esté dentro del

56
00:04:46,050 --> 00:04:48,590
objeto o que en este caso va a ser Player.

57
00:04:48,990 --> 00:04:55,560
Entonces solo escribo Player y lo terminó con un par de paréntesis y punto y coma.

58
00:04:55,710 --> 00:05:02,770
Ahora tengo acceso a todas las variables y métodos públicos que pudiera tener el objeto Player adentro.

59
00:05:03,020 --> 00:05:10,650
Lo que es muy importante aquí es que la clase Player que estoy declarando aquí sea la misma que la clase

60
00:05:10,860 --> 00:05:13,950
Player que estoy pidiendo dentro de Ket componentes.

61
00:05:14,160 --> 00:05:16,620
Estos dos tipos deben de ser idénticos.

62
00:05:16,860 --> 00:05:21,800
Por ejemplo si en mi declaración tengo un player adentro que componen no puedo tener un tirón.

63
00:05:22,690 --> 00:05:23,890
Tiene que ser Player.

64
00:05:24,670 --> 00:05:31,730
Ahora como ya tengo acceso a mi componente Player vamos a accesar a esa variable que se llama Cancho

65
00:05:32,040 --> 00:05:36,230
para eso escribo Player punto tripulacion y la voy a igualar a Chuck.

66
00:05:36,530 --> 00:05:43,990
Entonces ahora desde nuestro objeto up de nuestra clase acabo de decirle a la variable Cancho que se

67
00:05:44,080 --> 00:05:45,910
haga verdadera.

68
00:05:45,920 --> 00:05:51,000
Ahora mira yo pude tener acceso a esa variable Cancho porque es pública.

69
00:05:51,010 --> 00:05:56,430
Pero qué pasa si yo quiero tener acceso por ejemplo a Faith Cerac puedo hacer eso.

70
00:05:56,710 --> 00:06:04,290
Si regresamos borramos este punto Fibre y nos damos cuenta de que no hay acto completando las variables

71
00:06:04,300 --> 00:06:08,980
no tengo acceso a ella y la razón es que este es una variable privada las variables privadas solamente

72
00:06:08,980 --> 00:06:15,160
se pueden acceder desde el mismo script a diferencia de las variables públicas que sí se pueden acceder

73
00:06:15,160 --> 00:06:16,480
desde otro script.

74
00:06:16,480 --> 00:06:21,820
Ahora regresamos con anticipación y al final simplemete nos destruimos.

75
00:06:21,820 --> 00:06:28,460
Ya habíamos hablado de Destroy entonces escribimos isstey y entre paréntesis Tiz punto que.

76
00:06:28,840 --> 00:06:30,570
Entonces ya tenemos nuestros tres pasos.

77
00:06:30,580 --> 00:06:35,360
Tenemos acceso al jugador luego habilitamos nuestro tripulación nuestros.

78
00:06:35,410 --> 00:06:39,200
Nuestro disparo triple y al final nos destruimos a nosotros mismos.

79
00:06:39,220 --> 00:06:42,470
Parece que todos vamos a salvar esto y vamos a probarlo.

80
00:06:45,390 --> 00:06:48,410
Corremos el juego y cómo lo viste.

81
00:06:48,840 --> 00:06:54,760
El Power bajó se recolectó por el jugador y te puedes dar cuenta aquí en la valla en el componente Player

82
00:06:54,810 --> 00:06:57,080
que se activó.

83
00:06:57,570 --> 00:07:05,370
Vamos a correrlo de nuevo y te das cuenta que es falso y tan pronto como el pavor se recolecta se convierte

84
00:07:05,370 --> 00:07:06,260
en verdadero.

85
00:07:06,750 --> 00:07:12,260
Entonces acabamos de crear nuestro objeto recolectaban superinteresante.

86
00:07:12,750 --> 00:07:17,360
Ahora necesitamos revisar si estamos interactuando con el jugador.

87
00:07:17,360 --> 00:07:17,880
Por qué.

88
00:07:17,880 --> 00:07:21,710
Qué pasa si por ejemplo dos pájaros colisionan entre ellos.

89
00:07:21,990 --> 00:07:25,550
En nuestro Código aún no revisamos que la colisión esté sucediendo con el jugador.

90
00:07:25,560 --> 00:07:32,770
Por ejemplo esta línea de código va a regresar Null si el otro objeto no contiene un componente Play.

91
00:07:33,100 --> 00:07:37,470
Entonces esto nos va a dar un error porque estamos teniendo o queriendo tener acceso a un componente

92
00:07:37,470 --> 00:07:38,040
que no existe.

93
00:07:38,040 --> 00:07:41,370
Y luego estamos tratando de modificar una variable que tampoco va a existir.

94
00:07:41,640 --> 00:07:45,980
Entonces necesitamos agregar eso necesitamos revisar que el objeto con el coleccionamos es el jugador

95
00:07:46,380 --> 00:07:49,860
y cómo lo hacemos por ejemplo aquí estamos obteniendo el nombre de oder.

96
00:07:50,610 --> 00:07:54,040
Podemos utilizar eso para revisar sistemas colisionando con el juego.

97
00:07:54,050 --> 00:07:57,650
Por ejemplo aquí podemos poner un NIF oder spuntone.

98
00:07:57,750 --> 00:08:05,210
Y lo decimos y al igual Player y lo que estamos aquí es revisando si el nombre del Oder es igual a Play.

99
00:08:05,640 --> 00:08:10,200
Entonces podremos mover nuestro código dentro de este y debería de funcionar.

100
00:08:10,200 --> 00:08:15,030
Sin embargo hay un problema con esto porque qué pasa si nosotros decidimos darle otro nombre a nuestro

101
00:08:15,030 --> 00:08:17,990
jugador o si lo tenemos escrito no sé con minúscula.

102
00:08:18,030 --> 00:08:26,910
Es aquí donde los taux las etiquetas se hacen inútiles los tactos permiten identificar a ciertos objetos.

103
00:08:26,910 --> 00:08:33,890
Por ejemplo si tenemos nuestro Player aquí le podemos asignar un pack de Play cuando creemos nuestros

104
00:08:33,900 --> 00:08:34,300
enemigos.

105
00:08:34,320 --> 00:08:39,540
Vamos a ver cómo generar nuevas etiquetas por lo pronto sólo hay que asegurarnos de que nuestro jugador

106
00:08:39,540 --> 00:08:42,760
nuestro Player tenga el tag Player asignado.

107
00:08:43,140 --> 00:08:47,710
Ahora lo que podemos hacer es en el script de pago up simplemente revisar.

108
00:08:47,760 --> 00:08:54,000
Otro punto caja es igual a player y si nuestro jugador tiene asignada la etiqueta Entonces todo este

109
00:08:54,000 --> 00:08:58,200
código se va a ejecutar y si no simplemente lo va a ignorar.

110
00:08:58,230 --> 00:09:03,360
Por ejemplo después nuestro juego cuando agreguemos los enemigos si éste hace colisión con un enemigo

111
00:09:03,420 --> 00:09:04,580
no va a pasar nada.

112
00:09:04,860 --> 00:09:07,680
Y ese es justo el comportamiento que queremos.

113
00:09:07,920 --> 00:09:13,020
Vamos a probarlo de nuevo y veremos que está funcionando correctamente de nuevo tenemos nuestro disparo

114
00:09:13,020 --> 00:09:19,350
triple en el siguiente vídeo lo que vamos a revisar es cómo crear un sistema para que después de ciertos

115
00:09:19,350 --> 00:09:22,370
segundos nuestro disparo triple deje de funcionar.

116
00:09:22,410 --> 00:09:28,770
Una cosa que quiero revisar cuando estamos usando que componen es la revisión de Null como vimos en

117
00:09:28,770 --> 00:09:31,710
la documentación cuando llevamos esta función.

118
00:09:31,770 --> 00:09:35,020
Si el componente no existe va a regresar a un nivel.

119
00:09:37,100 --> 00:09:40,380
No existe esta línea de regresar.

120
00:09:40,400 --> 00:09:48,720
No referees un error simplemente porque no se encontró ese componente típicamente cuando después de

121
00:09:48,770 --> 00:09:53,960
que nos declaramos nuestra variable a manejar ese componente vamos a revisar si.

122
00:09:53,960 --> 00:09:59,330
De hecho encontramos ese componente y después de eso es cuando nosotros hacemos todas las operaciones

123
00:09:59,330 --> 00:10:00,410
necesarias.

124
00:10:00,750 --> 00:10:07,430
Entonces aquí simplemente decimos y Claire es diferente a lo que quiere decir que sí encontramos ese

125
00:10:07,430 --> 00:10:12,100
componente y entonces ya podemos afectar a nuestra variable tripulación.

126
00:10:12,110 --> 00:10:18,670
Si no lo hacemos así o si tratamos de afectarla y nuestro en nuestra variable es nula.

127
00:10:18,740 --> 00:10:26,030
Entonces nos va a ser un referente que en esencia arte juego entonces normalmente lo que vamos a hacer

128
00:10:26,030 --> 00:10:30,160
es querer revisar nuestro skeet componen no nos regresan.
