Public Rect GetUIScreenRect(){

//目标ui

RectTransform rectTra;

Canvas canvas;

Camera cam=canvas.renderMode==RenderMode.ScreenSpaceOverlay?null:canvas.worldCamera;

//获取ui元素四个顶点的世界坐标
Vector3 worldCorners=new Vector3[4];
rectTra.GetWorldCorners(worldCorners);

Vector2 point1=RectTransformUtility.WorldToScreenPoint(cam,worldCorners[0]);
Vector2 point2=RectTransformUtility.WorldToScreenPoint(cam,worldCorners[2]);

//创建屏幕矩形
Rect screenRect=new Rect(point1.x,point1.y,point2.x-point1.x,point2.y-point1.y);
return screenRect;
}

更多推荐