更改速度值取决于鼠标从中心 Unity3D 的位置
Change speed value depends on the mouse position from the center Unity3D
我改变(屏幕边缘移动)相机在鼠标移动的位置到指定的边界,我想根据鼠标从中心的位置降低相机的速度。如果鼠标在边缘,则速度 = 0,而鼠标位于中间值时,速度 =10。
要确定鼠标在屏幕上的位置,我建议您使用 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
我改变(屏幕边缘移动)相机在鼠标移动的位置到指定的边界,我想根据鼠标从中心的位置降低相机的速度。如果鼠标在边缘,则速度 = 0,而鼠标位于中间值时,速度 =10。
要确定鼠标在屏幕上的位置,我建议您使用 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