世界坐标转UI坐标

 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         }

 

posted @ 2022-07-12 17:13  枫亦  阅读(15)  评论(0)    收藏  举报