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;
}
本文介绍了在Unity 3D项目中如何混合使用2D Canvas,包括设置2D Canvas的摄像机为正交投影,调整摄像机的size以及解决3D物体与2D物体坐标系比例问题。适配策略通过调整摄像机的size来实现不同设备上的正确显示。
1万+

被折叠的 条评论
为什么被折叠?



