求大神, unity的问题

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
public float speed = 6f;

private Vector3 movement;
private Animator anim;
private Rigidbody playerRigidbody;
private int floorMask;
private float camRayLength = 100f;

void Awake()
{
    floorMask = LayerMask.GetMask ("Floor");
    anim = GetComponent<Animator> ();
    playerRigidbody = GetComponent<Rigidbody> ();
}

void FixedUpdate()
{
    float h = Input.GetAxisRaw ("Horizontal");
    float v = Input.GetAxisRaw ("Vertical");
    Move (h, v);
    Turning ();
    Animating (h, v);
}

void Move(float h, float v)
{
    movement.Set (h, 0, v);
    movement = movement.normalized * speed * Time.deltaTime;
    playerRigidbody.MovePosition (transform.position + movement);
}

void Turning()
{
    Ray camRay = Camera.main.ScreenPointToRay (Input.mousePosition);

    RaycastHit floorHit;

    if (Physics.Raycast (camRay, out floorHit, camRayLength, floorMask)) 
    {
        Vector3 playerToMouse = floorHit.point - transform.position;
        playerToMouse.y = 0.0f;

        Quaternion newRotation = Quaternion.LookRotation (playerToMouse);
        playerRigidbody.MoveRotation (newRotation);
    }
}

void Animating(float h, float v)
{
    bool walking = h != 0f || v != 0f;
    anim.SetBool ("IsWalking", walking);
    Debug.Log ("IsWalking的值 = " + walking);
}

}

求大神 Move这个函数 为什么还要加normalized GetAxisRaw返回的不就是
-1或1的确定值吗 不带平滑滤波 这个normalized没必要吧

为什么还要 * Time.deltatime FixedUpate不是固定时间更新吗 与帧率无关
这个 deltatime 有什么用

代码是很好的 标准的官网代码

C#中normalized 是标准化,忽视大小只取方向的向量,然后再乘以速度和时间为了得到movement 的向量

movement.normalized是原始的速度
deltatime是时间的增量