问题描述:在cardboard中做UI是一个很头疼的问题。因为cardboard组件会自动屏蔽UI,默认的UGUI系统不会显示,NGUI也是如此,GUI能显示,但不会分屏。而开发VR时,不可避免的要使用UI,自己开发UI成本还太大。虽然谷歌SDK中有介绍使用UGUI的方式,但不好使,示例也不清晰。所以还是探索NGUI的方式更好,毕竟NGUI底子还是UGUI,毕竟NGUI自己还有很多拓展插件,比如itween、比如XXX。
解决方法:将NGUI的摄像头转到主摄像头上,不采用层次叠加的方式。
平台工具:1、NGUI 3.9.4 2、 5.5.1f1 3、谷歌白日梦平台for unity。
工程原码:链接:http://pan.baidu.com/s/1pLjmLvl 密码:8r8x
举例:
1、新建场景,将VRSDK,gvrViewermain预设拖到场景中,//这个预设附带的脚本会自动将场景中所有的摄像头变为vr分镜摄像头
2、新建NGUI根,将自带的摄像头删去。
3、新建锚(anchor),将anchor中的摄像头属性改为主摄像头,并给主摄像头添加NGUI camera脚本,添加点击事件
4、将NGUI所有物体移动到主摄像头下,作为子对象,将主摄像头可拍摄的层添加UI层或所有层
5、将NGUI位置position归零,与主摄像头一致,在本地坐标系下,移动NGUI到主摄像头前,比near的距离稍大即可
最终效果:可以看到UI已经分屏,而且能触发点击事件,完美结合。