Ejercicio: First Person Shooter (haciéndolo desde cero)

Contactar con el profesor

Descargar juego

1. Creamos un Plane y lo aplanamos para el suelo.

2. Añadimos un cubo que será nuestro player.

3. Añadimos un Rigid Body a la cápsula para que caiga por gravedad.

4. Al Rigid Body de la capsula le añadimos uns constraint para que no se incline.

5. El siguiente código hará que el Player se mueva hacia delante y hacia atrás.

public class Player : MonoBehaviour
{
    private float verInput;

    Rigidbody rb;
    int walkspeed = 3;
    private Vector3 movement;

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

    void FixedUpdate()
    {
        this.verInput = Input.GetAxis("Vertical");
        this.movement = this.rb.velocity;
        this.movement.z = verInput * walkspeed;
        this.rb.velocity = this.movement;
    }
}

6. Añadimos la posibilidad de girar.

this.horInput = Input.GetAxis("Horizontal");
//Giramos el objeto
transform.Rotate(0, horInput* 90 * Time.deltaTime*3 ,0 );
        
// InverseTransformDirection convierde las características del objeto en el mundo a características locales del objeto
this.movement = transform.InverseTransformDirection(GetComponent<Rigidbody>().velocity);

// Utilizaremos estos datos locales del objeto para los cálculos

this.movement.z = verInput * walkspeed;

//Finalmente, volvemos a convertir los datos locales del objeto a datos globales para establecer la nueva posición

this.rb.velocity = transform.TransformDirection(this.movement);


GetComponent<Rigidbody>().velocity = transform.TransformDirection(this.movement);
← Ejercicio: First Person Shooter (utilizando assets)
Importar personaje 3D a la escena →

Aviso Legal | Política de privacidad