TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

Sin valoraciones

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

Dentro de ella creamos tres nuevos scripts; PlayerController, PlayerAnimation y PlayerRenderer

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

El script de PlayerAnimation se va a encargar de cambie las animaciones que he­mos creado de idle(que es estar parado) y running(correr). Es decir que cambie entre los dos estados de nuestro Animator que ya incluimos anteriormente en la animacion de nuestro personaje

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

El script de PlayerController va a recibir el movimiento de nuestro personaje y va a mover nuestro personaje a través del Rigidbody.

Y el PlayerRenderer es el que va a saber cuando nuestro personaje tiene que mirar a la izquierda o a la derecha.

El código de nuestro PlayerAnimation es el siguiente.

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

Hemos creado una variable pública llamada Animator que hará posible que nosotros podamos añadir un animator en las dependencias del script que este asociado a nuestro player. El anima- tor era el objeto creado que hace posible que tenga animaciones nuestro personaje. Seguidamente hemos creado una función que nos arroja un valor Vector2, un valor Vector es el movimiento derecha izquierda arriba y abajo. Por lo que aquí le estamos diciendo que lo que tiene que hacer es recibir la información de que si lo estamos moviendo en cualquiera de esas direcciones tiene que arrojarnos un valor. Y a continuación creamos una condicional donde esta variable llamada movementInput es mayor que 0 activara el animator para que cambie entre parado y correr pero si no se cumple la condición que no haga nada.

El código de nuestro PlayerController es el siguiente.

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

Este código es algo más complejo porque para poder mover el componente Rigidbody necesitamos la función FixedUpdate. Todas las programaciones que hagamos para controlar movimientos físicos, colisiones y comportamientos físicos debemos hacer­los a través de esta función.

En este código hemos creado dos variables públicas que nosotros cambiaremos desde fuera en la ventana del inspector de nuestro Player. Son la variable pública speed aquí se le asignara desde fuera la velocidad a la que queremos que se mueva nuestro personaje y la variable publica rigidbody aquí se le aplicarán las físicas de nuestro personaje.

Dentro la variable privada Vector2 asignamos dos funciones la primera que es la de FixedUpdate que va a servir para mover a nuestro Player y la segunda OnMovement que arrojará un valor entre el movimiento y las coordenadas de nuestro objeto dentro del juego.

El código de nuestro PlayerRenderer es el siguiente.

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

En este código hemos creado una variable pública, que nosotros cambiaremos desde fuera en la ventana del inspector de nuestro Player, llamada SpriteRenderer.

Luego asignamos dos funciones una pública llamda OnMovement y una privada llam- da PlayerIsLookingLefts.

En la primera función lo que vamos a decirle es que según el valor que arrojen los controladores nuestro personaje mire a la izquierda o a la derecha.

videojuego

Se le asigna un Vector2(es una variable interna dentro de Unity que define el movi­miento de cualquiera de los objetos que se encuentran dentro de la escena) el cúal es igual a un valor arrojado por los inputs de nuestros controladores.

Si el movementInput en su eje x es mayor que 0 este mirara hacía la derecha es decir vamos a desactivar un componente del player llamado flipX que hace que cambie de orientación nuestro personaje. Si nos venimos al objeto Player y accedemos al objeto hijo sprite veremos esta opción dentro de la pestaña del inspector:

Si está activado nuestro personaje mirara hacía la izquierda

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

Si está desactivado nuestro personaje mirara hacía la derecha.

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

active o desactive esta función para que cuando pulsemos nuestros controladores para mover al personaje este se mueva por el escenario de derecha a izquierda y viceversa.

Con estos tres codigos ya tendríamos la base para que nuestro Player funcione. Ahora vamos a decirle que inputs(controladores) tiene que leer. Entonces para eso debemos abrir Player desde el Inspector irnos al componente PlayerInput

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

Aquí le estamos diciendo que cada vez que el PlayerInput lea la acción Movement nosotros podemos hacer algo en el escenario. Y para ello debemos arrastrar al recuadro que pone None (Object) el objeto Player que es el que contiene los tres scripts que hemos escrito ante­riormente.

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

Nos venimos a la opción de NoFunction y desplegamos las opciones. Se nos abrirá una lista donde nos aparecen todas las funciones que tiene programadas nuestro objeto Player. En este caso debemos seleccionar PlayerAnimation y a su vez le decimos OnMovement.

videojuego

Una vez hecho esto con el código PlayerAnimation repetimos el proceso dos veces más para asignar los otros dos códigos que hemos hecho, PlayerController y PlayerRenderer.

TEMA 4 INPUTS Y CONTROLADORES DEL PERSONAJE (continuación)

 

 

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.
csharp
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.
csharp
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.
csharp
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.

Compártelo en tus redes

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest

Valore este curso

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Utilizamos cookies para asegurar que damos la mejor experiencia al usuario en nuestra web. Si sigues utilizando este sitio asumimos que estás de acuerdo. VER