Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity相机在旋转时保持透视效果_C#_Unity3d_Geometry - Fatal编程技术网

C# Unity相机在旋转时保持透视效果

C# Unity相机在旋转时保持透视效果,c#,unity3d,geometry,C#,Unity3d,Geometry,我正在尝试编写一个相机脚本,它将保持我在旋转时看到的透视点 public void RegisterRotationControls() { var horizontal = CrossPlatformInputManager.GetAxis(InputAxisName.Horizontal.ToString()); offsetX = Quaternion.AngleAxis(horizontal * turnSpeed, Vector3.up) * offsetX;

我正在尝试编写一个相机脚本,它将保持我在旋转时看到的透视点

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);
} 
当前,此脚本仅在摄影机注视玩家时才能正常工作,但是摄影机可以自由移动位置,但旋转应保持与中心的相对性


顶行显示当前行为,而底行显示应发生的情况

手动计算旋转以在圆中移动摄影机,同时保留其原始(相对)面有点麻烦,并且需要您进行比需要更多的数学运算


一种流行的解决方案是将摄影机设置为空游戏对象下的父对象,并将该游戏对象置于希望摄影机旋转的点/对象的中心。(这基本上会将大量计算内部化,让引擎完成繁重的工作。)然后,您可以根据需要局部平移摄影机,然后旋转容器游戏对象以将摄影机移动成一个圆圈。

手动计算旋转以在保留原始(相对)的情况下将摄影机移动成一个圆圈面对有点麻烦,需要你做的数学比你需要做的多得多


一种流行的解决方案是将摄影机设置为空游戏对象下的父对象,并将该游戏对象置于希望摄影机旋转的点/对象的中心。(这基本上会将大量计算内部化,让引擎完成繁重的工作。)然后,您可以根据需要局部平移摄影机,然后旋转容器游戏对象以将摄影机移动成一个圆圈。

您是否考虑过将摄影机设置在以玩家为中心的空游戏对象下,然后仅旋转该对象?然后你可以让相机指向任何方向,并且仍然围绕播放器旋转一个一致的圆圈。听起来不错,如果我这样做了,相机会保持相对于父对象的透视吗?我是否必须将父对象与摄影机分离以移动位置,或者我是否可以相对于父对象移动位置?嗯,您可以根据需要移动摄影机(可能是局部的,因此它相对于父对象的局部空间移动)。不完全确定你所说的相机保持相对于父母的视角是什么意思-它应该表现得像第二张图片中所示的那样,但是试试看它是否满足你的需要。@serlite谢谢,你的建议奏效了,如果你把它作为一个答案发布,我会把它标记为“完全确定的事情”,很高兴我能帮上忙!你有没有考虑过把相机放在一个以玩家为中心的空游戏物体下,然后旋转它?然后你可以让相机指向任何方向,并且仍然围绕播放器旋转一个一致的圆圈。听起来不错,如果我这样做了,相机会保持相对于父对象的透视吗?我是否必须将父对象与摄影机分离以移动位置,或者我是否可以相对于父对象移动位置?嗯,您可以根据需要移动摄影机(可能是局部的,因此它相对于父对象的局部空间移动)。不完全确定你所说的相机保持相对于父母的视角是什么意思-它应该表现得像第二张图片中所示的那样,但是试试看它是否满足你的需要。@serlite谢谢,你的建议奏效了,如果你把它作为一个答案发布,我会把它标记为“完全确定的事情”,很高兴我能帮上忙!