Unity3d 中如何获取任意UI组件Rect的左下角与右上角在屏幕的坐标

Unity3d 中如何获取任意UI组件Rect的左下角与右上角在屏幕的坐标

2个回答

1.先取得该rect对应的UICamera,
2.然后使用算出rect的左下角的本地坐标(这个本地是指以rect的质心即pivot做标准):
根据该rect的pivot和尺寸确定本地坐标localpos,然后localtoworld转为世界坐标worldpos
3.使用camera的worldtoscreen函数把worldpos转成screenpos
4.done

DS623089578
DS623089578 这个分辨率不一样获取的值不太一样
一年多之前 回复

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);
}

                    像这样!
DS623089578
DS623089578 如果在锚点拉伸情况下怎么办?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!