1 00:00:00,000 --> 00:00:04,360 Vale, pues en este vídeo, como ya sabemos, ya hemos visto un poco cómo va lo del transfer, 2 00:00:04,459 --> 00:00:11,880 vamos a ver cómo haríamos para que un elemento se mueva sin que nosotros lo toquemos, por ejemplo, 3 00:00:12,599 --> 00:00:18,839 o luego, más adelante, si da tiempo, explicaremos cómo se mueve controlándolo nosotros. 4 00:00:19,620 --> 00:00:23,100 Nosotros tenemos el elemento que queremos mover, por ejemplo, el cubo, 5 00:00:23,100 --> 00:00:26,839 y este cubo tiene un transfer posición 6 00:00:26,839 --> 00:00:30,620 y se va a mover, no sé por qué no se está guardando 7 00:00:30,620 --> 00:00:34,380 bueno, nosotros querríamos moverlo así por ejemplo 8 00:00:34,380 --> 00:00:37,539 cambiar la posición del transfer en la X 9 00:00:37,539 --> 00:00:43,179 para que esto se haga necesitaremos código 10 00:00:43,179 --> 00:00:47,679 entonces lo que vamos a hacer 11 00:00:47,679 --> 00:00:51,179 es añadirle un componente de movimiento 12 00:00:51,179 --> 00:00:55,179 como éste, pero bueno, lo voy a hacer de cero para que veamos cómo hacerlo, y este Rigidbody 13 00:00:55,179 --> 00:00:58,640 tampoco. Nosotros tendríamos el elemento así, por defecto. 14 00:00:59,320 --> 00:01:02,119 Entonces, ¿qué haríamos para añadirle un movimiento? 15 00:01:03,079 --> 00:01:06,480 Lo que vamos a hacer es crearnos una carpeta de scripts, 16 00:01:07,420 --> 00:01:10,439 que es la que no viene por defecto, 17 00:01:10,780 --> 00:01:14,700 nosotros crearíamos aquí en Assets, en una carpeta, 18 00:01:14,700 --> 00:01:16,739 en un folder, la llamaríamos scripts, 19 00:01:16,739 --> 00:01:22,000 y ahí es donde nosotros para tenerlo todo más o menos bien organizado 20 00:01:22,000 --> 00:01:25,280 iríamos metiendo nuestros scripts del videojuego 21 00:01:25,280 --> 00:01:27,519 en este caso yo he creado un script 22 00:01:27,519 --> 00:01:29,260 que sería así, clic derecho 23 00:01:29,260 --> 00:01:32,980 create behavior script 24 00:01:32,980 --> 00:01:36,659 y ya se te crea uno por defecto 25 00:01:36,659 --> 00:01:39,120 también hay veces que se puede hacer desde aquí arriba 26 00:01:39,120 --> 00:01:41,599 hay varios sitios donde hacer las cosas 27 00:01:41,599 --> 00:01:45,560 nosotros creamos el script y lo abriríamos en Visual Studio 28 00:01:45,560 --> 00:01:47,719 ya lo tengo abierto, la primera vez tarda un poco 29 00:01:47,719 --> 00:01:49,700 entonces voy a explicarlo 30 00:01:49,700 --> 00:01:51,379 lo que nosotros vamos a encontrar 31 00:01:51,379 --> 00:01:53,239 cuando veamos esto por defecto 32 00:01:53,239 --> 00:01:55,400 va a ser un start vacío 33 00:01:55,400 --> 00:01:58,079 y un update vacío 34 00:01:58,079 --> 00:02:00,400 el start dice 35 00:02:00,400 --> 00:02:01,920 se llama una vez 36 00:02:01,920 --> 00:02:04,180 antes de la primera ejecución 37 00:02:04,180 --> 00:02:04,659 del update 38 00:02:04,659 --> 00:02:07,980 y el update se llama una vez 39 00:02:07,980 --> 00:02:08,520 cada frame 40 00:02:08,520 --> 00:02:12,199 los comentarios 41 00:02:12,199 --> 00:02:13,159 son iguales que en java 42 00:02:13,159 --> 00:02:17,219 con asterisco, esto 43 00:02:17,219 --> 00:02:20,060 y este cierre y los de una línea 44 00:02:20,060 --> 00:02:24,960 entonces por ejemplo, el update, como se llama una vez por frame, podemos llamar 45 00:02:24,960 --> 00:02:27,240 a esto, a esta línea 46 00:02:27,240 --> 00:02:32,659 y lo que estaríamos haciendo es cambiar la posición con un vector 47 00:02:32,659 --> 00:02:35,439 de 1, 0, 0, es decir, en eje X 48 00:02:35,439 --> 00:02:39,439 y como no queremos que se llame una vez por frame 49 00:02:39,439 --> 00:02:47,000 porque iría muy rápido etcétera podríamos hacer un time delta time que lo que hace es que lo calibra 50 00:02:47,000 --> 00:02:55,080 más a segundos o sea lo hacen una variación de tiempo y no por frame si nosotros pulsamos aquí 51 00:02:55,080 --> 00:03:03,479 todavía no funcionaría porque porque necesitamos que el cubo tenga asociados script para asociar 52 00:03:03,479 --> 00:03:09,659 componente, le damos aquí, seleccionamos el cubo en el inspector, damos a add component 53 00:03:09,659 --> 00:03:19,500 y añadimos el componente que podemos buscar ya por nombre y también podemos, en principio 54 00:03:19,500 --> 00:03:27,419 también nos suele dejar arrastrarlo, así, a ver si me ha dejado, también se puede hacer 55 00:03:27,419 --> 00:03:34,120 aquí, arrastrar aquí, vale y lo arrastramos, tenemos ahí el movement example, entonces 56 00:03:34,120 --> 00:03:41,979 ese movimiento, en principio, se va a aplicar al cubo, ¿vale? 57 00:03:42,060 --> 00:03:45,500 Y el cubo se está moviendo en el eje X, ¿vale? 58 00:03:45,500 --> 00:03:48,879 Va un poco pillado, pero por la gráfica, etcétera, y por la velocidad del cubo. 59 00:03:50,800 --> 00:03:54,159 Una vez dicho esto, se puede hacer, vamos, de esta forma, 60 00:03:54,300 --> 00:03:58,599 se puede hacer aplicándole una velocidad, también como tenéis aquí, 61 00:03:58,599 --> 00:04:01,520 con el transform translate, ¿vale? 62 00:04:01,520 --> 00:04:07,500 son las diferencias del motor. Hay que tener en cuenta que estos cambios, cada vez que 63 00:04:07,500 --> 00:04:12,319 hago yo un cambio en el script, se va a compilar y va a tardar un poquito en dejarme volver. 64 00:04:12,520 --> 00:04:18,199 Ahora no, porque es muy simple el script, pero podría ser un poco más largo. Y este 65 00:04:18,199 --> 00:04:28,759 va un poquito ahí, y tenemos la posición. Ahora, ¿qué pasa si el elemento tiene físicas, 66 00:04:28,759 --> 00:04:32,360 que ya lo explicaré en otro vídeo, también se puede hacer con 67 00:04:32,360 --> 00:04:36,579 esto, con el RigidBody, otra opción de movimiento 68 00:04:36,579 --> 00:04:40,860 que es usando el RigidBody, que es un componente que añade físicas 69 00:04:40,860 --> 00:04:44,839 al objeto, y vamos a coger el elemento 70 00:04:44,839 --> 00:04:48,680 y decirle que se mueva 71 00:04:48,680 --> 00:04:53,819 en una posición, hacia adelante 72 00:04:53,819 --> 00:04:57,839 por un tiempo, una velocidad, 1 es una velocidad 73 00:04:57,839 --> 00:05:02,459 entonces este script si yo lo ejecuto 74 00:05:02,459 --> 00:05:05,100 los scripts nos pueden dar problemas 75 00:05:05,100 --> 00:05:09,800 en tiempo de ejecución y de compilación 76 00:05:09,800 --> 00:05:12,600 aquí nos da un error en tiempo de ejecución 77 00:05:12,600 --> 00:05:16,240 que dice que no hay rigidbody asociado al cubo 78 00:05:16,240 --> 00:05:18,120 entonces vamos a ponérselo 79 00:05:18,120 --> 00:05:21,759 añadimos un rigidbody 80 00:05:21,759 --> 00:05:24,740 y ya me voy a anticipar 81 00:05:24,740 --> 00:05:27,899 ahora mismo se caería porque tendría las físicas del motor 82 00:05:27,899 --> 00:05:30,060 se caería, si le quitamos la gravedad 83 00:05:30,060 --> 00:05:31,939 ya se va a mover 84 00:05:31,939 --> 00:05:34,000 correctamente 85 00:05:34,000 --> 00:05:35,579 hacia adelante 86 00:05:35,579 --> 00:05:37,920 en este caso 87 00:05:37,920 --> 00:05:39,480 el hacia adelante es hacia allá 88 00:05:39,480 --> 00:05:44,079 y esto luego lo interesante 89 00:05:44,079 --> 00:05:45,259 es poderlo 90 00:05:45,259 --> 00:05:47,540 trabajar nosotros con 91 00:05:47,540 --> 00:05:50,019 con el input 92 00:05:50,019 --> 00:05:51,779 que nosotros queramos, pero esto lo voy a explicar 93 00:05:51,779 --> 00:05:52,800 en otro vídeo más adelante