Ahora solo queda configurar el resto de actions con la tecla que le asignemos a nuestro controlador al igual que hemos hecho con la acción de Up que tiene la W.Juego
Una vez configurado tanto el Keyboard como el Gamepad pulsamos la tecla de todos los controladores para verlos de esta manera:
Ya tenemos nuestra primera acción que es la de movimiento y la tenemos ya configurada para dos controladores el teclado, keyboard y Gamepad. Ahora marcamos la opción All control schemes para así ver la configuración total de los dos controladores.
Si nos damos cuenta el action maps es común para todos los controladores y en la segunda columna cambia la información que aparezca en ella según el controlador que tengamos seleccionado. Ahora como los dos están seleccionados vemos todas las configuraciones
Lo siguiente que vamos a hacer es añadir otra action que vamos a llamar Interact. Pulsamos el botón + que se encuentra a la derecha de Actions y escribimos la nueva acción
Vamos a añadir a esta nueva acción dos bendings. Uno primero sería para el teclado al cual le asignaremos la letra E.
Para ello marcamos primero la opción de Keyboard.
Y luego buscamos la letra E en la opción de Path desde el desplegable, tal como hicimos cuando buscamos los botones de movimiento en la anterior acción.Juego
Pulsamos la opción de escuchar para poner en el buscador la letra E y así no tener que buscarla en las opciones.
Volvemos a añadir otro bending pulsando en el + y del desplegable elegimos la opción Add bending
Y lo configuramos ahora con el gamepad este nuevo Bending
Y en la opción de Path marcamos Gamepad y buscamos dentro de los botones que nos da Gamepad el Buttom South
Una vez que tenemos configurado ya esto. Le damos a la opción Save Asset.
Ahora para ver esto. Deberemos añadir un componente al objeto Player llamado Player input
Y en la primera opción que pone Actions arrastraremos lo que acabamos de crear desde la carpeta de inputs que se encuentra en la carpeta de scripts y dentro de Assets
Ahora si está preparado, lo que vamos a utilizar un metodo para que el player y los controladores funcionen entre ellos a través de la opción Invoke Unity Events dentro de la opción Behaviour del componente Player Inputs
Esto nos abre una serie de opciones donde nos permite ver la configuración de nuestros controladores dentro de la programación entre el objeto Player y los propios controladores. Si nosotros abrimos la pestaña de PlayerControls podremos ver los eventos que creamos anteriormente es decir las acciones de Movement y Interact
Estos dos son los que vamos a integrar para que nuestro personaje se mueva y pueda interactuar dentro de que nosotros lo movamos con los botones del teclado y los controladores del Gamepad.
Así que para ello vamos a crear los scripts necesarios para que eso esté conectado.
El siguiente paso es abrir la carpeta de Assets irse a la carpeta de Scripts y dentro de ella vamos a crear una nueva carpeta llamada Player
La gestión de inputs y controladores de personajes en Unity puede realizarse de varias formas:
1. Configurar Inputs en Unity:
1.1. Ir a Edit -> Project Settings -> Input Manager:
- Define los inputs que necesitarás para tu juego.
- Puedes agregar nuevos botones y asignarles nombres significativos.
2. Crear un Script de Controlador de Personaje:
2.1. Crear Script de Controlador de Personaje:
- Crea un nuevo script llamado
ControladorPersonaje
.
using UnityEngine; public class ControladorPersonaje : MonoBehaviour { public floatvelocidad = 5f; public float velocidadRotacion = 200f; void Update() { MoverPersonaje(); RotarPersonaje(); } void MoverPersonaje() { float movimientoVertical = Input.GetAxis("Vertical"); float movimientoHorizontal = Input.GetAxis("Horizontal"); Vector3 movimiento = new Vector3(movimientoHorizontal, 0f, movimientoVertical) * velocidad * Time.deltaTime; transform.Translate(movimiento, Space.Self); } voidRotarPersonaje() { float rotacion = Input.GetAxis("Horizontal") * velocidadRotacion * Time.deltaTime; transform.Rotate(Vector3.up, rotacion); } }
3. Asociar el Script al Personaje:
3.1. Asociar el Script:
- Asocia el script
ControladorPersonaje
al GameObject del personaje en el Inspector.
4. Ajustar Parámetros del Personaje:
4.1. Ajustar Parámetros:
- En el Inspector, ajusta la velocidad y velocidad de rotación según tus necesidades.
5. Ejemplo de Controlador de Cámara (Opcional):
5.1. Controlador de Cámara:
- Si utilizas Cinemachine, puedes crear un script para permitir que la cámara siga al personaje.
using UnityEngine; public class ControladorCamara : MonoBehaviour { public Transform objetivo; void LateUpdate() { if (objetivo != null) { transform.position = objetivo.position; } } }
6. Configurar Inputs en el Script de Controlador de Personaje:
6.1. Configurar Inputs en el Script:
- Puedes configurar las teclas o botones de input directamente en el script o mediante variables públicas.
public class ControladorPersonaje : MonoBehaviour { // ... void MoverPersonaje() { floatmovimientoVertical = Input.GetAxis("Vertical"); float movimientoHorizontal = Input.GetAxis("Horizontal"); Vector3 movimiento = new Vector3(movimientoHorizontal, 0f, movimientoVertical) * velocidad * Time.deltaTime; transform.Translate(movimiento, Space.Self); } void RotarPersonaje() { float rotacion = Input.GetAxis("Horizontal") * velocidadRotacion * Time.deltaTime; transform.Rotate(Vector3.up, rotacion); } }
7. Asociar el Controlador de Cámara (Opcional):
7.1. Asociar el Controlador de Cámara:
- Asocia el script de controlador de cámara al objeto de la cámara y establece el objetivo como el personaje.
8. Ejecutar y Probar:
8.1. Ejecutar y Probar:
- Ejecuta la escena y prueba los inputs para asegurarte de que el personaje responda correctamente.