我正在尝试制作一个第一人称摄像机,并且使摄像机和玩家的移动完全按照我的要求进行。然而,现在我的问题是,如果我用摄像机向右看并按下W键向前移动,它会根据游戏世界而不是摄像机朝向向前移动。
我已经尝试过更改父子关系或使用变换将玩家和摄像机链接在一起。
我已经尝试过更改父子关系或使用变换将玩家和摄像机链接在一起。
// Simple Player movement
Rigidbody rb;
public float speed;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
float mH = Input.GetAxis("Horizontal");
float mV = Input.GetAxis("Vertical");
rb.velocity = new Vector3(mH * speed, rb.velocity.y, mV * speed);
}
// Camera controls (separate script)
private Transform playerBody;
void update()
{
CameraRotation();
}
private void CameraRotation()
{
float mouseX = Input.GetAxis(mouseXInputName) * mouseSensitivity * Time.deltaTime;
float mouseY = Input.GetAxis(mouseYInputName) * mouseSensitivity * Time.deltaTime;
xAxisClamp += mouseY;
if (xAxisClamp > 90.0f)
{
xAxisClamp = 90.0f;
mouseY = 0.0f;
ClampAxisRotationToValue(270.0f);
}
else if (xAxisClamp < -90.0f)
{
xAxisClamp = -90.0f;
mouseY = 0.0f;
ClampAxisRotationToValue(90.0f);
}
transform.Rotate(Vector3.left * mouseY);
playerBody.Rotate(Vector3.up * mouseX);
}
在最后一行playerBody.rotate
中,我期望它会旋转相机所附着的对象,以便当我按前进时,它会沿着相机所朝向的方向向前移动,但是它仍然沿着静态的X和Z轴移动,忽略了相机的朝向。