我有一个场景,我有一个带有精灵渲染器和图像的游戏对象。游戏对象有一个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:
Debug.DrawLine直接通过我的精灵。
脚本在相机上,相机Z位置为-10
修改 在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;
}
}