Unity 3D: Controlar nuestro personaje con el teclado

Unity 3D: Controlar nuestro personaje con el teclado

Buenos días a todos y bienvenidos al blog de Espai. En un artículo anterior comenzamos un proyecto en Unity muy simple, que consistía en un coche y una plataforma sobre la que se apoyaba. Como lo prometido es deuda, vamos a darle “vida” y a aprender algo esencial en Unity 3D: Controlar nuestro personaje con el teclado.

 

 

Ejem… Después de está referencia viejuna que revela mi edad, ¡Vamos a ello!

 

En el en el artículo anterior nos quedamos en algo similar a esto

 

Unity 3D: Controlar nuestro personaje con el teclado

 

Teníamos creada una plataforma sobre la que estaba depositada el coche. Además, habíamos descargado el coche del Asset Store, éste en concreto se puede buscar como “green toon car” que significa, “coche verde de cómic”. A continuación vendrá lo nuevo de este artículo.

 

Primera parte

El primer paso es crear un cubo del tamaño del coche y poner el coche “dentro del cubo”. Así:

Unity 3D: Controlar nuestro personaje con el teclado

Fijaros que he añadido un RigidBody al cubo. Podéis hacerlo con el botón “Add component”. Después, tenemos que asociar el coche que hemos bajado del Asset Store al cubo, así:

 

Unity 3D: Controlar nuestro personaje con el teclado

 

la forma de hacerlo es arrastrar “toon-race-car” justo encima de “cube”. De esta manera hacemos que el coche dependa de la posición del cubo.

La razón para hacer esto, en lugar de usar directamente el coche, es que lo hemos bajado del Asset Store. En ocasiones pasa que lo que descargamos no es exactamente lo que necesitamos, como en este caso en que el coche no tiene “colliders”, un componente necesario para detectar cuando nuestro vehículo “colisiona” con el suelo, para que Unity sea capaz de frenarlo en su caída y dejarlo apoyado en el suelo.

 

Hay que deshabilitar el componente “renderer” del cubo (para que nuestro coche no parezca encajado en un bloque de hormigón).

 

Unity 3D: Controlar nuestro personaje con el teclado

 

Segunda parte

 

El segundo paso será crear un script que llamaremos “ControladorPlayer”, podemos hacerlo así:

 

Unity 3D: Controlar nuestro personaje con el teclado

 

Con esto vamos a añadir un script que le dará “inteligencia” a nuestro coche, para que reconozca las flechas como controladores de dirección. Para lograr este fin tendremos que escribir algo de código, lo añado a continuación para que solo tengáis que copiarlo y pegarlo en vuestro script.

Nota: para abrir el script, doble click en el componente añadido (fíjate en la imagen a continuación)

 

Unity 3D: Controlar nuestro personaje con el teclado

 


 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ControladorPlayer : MonoBehaviour
{
public float velocidad;
private Rigidbody rb;

void Start ()
{
rb = GetComponent<Rigidbody> ();
}

void FixedUpdate ()
{
float mHorizontal = Input.GetAxis (“Horizontal”);
float mVertical = Input.GetAxis (“Vertical”);

Vector3 movimiento = new Vector3 (mHorizontal, 0.0f, mVertical);

rb.AddForce (movimiento * velocidad);
}
}

 


 

Como último detalle cuando guardéis el código, aparecerá una variable “velocidad” en el editor de unity. La podéis ver aquí:

 

Unity 3D: Controlar nuestro personaje con el teclado

 

Para que os funcione, tendréis que ponerle un valor superior a 10, valores mas pequeños harían que no se moviera. Esto es así porque Unity tiene en cuenta cosas como la gravedad y el rozamiento de un objeto contra otro, de forma que la fuerza que debemos aplicar venza esa “resistencia” al movimiento.

 

 

 

¡Y hasta aquí el artículo de hoy! Espero que os haya parecido interesante, un saludo y hasta la próxima!

 

 

 

Escribe un comentario