【问题标题】:Unity mouse position to world position but just the Y pos统一鼠标位置到世界位置,但只是 Y 位置
【发布时间】:2015-02-24 15:43:01
【问题描述】:

您好,我正在 Unity 游戏引擎中制作一个小游戏,但现在我无法将鼠标的 y 位置转换为世界 y 位置。 有什么想法可以解决这个问题吗?(用 c# 编程)

【问题讨论】:

    标签: unity3d position mouse


    【解决方案1】:

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

    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;
    }
    

    请注意,这种方法假设射线会击中某物。

    【讨论】:

      猜你喜欢
      • 2020-03-14
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 2019-02-07
      • 2018-03-04
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多