2D Movement Script turning quicker

I have a cube with the mesh filter set to plane and rotated 90* on the x-axis and 180* on the y-axis. I set the freeze rotation on the x,y,z-axis and freeze location on the z-axis. I made this very simple movement script.

 using UnityEngine;
 using System.Collections;
 
 public class Player : MonoBehaviour 
 {
     public float speed;
     void FixedUpdate () 
     {
         float moveHorizontal = Input.GetAxis ("Horizontal");
         float moveVertical = Input.GetAxis("Vertical");
 
         Vector3 movement = new Vector3 (moveHorizontal, 0, moveVertical);
 
         rigidbody.AddForce(movement * speed * Time.deltaTime);
     }
 }

I want to improve it (A lot) and I want to understand all the lines but the main problem is the turning speed you cannot turn quickly it feels like he is walking on ice and I want it faster like in Mario. In advance thanks for any help.

First of all, you don’t multiply by Time.deltaTime in FixedUpdate(). Fixed update is fixed, meaning it will always run at 50fps (or whatever you set the timestamp to).

You only need to use Time.deltaTime if your code is in Update(), because updates can be variable. Sometimes Update happens 100fps and sometimes it happens at 10fps. Time.deltaTime is the time between updates.

But to answer your main question, there are two factors at play. One is intertia. You’re applying a force to a rigidbody. It will keep moving in the direction of that force until it’s stopped by friction and drag. So turn up friction on the physics material and drag on the rigidbody.

Another issue is in the Unity input manager itself. If you’re using a keyboard, try turning up the “gravity” and “sensitivity” to 1000 on your “Horizontal” and “Vertical” axis.