Unity 3D: Movimiento simple con teclado

El siguiente código hará que el GameObject que lo contenta pueda moverse a con las teclas de movimiento habituales del teclado:

Versión 1:
El GameObject girará en cualquier momento ( como un robot )

using UnityEngine;
using System.Collections;

public class A2_MovementControl : MonoBehaviour
{
    public float moveSpeed = 10f;
    public float turnSpeed = 50f;
    
    
    void Update ()
    {
        if(Input.GetKey(KeyCode.UpArrow)){
            transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
        }
        
        if(Input.GetKey(KeyCode.DownArrow)){
            transform.Translate(-Vector3.forward * (moveSpeed-(moveSpeed/2)) * Time.deltaTime);
        }

        if(Input.GetKey(KeyCode.LeftArrow)){
            transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);
        }
       
        if(Input.GetKey(KeyCode.RightArrow)){
            transform.Rotate(Vector3.up, turnSpeed * Time.deltaTime);
        }
    }
}

Versión 2:
El GameObject solo girará cuando se pulse el acelarador ( como en un coche )

using UnityEngine;
using System.Collections;

public class A2_MovementControl : MonoBehaviour
{
    public float moveSpeed = 10f;
    public float turnSpeed = 50f;
    
    
    void Update ()
    {
        if(Input.GetKey(KeyCode.UpArrow)){
            transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);

              if(Input.GetKey(KeyCode.LeftArrow)){
                transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);
                }
        
            if(Input.GetKey(KeyCode.RightArrow)){
                transform.Rotate(Vector3.up, turnSpeed * Time.deltaTime);
                }
        }
        
        if(Input.GetKey(KeyCode.DownArrow)){
            transform.Translate(-Vector3.forward * (moveSpeed-(moveSpeed/2)) * Time.deltaTime);
        }
    }
}

Deja un comentario

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