1. 程式人生 > >世界座標轉到UGUI座標

世界座標轉到UGUI座標

public static Vector3 WorldToUI(Camera camera,Vector3 pos){
        CanvasScaler scaler = GameObject.Find("UIRoot").GetComponent<CanvasScaler>();
 
        float resolutionX = scaler.referenceResolution.x;
        float resolutionY = scaler.referenceResolution.y;
 
        Vector3 viewportPos 
= camera.WorldToViewportPoint(pos); Vector3 uiPos = new Vector3(viewportPos.x * resolutionX - resolutionX * 0.5f, viewportPos.y * resolutionY - resolutionY * 0.5f,0); return uiPos; } public static Vector2 WorldToUIPoint(Transform worldGo) { Vector2 pos; RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform
as RectTransform, gameCamera.WorldToScreenPoint(worldGo.transform.position), canvas.worldCamera, out pos); RectTransform rect = transform.transform as RectTransform; return pos; }