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

时间:2019-06-16 06:34:54

标签: c# unity3d game-development

我正在尝试使用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。我的代码有什么问题

1 个答案:

答案 0 :(得分:0)

我发现问题现在可以改变

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

对此

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