Unity Camera在旋转时保持透视

时间:2016-12-01 01:28:36

标签: c# unity3d geometry

我试图写一个相机脚本,这个脚本将保持我在旋转时看到的透视点。

public void RegisterRotationControls()
{
    var horizontal = CrossPlatformInputManager.GetAxis(InputAxisName.Horizontal.ToString());

    offsetX = Quaternion.AngleAxis(horizontal * turnSpeed, Vector3.up) * offsetX;
    transform.position = player.position + offsetX;

    transform.LookAt(player.position + PlayerOffset);
} 

目前此脚本仅在相机正在观看播放器时才能正常工作,但是相机可以自由移动位置,但旋转应保持与中心的相对性。 enter image description here

顶行显示当前行为,而底部描述应该发生的行为

1 个答案:

答案 0 :(得分:2)

手动计算旋转以将相机移动到圆圈中同时保留其原始(相对)面部有点麻烦,并且需要您做比您需要的更多的数学运算。

一种流行的解决方案是将相机置于空GameObject下,并将GameObject置于您希望相机旋转的点/对象上。 (这基本上内化了很多计算,让引擎完成繁重的工作。)然后,您可以根据需要在本地翻译相机,然后旋转容器GameObject以将相机移动一圈。