在我们增加棋盘大小但希望它仍在拍摄中后,自动计算相机的新位置



假设我的相机围绕X轴旋转60度,向下看一个9x9块的棋盘。当我们调整板子的尺寸时,我想把相机缩小。为了论证起见,假设相机的位置是(4,20,-7(,就像这样,整个板都是可见的,占据了整个屏幕。

如果我调整我的板大小,比如11x11块,我现在需要缩小相机。比如说,我想保持60度的角度不变,并希望董事会像以前一样填满屏幕。相机的新位置应该是什么?你是如何计算的?

X部分很容易,因为你只需将相机的X位置与板的中间位置相同。不过,我不知道如何计算新的Y和Z位置。

如有任何建议,不胜感激。谢谢

编辑:如果我想改变相机的角度以及缩小,可以计算吗?这不那么重要,因为我可能会坚持同样的角度,但无论如何,我都有兴趣了解它背后的数学原理。

Transform.Translate()方法将根据旋转移动变换。所以你不必担心相机的方向,只需

yourCamera.transform.Translate(Vector3.forward * moveAmount);

将向前移动你的相机,这意味着放大。如果你想缩小,只需将值的符号改为负数。

当我不知道这一点的时候,我用Mathf.Sin()Mathf.Cos()来计算每个y和z世界坐标,这太糟糕了。

最新更新