假设我的相机围绕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世界坐标,这太糟糕了。