RaycastHit2D 无法检测到游戏对象上的触摸



我正在尝试使用RaycastHit2D检测所选游戏对象的触摸。游戏是2D的。以下是我的代码:

 void Update()
{
    if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Ended)
    {
        Debug.Log("touch");
        Vector3 touchPosWorld = Camera.main.ScreenToViewportPoint(Input.GetTouch(0).position);
        Vector2 touchPosWorld2D = new Vector2(touchPosWorld.x, touchPosWorld.y);
        RaycastHit2D hitInformation = Physics2D.Raycast(touchPosWorld2D, Camera.main.transform.forward);
        Debug.Log(hitInformation.collider);
    }
}

我已将该脚本附加到空游戏对象。然后创建一个带有盒子碰撞体的预制件。但是当我触摸带有 boxcollider2d 的预制件时,它仍然显示 Null。我的代码有什么问题

我发现问题现在改变了这个

Vector3 touchPosWorld = Camera.main.ScreenToViewportPoint(Input.GetTouch(0).position);

对此

Vector3 touchPosWorld = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);

相关内容

  • 没有找到相关文章

最新更新