当在unity中旋转父体时,子游戏对象计数器会旋转。

问题描述 投票:0回答:1

在我的第一人称控制器中,我有一个空的游戏对象,其中包含一个摄像头。我想分别围绕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比较陌生,所以如果我错过了明显的东西,请原谅我,但我没有找到任何解释这种行为,我真的很迷茫。

c# unity3d
1个回答
0
投票

你正在添加Input.GetAxis("Mouse Y")和减去Input.GetAxis("Mouse X")只是一个注意,如果你有ia子,当你旋转父轴时,你也旋转子轴。


0
投票

我不明白你到底想说什么。我想这是你的问题:摄像机围绕X轴和Y轴旋转,但你只想围绕X轴旋转。

你是围绕Y轴旋转你的游戏对象。你的摄像机是你的游戏对象的一个子对象。这意味着您正在围绕Y轴旋转您的相机。同样,您也是围绕X轴旋转您的相机,然后您的相机将围绕Y轴旋转。然后您的摄像机将围绕Y轴和X轴旋转。

如果您只想围绕 X 轴旋转摄像机,不要将其作为 Gameobjet 的子对象。

© www.soinside.com 2019 - 2024. All rights reserved.