Sharp Coder is reader-supported, meaning when you buy through links on our site, we may earn an affiliate commission.
Adding Crouching to FPS Player in Unity
Player 3D and 2D Wall Jump Tutorial for Unity
Rigidbody-based Planetary Player Controller for Unity
Implementing Parkour System in Unity
Dialogue System for Unity
Unity How to Make Mobile Touch Controls
2D Character Controller for Unity

Creating Player Movement in Unity

Creating player movement in Unity involves a combination of input handling and transforming the player's position. Here's a step-by-step guide to implementing basic player movement:

Create a Player GameObject

Create a GameObject in your scene to represent the player. You can add a 3D model or a sprite renderer to visualize the player.

Add Rigidbody Component

Attach a Rigidbody component to the Player GameObject to enable physics interactions. This will allow the player to respond to forces and collisions.

Input Handling

Handle player input to determine movement direction. In your Unity script, you can use the built-in input system, such as 'Input.GetAxis', to retrieve input values. For example, you might use "Horizontal" for left-right movement and "Vertical" for forward-backward movement.

Move the Player

In the script, use the input values to calculate the player's movement direction. Multiply the direction by a desired speed value to control the movement speed. Apply this movement to the player's Rigidbody component using 'Rigidbody.MovePosition' or 'Rigidbody.velocity'.

// Example script for player movement
public class PlayerMovement : MonoBehaviour
    public float moveSpeed = 5f;
    private Rigidbody rb;

    private void Start()
        rb = GetComponent<Rigidbody>();

    private void FixedUpdate()
        float horizontalInput = Input.GetAxis("Horizontal");
        float verticalInput = Input.GetAxis("Vertical");

        Vector3 movement = new Vector3(horizontalInput, 0f, verticalInput) * moveSpeed;

        rb.MovePosition(rb.position + movement * Time.fixedDeltaTime);

Attach the Script

Attach the 'PlayerMovement' script to the Player GameObject in the Unity Editor. Ensure the Rigidbody component is also attached to the Player GameObject.

Test the Player Movement

Run the game and test the player's movement. The player should now move in response to the input axes you defined. Adjust the 'moveSpeed' value to control the player's movement speed.


This is a basic implementation of player movement in Unity. From here, you can enhance the movement by adding animations, handling different input methods (e.g., keyboard, gamepad), implementing physics-based interactions, or applying constraints based on the game's mechanics.

You Do Not Have To Do Everything Yourself
Search from thousands of ready-to-use Unity assets.
Visit Asset Store