假设我的相机绕X轴旋转60度,俯视一个9x9的棋盘。当我们调整棋盘大小时,我想缩小相机。假设相机的位置是(4,20,-7),就像这样,整个棋盘都是可见的,占据了整个屏幕。
如果我调整我的电路板大小,比如说11x11块,我现在将需要缩小相机。比方说,我想保持相同的60度角,并且希望棋盘像以前一样充满屏幕。相机的新位置应该是什么,你是如何计算的?
X部分很简单,因为您只需将相机的X位置设置为棋盘的中间位置即可。不过,我不确定如何计算新的Y和Z位置。
任何建议都很感谢。谢谢。
编辑:如果我想改变相机的角度和缩小,可以计算吗?这并不重要,因为我可能会坚持相同的角度,但我有兴趣知道它背后的数学原理。
发布于 2020-04-27 09:52:06
Transform.Translate()
方法将根据旋转移动变换。所以你不必担心你的相机所看的方向,只要
yourCamera.transform.Translate(Vector3.forward * moveAmount);
将使您的相机前移,这意味着放大。如果要缩小,只需将值的符号更改为减号即可。
当我不知道这一点时,我使用Mathf.Sin()
和Mathf.Cos()
来计算每个y和z世界坐标,这很糟糕。
https://stackoverflow.com/questions/61450464
复制相似问题