多相机协作
多摄像机同时协作运行
Unity中,大家应该看过基础视频的都是知道,都有一个层的概念,也就是我们选择的layer,而摄像机中我们可以通过设置CullingMask来决定该摄像机只渲染哪些层的物体。对于UI来说,这个原理也一样,因为其实NGUI的每一个控件元素,都是一个GameObject,都有自己的层,每一个UIRoot都会自带一个UICamera来渲染UI。
利用这个原理,我们可以实现多个摄像机来进行UI的渲染,例如我们可以放一个3d相机负责渲染3DUI,还可以放置一个2D摄像机,负责渲染2DUI,理论上是可以放置无限多个摄像机来分辨渲染不同层的内容。之前有讲过就是如果场景中两个摄像机都渲染同一个层的时候,就会造成画面重复显示。
多摄像机的应用范围
多摄像机我们一般是应用于又有3D物体又有2DUI或者有粒子等等情况的时候,这种情况我们一般会使用一个UI摄像机来负责渲染UI控件,用另一个摄像机来渲染3D模型,然后让这两个摄像机渲染的内容叠加。之前我们讲过的NGUI的案列,就是中间一个3D人物模型,有一个独立的摄像机渲染,然后周围的背包和装备栏是用另外一个独立的UI摄像机进行渲染的,这个在我们现在很多的游戏中都有。还有就是游戏进行中的画面,其实也是一个3D相机一个UI相机混合的。
创建相机
创建相机都很简单了,其实我们的UIRoot就自带了一个UI相机了,然后我们只需要另外再创建一个相机来渲染3D的物体即可了。这里需要注意一下的就是,我们必须要规划好每个物体的layer,不要混乱,同时要设置好每个相机的CullingMask,确保场景中的摄像机不会重复渲染同一个层,同时保证尽量不要用太多相机,不然必然混乱。
NGUI Camera
MainCamera
叠加后