1 00:00:00,000 --> 00:00:09,539 Vale, en este vídeo voy a explicar un poco cómo hacer para que un personaje, o en este caso el cubo, se mueva de forma controlada por la pantalla. 2 00:00:11,160 --> 00:00:15,019 De momento voy a eliminarlo todo para irla haciendo. 3 00:00:16,179 --> 00:00:27,960 Vale, entonces, hay dos formas. La forma vieja, que a lo mejor os encontráis en videojuegos antiguos, entonces lo vamos a ver, y además que la IA te da mucho código de eso todavía. 4 00:00:27,960 --> 00:00:31,500 entonces, la forma 5 00:00:31,500 --> 00:00:35,820 antigua sería, tenemos los scripts, tenemos un script de ejemplo 6 00:00:35,820 --> 00:00:40,960 y tendríamos el input con 7 00:00:40,960 --> 00:00:45,340 coger los ejes horizontales, coger los ejes verticales, esos se los podemos 8 00:00:45,340 --> 00:00:48,820 asociar, creamos un vector con esa posición 9 00:00:48,820 --> 00:00:53,460 y después hacemos el transform translate en esa dirección 10 00:00:53,460 --> 00:00:57,259 el código este es bastante sencillo 11 00:00:57,259 --> 00:01:06,799 entender vale también ese input hay input y get la letra s y get la letra a 12 00:01:06,799 --> 00:01:11,200 entonces es muy fácil get space vale 13 00:01:11,200 --> 00:01:21,560 entonces es muy es muy fácil de entender el código por ejemplo si yo quisiera 14 00:01:21,560 --> 00:01:28,280 hacer algo así pues si yo quisiera por ejemplo coger el espacio sería tan fácil 15 00:01:28,280 --> 00:01:39,079 como hacer algo así, es una forma muy fácil de entender 16 00:01:39,079 --> 00:01:44,459 getCode espacio y ya hago lo que lo que quiera hacer 17 00:01:44,459 --> 00:01:49,540 esto por defecto no está activado lo que tendríamos que hacer es irnos a edit 18 00:01:49,540 --> 00:01:58,200 project settings y aquí en player tenemos el active input handling por defecto 19 00:01:58,200 --> 00:02:05,879 saldrá como el new entonces yo le he puesto a voz y o si queréis el antiguo 20 00:02:05,879 --> 00:02:11,759 el input manager lo que habría que hacer es lo que pasa que no sabéis os va a 21 00:02:11,759 --> 00:02:15,419 cerrar todo el proyecto y lo va a recargar de la nueva forma aquí te 22 00:02:15,419 --> 00:02:20,580 recomienda que sólo los proyectos nuevos vayan todos con el nuevo 23 00:02:20,580 --> 00:02:38,740 El viejo, ¿cómo sería? Pues cogemos en el cubo, le ponemos el script, en este caso, este caso es eso, lo que hemos estado viendo antes, y le damos al play. 24 00:02:38,740 --> 00:02:43,219 ahora le damos a play, ya podemos utilizar el eje horizontal y el eje vertical 25 00:02:43,219 --> 00:02:46,400 en este caso, pues con las flechas se va a mover 26 00:02:46,400 --> 00:02:51,180 yo pulso el cursor derecho, y a ver si se mueve, porque va un poco lento este ordenador 27 00:02:51,180 --> 00:02:54,659 tengo que tener seleccionado el juego 28 00:02:54,659 --> 00:02:59,889 se ha quedado pillado el ordenador 29 00:02:59,889 --> 00:03:09,039 pero ya os digo que esto funciona, a ver, voy a probar otra vez 30 00:03:09,039 --> 00:03:17,860 no sé si me he colado con algo 31 00:03:17,860 --> 00:03:19,439 al hacer el cambio 32 00:03:19,439 --> 00:03:27,500 a ver, espérate 33 00:03:27,500 --> 00:03:29,379 no, es que no se ha asociado al script 34 00:03:29,379 --> 00:03:32,280 me lo ha metido aquí, pero no me lo ha metido en el cubo 35 00:03:32,280 --> 00:03:35,860 en el cubo es donde tiene que ir 36 00:03:35,860 --> 00:03:37,219 el movement example 37 00:03:37,219 --> 00:03:38,639 como componente 38 00:03:38,639 --> 00:03:41,680 y perdonad por esto que no me había dado cuenta 39 00:03:41,680 --> 00:03:43,819 básicamente, ahora sí 40 00:03:43,819 --> 00:03:45,219 el cubo 41 00:03:45,219 --> 00:03:47,580 yo le doy a la derecha y se mueve a la derecha 42 00:03:47,580 --> 00:03:49,860 izquierda, arriba, abajo 43 00:03:49,860 --> 00:03:53,900 también funciona con el ASWD 44 00:03:53,900 --> 00:03:57,659 y este sería el antiguo 45 00:03:57,659 --> 00:03:59,460 que es bastante sencillo de entender 46 00:03:59,460 --> 00:04:00,800 ahora vamos a ver el nuevo 47 00:04:00,800 --> 00:04:02,319 el nuevo es un poco más complicado 48 00:04:02,319 --> 00:04:05,680 de entender pero luego yo creo que puede ser más útil 49 00:04:05,680 --> 00:04:07,280 el nuevo 50 00:04:07,280 --> 00:04:08,979 que es el que viene por defecto 51 00:04:08,979 --> 00:04:11,300 tendríamos un script parecido a este 52 00:04:11,300 --> 00:04:16,519 ¿cómo funciona esto? 53 00:04:16,660 --> 00:04:17,420 se lo voy a meter ya 54 00:04:17,420 --> 00:04:18,680 para que lo vayamos viendo 55 00:04:18,680 --> 00:04:22,560 tenemos el componente este 56 00:04:22,560 --> 00:04:26,779 y el script va a tener una función onMove 57 00:04:26,779 --> 00:04:30,819 por ejemplo, que es como un callback 58 00:04:30,819 --> 00:04:34,860 de un sistema de eventos, entonces aquí en este caso lo que estoy 59 00:04:34,860 --> 00:04:37,720 haciendo es coger el vector del valor 60 00:04:37,720 --> 00:04:41,720 y luego ya lo utilizo, ese move 61 00:04:41,720 --> 00:04:46,160 para moverlo en la X o en la Y, etc. 62 00:04:46,160 --> 00:05:03,920 ¿Vale? Entonces, esto, si yo le doy a play, en principio no funciona, creo. ¿Vale? No funciona. ¿Por qué? Porque ese input no lo está cogiendo de ningún sitio. 63 00:05:03,920 --> 00:05:25,980 Entonces, opción, tengo que añadir además un componente llamado PlayerInput, ¿vale? Este PlayerInput está asociado a este componente, PlayerInputActions, este PlayerInputActions se puede cambiar a nuestro gusto, ¿vale? 64 00:05:25,980 --> 00:05:28,319 y crear una copia de este 65 00:05:28,319 --> 00:05:30,199 y hacer una variante 66 00:05:30,199 --> 00:05:30,920 ¿por qué? 67 00:05:31,339 --> 00:05:33,139 este player input actions 68 00:05:33,139 --> 00:05:35,759 tiene el por defecto de la mayoría de juegos 69 00:05:35,759 --> 00:05:37,879 mover, mirar 70 00:05:37,879 --> 00:05:40,279 atacar 71 00:05:40,279 --> 00:05:40,779 ¿vale? 72 00:05:41,459 --> 00:05:44,240 esto ya tiene como preconfigurado 73 00:05:44,240 --> 00:05:44,959 que flechas 74 00:05:44,959 --> 00:05:48,120 que teclas van a ser 75 00:05:48,120 --> 00:05:50,100 o en el joystick que va a ser 76 00:05:50,100 --> 00:05:51,279 por ejemplo mover 77 00:05:51,279 --> 00:05:53,500 va a ser WSD 78 00:05:53,500 --> 00:05:55,839 también las flechas 79 00:05:55,839 --> 00:05:58,620 ¿Vale? Entonces, este move 80 00:05:58,620 --> 00:06:03,519 o si lo hiciéramos nosotros como nosotros llamamos, lo llamemos 81 00:06:03,519 --> 00:06:08,079 ¿Vale? Va a coger el valor 82 00:06:08,079 --> 00:06:10,600 y se lo va a pasar a un vector 83 00:06:10,600 --> 00:06:13,720 ¿Vale? Entonces 84 00:06:13,720 --> 00:06:18,920 y si yo hiciera un jump, pues on jump 85 00:06:18,920 --> 00:06:23,819 ¿Vale? Sería on jump y el espacio 86 00:06:23,819 --> 00:06:26,000 en este caso es el que usaría el onJump 87 00:06:26,000 --> 00:06:27,860 una vez 88 00:06:27,860 --> 00:06:30,180 tenemos ese input 89 00:06:30,180 --> 00:06:32,279 metido en el personaje 90 00:06:32,279 --> 00:06:34,019 en el script 91 00:06:34,019 --> 00:06:36,259 ya podemos 92 00:06:36,259 --> 00:06:37,839 coger estos valores 93 00:06:37,839 --> 00:06:40,040 en el onMove 94 00:06:40,040 --> 00:06:42,259 porque coincide con el 95 00:06:42,259 --> 00:06:42,939 nombre move 96 00:06:42,939 --> 00:06:45,279 si nosotros 97 00:06:45,279 --> 00:06:48,139 es on y el nombre que tú le hayas dado 98 00:06:48,139 --> 00:06:50,300 por defecto yo voy a usar este 99 00:06:50,300 --> 00:06:51,480 el que ya viene 100 00:06:51,480 --> 00:06:52,759 por defecto 101 00:06:52,759 --> 00:06:54,420 entonces le damos a play 102 00:06:54,420 --> 00:06:56,420 y en principio ya 103 00:06:56,420 --> 00:06:59,120 podrá ese move 104 00:06:59,120 --> 00:07:00,699 x coger esos valores 105 00:07:00,699 --> 00:07:03,259 ¿vale? pasará por aquí 106 00:07:03,259 --> 00:07:05,220 y se moverá 107 00:07:05,220 --> 00:07:06,699 ¿vale? 108 00:07:07,180 --> 00:07:08,959 tanto con cursores 109 00:07:08,959 --> 00:07:09,959 como con las flechas 110 00:07:09,959 --> 00:07:12,439 o sea con la sw etc 111 00:07:12,439 --> 00:07:14,939 ¿vale? ya lo explicaré más 112 00:07:14,939 --> 00:07:16,100 en detalle si hace falta para 113 00:07:16,100 --> 00:07:19,699 el input system este nuevo