📜  unity screentoworldpoint - C# (1)

📅  最后修改于: 2023-12-03 15:20:52.343000             🧑  作者: Mango

Unity ScreenToWorldPoint - C#

在 Unity 中,我们可以使用 ScreenToWorldPoint 方法将鼠标坐标转换为世界坐标。这非常有用,因为我们可以利用该方法让物体跟随鼠标移动。

用法

以下是使用 ScreenToWorldPoint 方法的基本用法:

Vector3 mousePosition = Input.mousePosition;
mousePosition.z = Camera.main.nearClipPlane;
Vector3 worldPosition = Camera.main.ScreenToWorldPoint(mousePosition);

这段代码将获取鼠标坐标 mousePosition,将其 Z 坐标设置为摄像机近裁剪面的 Z 坐标,并使用 ScreenToWorldPoint 方法将其转换为世界坐标 worldPosition

请注意,此代码假定我们使用的是主摄像机。如果您使用的是其他摄像机,请将 Camera.main 替换为您要使用的摄像机变量。

示例

以下是将一个物体跟随鼠标移动的示例代码:

public class FollowMouse : MonoBehaviour
{
    private void Update()
    {
        Vector3 mousePosition = Input.mousePosition;
        mousePosition.z = Camera.main.nearClipPlane;
        transform.position = Camera.main.ScreenToWorldPoint(mousePosition);
    }
}

此代码将每帧更新物体的位置,使其始终在鼠标下方。

总结

Unity 中的 ScreenToWorldPoint 方法可用于将鼠标坐标转换为世界坐标,这是很有用的功能。我们可以使用该方法让物体跟随鼠标移动,并实现其他效果。