【问题标题】:Raycast ignores all layers when trying to exclude just one尝试仅排除一个层时,Raycast 会忽略所有层
【发布时间】:2020-12-13 20:41:43
【问题描述】:

我有以下光线投射:

Ray ray1 = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit1;
if (Physics.Raycast(ray1, out hit1, ~layer))
{
     Debug.Log("Hit: " + hit1.collider.gameObject.name);
}

图层变量是一个公共变量,在检查器中我将其设置为第 8 层。我想将光线投射到除第 8 层之外的所有层,我想忽略它,但是当我如图所示进行光线投射时,它会忽略所有层。

你能帮忙吗?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    我认为您可能正在尝试执行以下操作:

    if (Physics.Raycast(ray1, out hit1, maxDistance, ~layer))
    {
         Debug.Log("Hit: " + hit1.collider.gameObject.name);
    }
    

    第三个参数假设为光线投射距离。您可以从此处的文档中了解更多信息:https://docs.unity3d.com/ScriptReference/Physics.Raycast.html

    【讨论】:

    • 你是对的,这就是问题所在,但如果我不想要最大距离怎么办?我该怎么做?
    • 在这种情况下你可以只使用 Mathf.Infinty
    猜你喜欢
    • 2019-03-10
    • 2019-12-17
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2021-02-13
    相关资源
    最近更新 更多