Changing FPS script to a Top Down.

Ok, so i found a rigidbody script on the unity wiki and i edited it a bit so it would fit my game a bit better. (Not being able to jump)

I have tried to understand how the script works but i cant really figure everything out, so here is the script i have now.

var speed = 10.0;
var maxVelocityChange = 10.0;

private var grounded : boolean = false;

function FixedUpdate ()
{
    if (grounded)
    {
        // Calculate moving speed
        var targetVelocity = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));

        targetVelocity = transform.TransformDirection(targetVelocity);
        targetVelocity *= speed;

        // Apply a force that attempts to reach our target velocity
        var velocity = rigidbody.velocity;
        var velocityChange = (targetVelocity - velocity);

        velocityChange.z = Mathf.Clamp(velocityChange.z, -maxVelocityChange, maxVelocityChange);
        velocityChange.x = Mathf.Clamp(velocityChange.x, -maxVelocityChange, maxVelocityChange);

        rigidbody.AddForce(velocityChange, ForceMode.VelocityChange);
     }

}

// If player is touching ground, grounded = true
function OnCollisionStay ()
{
    grounded = true;    
}

I tried some things to make the script work like i wanted it to. (not in the script because it didn't work) What i want is a top down controller script, if anyone got any suggestions i would be happy if you could post them.

First, you will need the camera to follow the player. You can do this by first (in the scene view) position and rotate the camera until it's on top of the player. Then, drag the `Main Camera` object in the hierarchy onto your `Player` object. That will make it follow the player.

Now, you need to move the player in the direction the arrow key is pressed

void Update() {
    transform.Translate(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
}

You can change `transform.Translate` to `rigidbody.AddForce` to move it with physics instead