unity3d ugui中如何获取ui控件位置?或者说如何将ugui中ui控件(组件)的坐标转化为屏幕坐标或canvas坐标(大坑)?
网上有一些转化坐标的方法,但我试了后发现都有问题,有一些方法和锚点的位置是有关的,比如锚点必须左下角,而且用他们的方法转化后还有比例问题,导致判断不准确。
他们是这么做的:设kongjian是我们要获取坐标的控件,那么
kongjian.GetComponent<RectTransform>().anchoredPosition.x 是x轴坐标
kongjian.GetComponent<RectTransform>().anchoredPosition.y是y轴坐标
这是个大坑,他是根据四个锚点的中心位置来计算的,你锚点位置设置不同,计算结果也不同。
还有人是这么算的:
他们使用RectTransformUtility.