Unity3d 中如何获取任意UI组件Rect的左下角与右上角在屏幕的坐标
1.先取得该rect对应的UICamera,
2.然后使用算出rect的左下角的本地坐标(这个本地是指以rect的质心即pivot做标准):
根据该rect的pivot和尺寸确定本地坐标localpos,然后localtoworld转为世界坐标worldpos
3.使用camera的worldtoscreen函数把worldpos转成screenpos
4.done
Vector2 min = Vector2.zero;
Vector2 max = Vector2.zero;
if (mRectTransform[i].anchorMin == mRectTransform[i].anchorMax)
{
min = new Vector2(mRectTransform[i].anchoredPosition.x - mRectTransform[0].rect.width,
Screen.height + mRectTransform[i].anchoredPosition.y);
max = new Vector2(mRectTransform[i].anchoredPosition.x,
Screen.height + mRectTransform[i].anchoredPosition.y + mRectTransform[0].rect.height);
}
像这样!