Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Input System. Antiguo sistema. Parte 1 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 18 de septiembre de 2025 por Alvaro H.

66 visualizaciones

Veamos cómo funciona el antiguo Input System de Unity, que aunque todavía está disponible poco a poco va siendo sustituido por el nuevo.

Descargar la transcripción

Nos adentramos en uno de los terrenos que más posibilidades nos va a dar a la hora de afrontar nuestros productos interactivos 00:00:13
porque estoy hablando de la interactividad precisamente, de cómo Unity recoge las acciones que hace el usuario 00:00:19
y las interpreta y actúa en consecuencia. 00:00:27
Obviamente es uno de los parámetros básicos a la hora de hacer un producto interactivo porque si no, no sería interactivo. 00:00:31
Lo primero que voy a hacer es crear un empty object y a él le voy a asociar un script. 00:00:38
Lo voy a llamar interactivity, por ejemplo, para indicar lo que es. 00:00:46
Y ahora, al abrirlo, lo primero que tenemos que tener en cuenta es que toda la función de comienzo no me interesa. 00:00:50
¿Por qué? Porque obviamente no tengo tanto interés en saber qué tecla está pulsando el usuario cuando se lanza el script, 00:00:58
sino qué va a pulsar o qué va a hacer durante la ejecución del videojuego. 00:01:06
Por eso, donde me voy a mover principalmente es en la función de update, que va a estar en todo momento comprobando si algo se está ejecutando. 00:01:10
Bien, lo que tenemos que saber es que todo lo que tenga que ver con entradas desde algún dispositivo de input, pues lo maneja el método input, como no podía ser de otra forma. 00:01:19
Y es un buen momento para recordar que no está de más nunca ir a la página de referencia de Unity donde están todos los métodos reflejados y no solo eso, sino también sus propiedades y sus métodos públicos. 00:01:28
Es decir, que aquí tenéis todo lo que vamos a ver, bueno, y por supuesto más. 00:01:45
Pero vamos a ver las funciones básicas que encontramos en el método input, por ejemplo. 00:01:50
una de las más básicas es detectar si se está pulsando alguna tecla del teclado 00:01:55
bien, es el get keydown y ahí le tenemos que pasar el código de una tecla 00:02:00
el código de las teclas lo podemos obtener a través del keycode 00:02:05
que tiene a su vez un montón de atributos 00:02:10
y como podéis ver, nos aparecerán aquí cientos de teclas disponibles 00:02:12
entonces si las escribimos, por ejemplo esta se corresponde con la barra espaciadora 00:02:18
Lo que hace esto realmente es devolver true, porque es una booleana, si se está pulsando, y si no se pulsa, un false, con una peculiaridad que la vamos a descubrir ahora mismo. 00:02:23
Así que si yo le pregunto en un if y le paso esta sentencia, todo eso, lo que estoy haciendo es comprobar en cada fotograma, recordad que estamos en el update, en cada fotograma le estoy preguntando si están pulsando esta tecla. 00:02:39
vamos a comprobarlo 00:02:58
esto es la barra espaciadora 00:02:59
vamos a comprobarlo 00:03:04
y de hecho me voy a sacar aquí un tecladito 00:03:07
para que veáis 00:03:09
lanzo el juego y como podemos ver 00:03:10
en la consola no hay nada 00:03:12
pero si yo pulso la barra espaciadora 00:03:14
ahí aparece, se está pulsando la barra espaciadora 00:03:16
pero quiero que nos fijemos en algo 00:03:19
si dejo la barra espaciadora pulsada 00:03:21
solo aparece una vez 00:03:23
si la levanto y la vuelvo a pulsar 00:03:26
vuelve otra vez a aparecer 00:03:29
porque esa es una de las características 00:03:30
del GetCadeDown 00:03:32
que lanza True si detecta 00:03:34
que se ha pulsado esa tecla 00:03:36
pero no vuelve a ponerse en False 00:03:37
hasta que levanto el dedo 00:03:41
de la barra espaciadora 00:03:42
con lo cual lanza una vez un True 00:03:44
y hasta que no lo vuelva a pulsar 00:03:46
no vuelve a lanzarse 00:03:47
ahora mismo me interesa más 00:03:51
que entendamos 00:03:53
que igual que existe el GetCadeDown 00:03:54
Pues existe, por ejemplo, el Get Mouse Button Down, que es exactamente lo mismo, solo que refiriéndose al ratón. 00:03:57
Y fijaros que aquí me está pidiendo un número entero. ¿Por qué? 00:04:09
Porque aquí lo que me está pidiendo es un 0 para el botón izquierdo, un 1 para el botón derecho, un 2. 00:04:14
Vamos a comprobarlo. Le voy a preguntar si se pulsa el botón 1 del ratón, lance a consola, se está haciendo left mouse click. 00:04:21
Es decir, que está andando al botón izquierdo del ratón. 00:04:36
Bueno, perdón que le he puesto el 1. No debemos olvidarnos que los programadores empiezan a contar en 0, así que el 0 es el botón izquierdo del ratón. 00:04:42
Lo voy a guardar, lo lanzo y ahora atentos porque si le hago clic fuera de la ventana me estoy saliendo del juego y por lo tanto no lo detectará. 00:04:50
Tengo que hacer clic pero dentro de la ventana de juego para que me detecte ese clic. 00:05:04
Y ahí está. 00:05:08
Y pasa exactamente igual que con la barra espaciadora, solo detecta una vez hasta que lo levanto y lo vuelvo a pulsar. 00:05:11
Ya que estamos, igual que tenemos GetMouseButtonDown y demás, pues también incluso tenemos otra opción que es el GetButtonDown. 00:05:16
Y aquí ¿qué me está pidiendo? Como podemos ver, un string. Es decir, no un código ni un número entero, sino una cadena. 00:05:29
Aquí se refiere a un nombre. Por ejemplo, aquí le voy a escribir Fire 1 y le voy a decir que mande a consola. 00:05:42
Print. Se ha disparado. Voy a lanzar el juego. Pues bien, y le estoy dando a un botón de mi joystick. 00:05:53
Y como podemos ver, se está detectando en la consola. 00:06:13
Bien, y ahora viene la pregunta, ¿y dónde le he dicho yo que este código, esta palabra, se refiere a ese botón? 00:06:17
Pues vamos a una de las ventanas que tenemos que conocer si queremos manejar la interactividad que tenemos en Edit, Project Settings, y aquí tenemos la opción de Input Manager, 00:06:28
donde configuramos todas las opciones que hay o todas las posibilidades de entrada que hay a la hora de pulsar. 00:06:41
Lo que tenemos que entender es que la primera de las opciones que hemos dado, que le hemos dicho un código de tecla, 00:06:50
son códigos que ya están vinculados dentro de Unity, pero eso no es muy práctico porque imaginaros que queremos que una misma acción, 00:06:55
por ejemplo un disparo, esté asociado a varias teclas. En ese caso, y además no quiero llamarlo por un código, 00:07:03
sino que quiero llamarlo a través de una palabra que me sea mucho más fácil, digamos, identificarlo. 00:07:09
Para eso existe el Input Manager, donde podemos crear tantos palabras o tantos códigos de entrada 00:07:14
mediante cadenas de texto que luego vincularemos con entradas. 00:07:20
Vamos a verlo en la ventana. Por ejemplo, fijaros que el Fire 1, que ya viene por defecto, 00:07:24
pero podemos crear más porque yo le puedo dar con el botón derecho, duplicarlo y cambiarle el nombre 00:07:31
y decirle que esto es fuego. Entonces, bueno, que sepáis que podemos crear aquí más elementos 00:07:38
aparte de los que hay, pero el caso es que este fire1 se corresponde con el nombre que yo le he dado aquí 00:07:44
y que aquí le dicen negativeButton y positiveButton. ¿Qué significa? 00:07:51
El negativo y el positivo lo entenderemos mucho mejor cuando veamos los ejes, 00:08:00
en el que decimos que uno es para hacia un lado y otro es para el otro. 00:08:03
En cualquier caso, le voy a decir que cuando yo pulse el joystick button 16, se ejecuta. 00:08:07
¿Y cuál es el joystick button 16? 00:08:16
Pues bueno, en fin. 00:08:18
Pues bien, existe mucha documentación en internet al respecto, 00:08:19
donde podemos encontrar códigos que existen tanto para los controladores en PC como en Mac, 00:08:22
y donde yo puedo ver que efectivamente el botón que acabo de pulsar, que es el A, 00:08:28
se corresponde con el joystick button 16. 00:08:31
Esto porque es mi Mac. 00:08:35
Pero si lo hacemos en PC, el botón A se corresponderá con el joystick botón 0. 00:08:37
Y si quiero incluso decirle que otro botón también dispare, por ejemplo, el mouse, le voy a decir el mouse 1, 00:08:42
que se corresponde con el botón derecho, pues lo vamos a comprobar. 00:08:51
Cierro. 00:08:58
Y si lanzo la partida, pues tendré asociado el disparo no solo al botón del gamepad, sino también... 00:09:00
Ahí está, le estoy dando al botón derecho de mi ratón. 00:09:08
Pero tenemos la limitación que hemos visto antes, que es que me detecta cuando lo pulso, se pone en True y no se vuelve a poner en False hasta que lo libero. 00:09:11
Pero quiero que, y si quiero que me esté detectando constantemente su pulsación, pues para eso existe otra variante que es el Get Key. 00:09:18
Lo vamos a ver. Voy a borrar todos estos y le voy a decir que si se está dando la situación de Get Key, ¿veis? 00:09:24
y pasándole el nombre de alguna tecla, voy a decirle que si está apretando la tecla Space, 00:09:37
que esta sí que me la reconoce como una cadena de texto. 00:09:47
De hecho, si vamos a la página de Unity con el método K-Code, 00:09:50
ahí nos aparecerán todas las que reconoce. 00:09:54
Por ejemplo, esta que acabo de dar yo es una muy estándar, que es la de la barra espaciadora. 00:09:57
Aquí la tenemos. 00:10:02
Le voy a decir que detecte que se está disparando. 00:10:05
Si lanzo mi juego, efectivamente veremos que si yo pulso la barra espaciadora, no lo detecta una vez. 00:10:09
De hecho, si nos fijamos ahí, veremos que está cada fotograma detectando que se está disparando. 00:10:18
Es decir, que podría lanzar una bala por cada fotograma que pasa. 00:10:23
Y en cuanto levanto, pues lógicamente deja de contar. 769 disparos ha detectado. 00:10:27
Idioma/s:
es
Materias:
Informática, Imagen y Sonido
Etiquetas:
3d
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Autor/es:
Alvaro Holguera Gozalo
Subido por:
Alvaro H.
Licencia:
Reconocimiento - No comercial - Compartir igual
Visualizaciones:
66
Fecha:
18 de septiembre de 2025 - 23:49
Visibilidad:
Público
Centro:
CFP JOSÉ LUIS GARCI
Duración:
10′ 39″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
313.77 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid