我正在尝试使用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);