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