Unity 2D射线与 3D射线 UI射线

3d射线



if (Input.GetMouseButton(0))

{

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//从摄像机发出到点击坐标的射线

RaycastHit hitInfo;

if (Physics.Raycast(ray, out hitInfo))

{

Debug.DrawLine(ray.origin, hitInfo.point);//划出射线,只有在scene视图中才能看到

GameObject gameObj = hitInfo.collider.gameObject;

Debug.Log("click object name is " + gameObj.name);

}

}





2d射线



RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition),Vector2.zero);

if(hit.collider != null)

{

Debug.Log("Target Position: " + hit.collider.gameObject.name);

}

推荐阅读更多精彩内容