统一鼠标位置到世界位置,但只是 Y 位置

Unity mouse position to world position but just the Y pos

你好,我正在Unity游戏引擎中制作一个小游戏,现在我无法完成它只是为了将鼠标的y位置转换为世界y位置。 有解决这个问题的想法吗?(用 c# 编程)

请记住,鼠标位置是一个 2D 点,但您正在投影到 3D 世界中。因此,鼠标的 Y 坐标取决于世界位置的 Z 坐标。或者换句话说,高度将根据世界中点的深度而有所不同space。如果你想获得某个深度的位置,你可以这样做:

Vector3 mousePos = Input.mousePosition;
mousePos.z = <depth>;
float y = Camera.main.ScreenToWorldPoint(mousePos).y;

或者您可以将 Ray 投射到世界中,并使用它命中的第一个物体的位置作为采样深度:

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
    float y = hit.point.y;
}

请注意,此方法假设射线会击中某些东西。