Unity Raycast不起作用

时间:2018-03-29 03:45:27

标签: unity3d unity3d-2dtools

void Update () {
    if (!createLineupPanel.activeSelf) return;
    if (Input.GetMouseButtonUp(0))
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        Debug.Log(1);
        if (Physics.Raycast(ray, out hit))
        {
            Debug.Log(2);
        }
    }
}

当我点击时,控制台只记录了1但没有记录2。

之前我使用过这个功能并且它有效但我不知道为什么它这次不起作用。我需要发布任何其他内容吗?

---更新---

Panel位于Hierarchy下 - >创建 - > UI - >面板

enter image description here

1 个答案:

答案 0 :(得分:0)

我习惯这样处理:

var mousePositionWorld = camera.ScreenToWorldPoint(Input.mousePosition);    
return Physics2D.Raycast(new Vector2(mousePositionWorld.x, mousePositionWorld.y), Vector2.zero, 0f);

(你在标签中提到“2d-tools”,所以我假设你实际上需要2D光线投射。)