zoukankan      html  css  js  c++  java
  • 世界坐标转到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;
    }
    
  • 相关阅读:
    [转]进程间通信----pipe和fifo
    [转]udev
    [转]netlink
    [转]进程间通信-----管道
    [转]socket
    [转]armv8 memory system
    [转]内核态和用户态
    [转]dpdk内存管理
    meeting and robert rules
    notion
  • 原文地址:https://www.cnblogs.com/unity3ds/p/9928609.html
Copyright © 2011-2022 走看看