【发布时间】:2020-05-03 19:09:36
【问题描述】:
在我的第一人称控制器中,我有一个包含相机的空游戏对象。我想分别围绕 y 轴旋转游戏对象和围绕 x 轴旋转相机,但相机会反向旋转。
我的playerobject的结构如下:
玩家对象
游戏对象
- 相机
这是我使用的代码的简化版本:
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;
}
我对统一比较陌生,所以如果我遗漏了明显的东西,请原谅我,但我没有找到任何解释这种行为,我真的很茫然。
【问题讨论】:
-
transform.rotation是世界空间旋转。如果您想在层次结构中相对于其父级旋转相机,请改为设置transform.localRotation。