这段脚本演示了 FPS 游戏中角色的基本移动与旋转控制:通过监听 W / A / S / D 四个按键驱动角色在当前朝向上前后左右平移,并同步切换动画状态;再通过鼠标 X 轴输入实时旋转角色朝向。注释里还保留了另一种基于 Input.GetAxisRigidbody.MovePosition 的备选方案,可作为对照参考。

示例代码

 //move controll
        bool isMove = false;
        if (Input.GetKey(KeyCode.W))
        {
            transform.Translate(Vector3.forward * _moveSpeed);
            isMove = true;
        }
        if (Input.GetKey(KeyCode.S))
        {
            transform.Translate(Vector3.back * _moveSpeed);
            isMove = true;
        }
        if (Input.GetKey(KeyCode.A))
        {
            transform.Translate(Vector3.left * _moveSpeed);
            isMove = true;
        }
        if (Input.GetKey(KeyCode.D))
        {
            transform.Translate(Vector3.right * _moveSpeed);
            isMove = true;
        }
        animation.SetBool("IsMoving", isMove);
        //  Vector3 mov = new Vector3(Input.GetAxis("Horizontal"), 0f,
        //  Input.GetAxis("Vertical"));
        //  GetComponent<Rigidbody>().MovePosition(transform.position + mov);

        //rotation controll
        float y = Input.GetAxis("Mouse X");
        if (y != 0)
        {
            transform.Rotate(0, _rotationSpeed * y + transform.rotation.y, 0);
        }