实现的功能是在3D场景中嵌套2DUI,Unity可窗口化,按比例缩放。
(本文不牵扯技术性脚本和代码)
首先建立新项目,这里使用Unity2020.3.16f1c1(中文)建立URP项目,使用自带场景进行实施。
可以看到这里有一个主相机,我们建立一个副相机,display层2;
紧接着我们设置一下固定的分辨率,1920*1080
两个场景的分辨率设置完成之后,在副相机底下新建canvas,对cavas进行设置
注意上中Canvas所需设置,然后双击副相机内的canvas添加一些组件,以供观察效果。
这里添加一个inputField和一个button供后期使用,此时运行可以看到cavas是固定的,如下图:
上图中cavas固定,且不影响3D场景的正常使用,可能有人注意到下面的tip,只需要把副相机的Audio listener脚本取消即可,如下图:
那么接下来,对项目的玩家设置进行设置,达到窗口化缩放目的。
上图中支持的纵横比可以根据实际进行选择,打包看效果。
可以看到下图,默认打开是窗口化的,我是4K屏。
我进行拖动缩放后的效果如下(动图):
可见3D场景不会受到影响,而CANVAS也是随着缩放,简单的目的实现了。
Over