RectTransformUtility类提供了一个ScreenPointToLocalPointInRectangle方法,如下:
publicstaticbool ScreenPointToLocalPointInRectangle
(
RectTransform rect,
Vector2 screenPoint,
Camera cam,
out Vector2 localPoint
);

官方提供了如下的参数解释:
rect | 要在其中查找点的 RectTransform。 |
cam | 与屏幕空间位置关联的摄像机。 |
screenPoint | 屏幕空间位置。 |
localPoint | 矩形变换本地空间中的点。 |
这里需要说明的是两点。
一、如果对应的Canvas显示类型是Overlay,那么cam应设置为null。
二、这里localPoint参数对应的是RectTransform.localPosition,不是RectTransform.anchoredPosition;