1 00:00:07,089 --> 00:00:12,650 No está mal. Antes de cerrar este vídeo, voy a comentar algo que nos va a venir bien para más adelante. 2 00:00:12,849 --> 00:00:18,629 ¿Qué es? Esto lo estamos haciendo sobre nuestro GameObject, sobre el que está asociado el script. 3 00:00:19,070 --> 00:00:21,250 ¿Podemos mover otro objeto? Por supuesto. 4 00:00:22,030 --> 00:00:26,510 Lo voy a hacer y recordemos que este script está asociado al cubo. 5 00:00:26,829 --> 00:00:29,769 Es decir, mi GameObject en el que está este script es el cubo. 6 00:00:30,309 --> 00:00:38,000 Voy a crear una esfera. Lo puedo hacer directamente sobre la ventana de jerarquía. 7 00:00:38,000 --> 00:00:51,100 Ahí la tengo. Lo voy a llevar al 0, 2 y 0, para que esté encima de mi cubo. Espero que se le vea bien. 8 00:00:51,460 --> 00:00:56,700 ¿Cómo accedemos a otro GameObject desde el script que está asociado al cubo? 9 00:00:58,520 --> 00:01:04,480 Veremos que tiene sus complejidades, pero de momento algo muy básico, muy básico, es que yo le voy a crear, 10 00:01:04,480 --> 00:01:10,959 Bueno, en este caso la voy a hacer serializada, es decir, que pueda acceder desde el inspector de Unity. 11 00:01:11,260 --> 00:01:17,640 ¿Qué tipo de variable? Y aquí está lo interesante, de tipo GameObject, ¿vale? 12 00:01:18,000 --> 00:01:23,969 Y le voy a dar un nombre, por ejemplo, OtherObject, es decir, otro objeto. 13 00:01:24,230 --> 00:01:29,650 No la declaro, podría decirle que coja un GameObject de nuestra escena, pero es mucho más cómodo, lógicamente, 14 00:01:30,430 --> 00:01:35,409 y por eso la he hecho serializada, que automáticamente, en cuanto esto se actualice, vale. 15 00:01:35,409 --> 00:01:43,090 Pues ahí tengo mi variable, como podéis ver, y no tiene ningún GameObject asociado. 16 00:01:43,849 --> 00:01:50,370 Podemos asociarlo bien pulsando aquí sobre el circulito y entonces nos aparecerá todos los objetos de nuestra escena. 17 00:01:50,650 --> 00:01:59,109 O podemos incluso, si nos resulta más cómodo, pinchar en la esfera, arrastrarla y llevarla hasta este recuadro. 18 00:01:59,109 --> 00:02:17,310 Recuadro. Automáticamente la variable OtherObject, que tiene ese GameObject que tengo en la escena y puedo actuar sobre él. ¿Qué voy a hacer? Voy a animar la esfera desde un script asociado al cubo. ¿Cómo? 19 00:02:17,310 --> 00:02:20,069 bien, recuerdo que aquí tengo 20 00:02:20,069 --> 00:02:21,870 en esta variable 21 00:02:21,870 --> 00:02:23,629 ya tengo la esfera asociada, es decir 22 00:02:23,629 --> 00:02:25,430 que todos los parámetros o todas las clases 23 00:02:25,430 --> 00:02:26,729 que están asociadas a esa esfera 24 00:02:26,729 --> 00:02:29,270 las tengo disponibles, entre ellas por supuesto 25 00:02:29,270 --> 00:02:31,650 la de su método 26 00:02:31,650 --> 00:02:33,669 su componente transform y por supuesto 27 00:02:33,669 --> 00:02:34,889 su posición, es decir 28 00:02:34,889 --> 00:02:37,310 que cuando yo le decía aquí 29 00:02:37,310 --> 00:02:39,150 que mi posición inicial 30 00:02:39,150 --> 00:02:41,449 es donde estoy yo, es decir 31 00:02:41,449 --> 00:02:42,569 el cubo, acordaros 32 00:02:42,569 --> 00:02:45,030 aquí le puedo decir que no, que es 33 00:02:45,030 --> 00:02:48,210 el other object que es la esfera 34 00:02:48,210 --> 00:02:52,389 que si le dais al punto veréis que os aparecen todas las clases y métodos 35 00:02:52,389 --> 00:02:55,169 asociados a ese objeto 36 00:02:55,169 --> 00:02:57,129 y entre ellos por supuesto está el transform 37 00:02:57,129 --> 00:03:01,110 que por supuesto es la posición, es decir que ahora mismo 38 00:03:01,110 --> 00:03:04,490 esta variable que había declarado diciendo la posición inicial 39 00:03:04,490 --> 00:03:06,610 ya no es la posición inicial del cubo sino de la esfera 40 00:03:06,610 --> 00:03:10,210 y por supuesto cuando le digo que la posición 41 00:03:10,210 --> 00:03:12,629 cámbialo a la del destino final 42 00:03:12,629 --> 00:03:15,490 ya no es mi posición, sino 43 00:03:15,490 --> 00:03:24,300 la de la esfera. Ahora mismo voy a desplazar 44 00:03:24,300 --> 00:03:28,319 la esfera exactamente igual que he hecho con el cubo 45 00:03:28,319 --> 00:03:32,439 pero desde un script asociado 46 00:03:32,439 --> 00:03:35,219 al cubo. Eso es muy importante que quede claro. 47 00:03:36,340 --> 00:03:39,039 Es decir, yo a la esfera no le he asociado ningún script. Vamos a ver. 48 00:03:40,319 --> 00:03:43,300 No se mueve porque efectivamente la velocidad está en cero. 49 00:03:43,300 --> 00:03:45,080 así que aceleremos 50 00:03:45,080 --> 00:03:48,259 y ahí está, se desplaza la esfera 51 00:03:48,259 --> 00:03:50,719 igual que lo hacía el cubo 52 00:03:50,719 --> 00:03:52,740 desde un script en el cubo 53 00:03:52,740 --> 00:03:56,039 y aquí ya podemos echar a volar la imaginación 54 00:03:56,039 --> 00:03:59,319 porque algo que por ejemplo no he comentado 55 00:03:59,319 --> 00:04:02,439 es que la posición tiene parámetros 56 00:04:02,439 --> 00:04:05,639 tiene el parámetro X, tiene el parámetro Y, tiene el parámetro Z 57 00:04:05,639 --> 00:04:07,259 y yo lo puedo conocer en cualquier momento 58 00:04:07,259 --> 00:04:09,180 lo voy a demostrar 59 00:04:09,180 --> 00:04:11,400 si yo me voy a mi script 60 00:04:11,400 --> 00:04:14,039 y yo ya con esto ya se está animando 61 00:04:14,039 --> 00:04:16,079 el objeto se está animando 62 00:04:16,079 --> 00:04:19,120 por ejemplo voy a crear una nueva variable 63 00:04:19,120 --> 00:04:21,579 de tipo float 64 00:04:21,579 --> 00:04:25,639 que se va a llamar posición en x 65 00:04:25,639 --> 00:04:26,860 posición x 66 00:04:26,860 --> 00:04:30,579 ¿y qué valor va a tener? 67 00:04:36,519 --> 00:04:39,139 la posición, recordemos que esta era un vector 3 68 00:04:39,139 --> 00:04:42,860 pero si le dais, el vector 3 tiene también sus métodos y sus atributos 69 00:04:42,860 --> 00:04:46,240 entre ellos los atributos de los ejes 70 00:04:46,240 --> 00:04:50,720 si yo le digo x me estoy refiriendo a que me dé su posición actual en x 71 00:04:50,720 --> 00:04:55,560 y si yo le digo que me mande a pantalla la posición en x 72 00:04:55,560 --> 00:05:02,509 pues me estará mandando en todo momento a consola 73 00:05:02,509 --> 00:05:05,069 cuál es la posición en x de mi esfera 74 00:05:05,069 --> 00:05:09,029 ahora mismo es 0, lógicamente, pero en cuanto yo empiece a animarlo y a ponerle velocidad 75 00:05:09,029 --> 00:05:11,009 veréis que se desplaza 76 00:05:11,009 --> 00:05:15,649 ¿qué significa esto? que incluso podría 77 00:05:15,649 --> 00:05:18,870 fijaros que aquí está a punto de salirse del escenario 78 00:05:18,870 --> 00:05:21,970 y yo veo que eso es en la posición 12 de X 79 00:05:21,970 --> 00:05:24,810 es decir, puedo hacer 80 00:05:24,810 --> 00:05:26,589 y aquí es donde le tenemos que echar imaginación 81 00:05:26,589 --> 00:05:29,509 puedo hacer que cuando la esfera llegue a la posición 12 en X 82 00:05:29,509 --> 00:05:30,290 se pare 83 00:05:30,290 --> 00:05:31,269 ¿y cómo hago eso? 84 00:05:31,269 --> 00:05:32,829 pues ya lo hemos visto en programación 85 00:05:32,829 --> 00:05:33,850 muy sencillo 86 00:05:33,850 --> 00:05:35,149 con un if 87 00:05:35,149 --> 00:05:37,449 todo esto lo que está haciendo es 88 00:05:37,449 --> 00:05:39,550 moverlo 89 00:05:39,550 --> 00:05:41,250 pero ¿y si yo 90 00:05:41,250 --> 00:05:45,550 obtengo la posición en X del objeto 91 00:05:45,550 --> 00:05:47,629 que aquí dirá que es 0 92 00:05:47,629 --> 00:05:48,709 y luego se irá cambiando 93 00:05:48,709 --> 00:05:49,370 y le digo 94 00:05:49,370 --> 00:06:04,089 oye, si la posición en X es menor o igual que 12, esto es un tipo float, así que lo voy a poner como tal. 95 00:06:08,420 --> 00:06:11,800 Ejecuta todo esto. Es decir, ¿qué acabo de hacer? 96 00:06:12,759 --> 00:06:19,620 Acabo de decirle a mi script que todo eso que he hecho para animarlo solo lo haga si la esfera está por debajo de 12. 97 00:06:19,620 --> 00:06:23,740 Lógicamente, en cuanto llegue a 12, todo esto no se ejecutará y, por lo tanto, se detendrá. 98 00:06:24,160 --> 00:06:24,879 Vamos a comprobarlo. 99 00:06:26,139 --> 00:06:27,379 Empieza parada, como siempre. 100 00:06:28,920 --> 00:06:29,920 La voy a animar. 101 00:06:31,100 --> 00:06:31,860 Vemos ahí la posición. 102 00:06:32,459 --> 00:06:33,339 Vemos cómo va subiendo. 103 00:06:33,759 --> 00:06:36,399 6, 7, 8, 9, 10, 11, 12. 104 00:06:37,939 --> 00:06:40,779 Y vemos que se ha detenido al llegar a 12.