【发布时间】:2014-10-27 18:21:09
【问题描述】:
我正在寻找一种解决方案,如何通过向前移动相机来在 Unity 中进行完美的捏合缩放:
设置: 以所有游戏对象为中心的水平平面。 具有 FOV 10 的透视相机,在 (10,10,10) 处偏移,以 45 度角向下看,因此它会看到原点(还有围绕指向上方的轴旋转 45 度来实现这一点)。
我需要什么: 当我将两根手指放在屏幕上时,我正在用它们触摸两个游戏对象——因此手指下的屏幕坐标对应于某些世界坐标。当我进行捏合运动(移动两个手指或只移动一个手指)时,我希望新的屏幕坐标对应于整个交互开始时手指下方的相同世界坐标。 所以为了进一步简化 - 每当我用两根手指触摸屏幕时,我希望与我手指下的屏幕坐标相对应的世界坐标始终保持在手指下(允许非常小的误差范围)。
我正在寻找的完美缩放示例可以在 Supercell 的手机游戏 Boom Beach 中看到。
我已经尝试沿着它的前向矢量移动相机并重新定位它,我得到了很好的结果,但几乎总是游戏对象从我的手指下“滑落”,即在某些点不再在下面他们。如果有一个数学解决方案会很好,但如果有必要计算答案(例如通过一些搜索),那么这完全没问题。
如果设置/场景不清楚,我可以提供一些草图来澄清一下。
希望有人可以帮助我! :)
【问题讨论】:
标签: unity3d zooming pinchzoom perspectivecamera