在我的第一人称控制器中,我有一个空的游戏对象,其中包含一个摄像头。我想分别围绕Y轴和X轴旋转游戏对象和摄像机,但摄像机会反转。
我的playerobject的结构如下。
PlayerObject
游戏规则(GameObejct
这是一个缩小版的代码,我正在使用。
public Transform GameObject;
private Camera PlayerCamera;
public Quaternion cam_pan;
public Quaternion cam_tilt;
private void Start()
{
PlayerCamera= GameObject.GetComponentInChildren<Camera>();
}
private void Update()
{
cam_tilt = Quaternion.Euler(cam_tilt.eulerAngles.x - Input.GetAxis("Mouse Y"), 0, 0);
cam_pan = Quaternion.Euler(0, cam_pan.eulerAngles.y + Input.GetAxis("Mouse X"), 0);
PlayerCamera.transform.rotation = cam_tilt;
GameObject.transform.rotation = cam_pan;
}
我对unity比较陌生,所以如果我错过了明显的东西,请原谅我,但我没有找到任何解释这种行为,我真的很迷茫。
你正在添加Input.GetAxis("Mouse Y")和减去Input.GetAxis("Mouse X")只是一个注意,如果你有ia子,当你旋转父轴时,你也旋转子轴。
我不明白你到底想说什么。我想这是你的问题:摄像机围绕X轴和Y轴旋转,但你只想围绕X轴旋转。
你是围绕Y轴旋转你的游戏对象。你的摄像机是你的游戏对象的一个子对象。这意味着您正在围绕Y轴旋转您的相机。同样,您也是围绕X轴旋转您的相机,然后您的相机将围绕Y轴旋转。然后您的摄像机将围绕Y轴和X轴旋转。
如果您只想围绕 X 轴旋转摄像机,不要将其作为 Gameobjet 的子对象。