1 /// <summary>
2 /// 世界坐标转UI坐标
3 /// </summary>
4 public static bool WorldToUILocalPoint(RectTransform canvas,Transform worldTarget,out Vector2 uiPos, Camera camera = null)
5 {
6 Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(Camera.main, worldTarget.position);
7 //再将屏幕坐标转换UI坐标
8 Vector2 localPoint;
9 if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas, screenPoint, camera, out localPoint))
10 {
11 uiPos = localPoint;
12 return true;
13 }
14 uiPos = Vector2.zero;
15 return false;
16 }
17 /// <summary>
18 /// 世界坐标转UI坐标
19 /// </summary>
20 public static bool WorldToUIWorldPoint(RectTransform canvas, Transform worldTarget,out Vector3 uiPos, Camera camera = null)
21 {
22 Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(Camera.main, worldTarget.position);
23 //再将屏幕坐标转换UI坐标
24 Vector3 localPoint;
25 if (RectTransformUtility.ScreenPointToWorldPointInRectangle(canvas, screenPoint, camera, out localPoint))
26 {
27 uiPos = localPoint;
28 return true;
29 }
30 uiPos = Vector2.zero;
31 return false;
32 }