我正在尝试使用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。我的代码有什么问题
答案 0 :(得分:0)
我发现问题现在可以改变
Vector3 touchPosWorld = Camera.main.ScreenToViewportPoint(Input.GetTouch(0).position);
对此
Vector3 touchPosWorld = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);