Unity3D Physics.Raycast() 从不真实

Unity3D Physics.Raycast() never true

我有一个场景,其中我有一个带有精灵渲染器和附加图像的游戏对象。游戏对象有一个 2D 对撞机。当我点击图片时,我试图获得真实的读数,但它总是错误的,我不知道我做错了什么。

 TapPos = GetComponent<Camera> ().ScreenToWorldPoint (new Vector3 (Input.mousePosition.x, Input.mousePosition.y, 0));   

 bool SomethingTapped(){

    Vector3 CanvasTapPoint = new Vector3 (TapPos.x, TapPos.y, 10);
    Debug.DrawLine (TapPos, CanvasTapPoint, Color.green, 10f);

    if (Physics.Raycast (TapPos,CanvasTapPoint, 20f)) {
        return true;
    } else
        return false;
}

PS:

编辑 在 Andrew Griffin 的回复将我的代码更改为这个之后,如果有人想做同样的事情:

    public Transform ObjectTapped(){

    RaycastHit2D FoundObj = Physics2D.Raycast(TapPos, new Vector2(TapPos.x, TapPos.y + 1),0f);

    if(FoundObj.collider  != null){
        Transform obj = FoundObj.transform;
        return obj;
    }
    else{
        return null;
    }
}

调查Physics2D.Raycast。据我所知,Physics.Raycast 不适用于 2D 碰撞器。您必须改用 Physics2D.Raycast。