java怎么改变物体运动方向,在旋转时改变运动方向

我创造了一个FPS运动但玩家的动作是错误的 . 当向左或向右旋转时,播放器仍然向前移动 .

PlayerMovement.cs

public class PlayerMovement : MonoBehaviour

{

private Vector3 movement;

private Rigidbody rigid;

private bool jumpPressed;

private const int MOVEMENT_SPEED = 8;

private const int JUMP_POWER = 20;

private void Awake()

{

rigid = GetComponent();

}

private void Update()

{

SetInputs();

}

private void FixedUpdate()

{

Jump();

Move();

}

private void SetInputs()

{

movement.x = Input.GetAxis("Horizontal") * MOVEMENT_SPEED;

movement.y = rigid.velocity.y;

movement.z = Input.GetAxis("Vertical") * MOVEMENT_SPEED;

jumpPressed = Input.GetKeyDown(KeyCode.Space);

}

private void Jump()

{

if (jumpPressed && GroundCheck())

{

movement.y = JUMP_POWER;

jumpPressed = false;

}

}

private void Move()

{

rigid.velocity = movement;

}

private bool GroundCheck()

{

return true;

}

}

CameraMovement.cs

public class CameraMovement : MonoBehaviour

{

private Transform player;

private Vector2 rotation;

private Quaternion originalRotation;

private const int HORIZONTAL_ROTATION_SPEED = 5;

private const int VERTICAL_ROTATION_SPEED = 5;

private const int VERTICAL_ROTATION_MIN = -80;

private const int VERTICAL_ROTATION_MAX = 80;

private void Awake()

{

player = GameObject.FindGameObjectWithTag("Player").transform;

}

private void Start()

{

originalRotation = transform.localRotation;

}

private void Update()

{

SetInputs();

RotateCamera();

RotatePlayer();

}

private void SetInputs()

{

rotation.x = Input.GetAxisRaw("Mouse X") * HORIZONTAL_ROTATION_SPEED;

rotation.y += Input.GetAxisRaw("Mouse Y") * VERTICAL_ROTATION_SPEED;

rotation.y = Mathf.Clamp(rotation.y, VERTICAL_ROTATION_MIN, VERTICAL_ROTATION_MAX);

}

private void RotateCamera()

{

Quaternion verticalRotation = Quaternion.AngleAxis(rotation.y, Vector3.left);

transform.localRotation = originalRotation * verticalRotation;

}

private void RotatePlayer()

{

player.localRotation *= Quaternion.AngleAxis(rotation.x, player.up);

}

}

我提供了一个小gif,显示旋转时的错误动作 .

通过旋转相机旋转播放器时,播放器围绕其y轴正确旋转 . 不知怎的,他没有前进到他面对的方向,他只是向一个方向移动 .

需要修复什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值