更改速度值取决于Unity3D中心的鼠标位置

时间:2016-06-20 00:03:30

标签: c# unity3d camera viewport

我将鼠标移动时相机的位置改变(屏幕边缘移动)到指定的边界,我想根据鼠标从中心位置降低相机的速度。如果鼠标位于边缘,则速度= 0;当鼠标位于中间值时,速度= 10。

1 个答案:

答案 0 :(得分:0)

要确定屏幕上的鼠标位置,我建议您使用Camera.ScreenToViewportPoint(Input.mousePosition)。这将为您提供Vector3,其中x和y的范围为0到1,其中(0,0)是左下角,(1,1)是屏幕的右上角。 使用这些坐标,如果x或y为0或1,则可以确定鼠标位于边缘。

接下来,您必须查看穿过中心的线((0.5,0.5))和鼠标位置,以及与屏幕边缘最近的交叉点。通过此功能,您可以确定距离边缘和中心的距离比率,并使用Mathf.Lerp之类的内容来缩放所需的相机速度。 (你必须确定边缘交叉点,因为你的屏幕不是球形,如果是这种情况,你可以只看一下鼠标位置到中心的距离和最大距离)。

请参阅:https://docs.unity3d.com/ScriptReference/Camera.ScreenToViewportPoint.html

https://docs.unity3d.com/ScriptReference/Mathf.Lerp.html