【Unity】3d项目中用到2d Canvas设置,以及适配策略

3d和2dcanvas混用时常出现坐标系混乱

以设计分辨率为768*1024为例

1.摄像机设置

将canvas的摄像机projection设置为orthographic


这时候size为设计分辨率的一般 (1024/2)

2.canvas设置


注意这时候2d物体和3d物体的坐标size比为 100:1 要想3d物体显示正常 要*100倍

适配策略

将一下代码挂到摄像机上

原理是感觉设备宽高改摄像机的size是让其缩放到合理的大小

 if ((float)(Screen.width / (float)Screen.height) >= ((float)768 / (float)1024)) //当设备比较宽的时候
        {
            float size = 768 / 2 / ((float)(Screen.width / (float)Screen.height));
            //if (size<=800) {
            //    size = 800;
            //}
            transform.GetComponent<Camera>().orthographicSize = 512;
        }
        else { //当设备比较窄的时候
            float size = 768 / 2/( (float)(Screen.width / (float)Screen.height));
           
            transform.GetComponent<Camera>().orthographicSize = size;
        }

原文链接:加载失败,请重新获取