📅  最后修改于: 2023-12-03 15:20:52.343000             🧑  作者: Mango
在 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
方法可用于将鼠标坐标转换为世界坐标,这是很有用的功能。我们可以使用该方法让物体跟随鼠标移动,并实现其他效果。