unity3d中摄像机只看对应的对象.

本文介绍了如何在Unity3D中通过使用多个摄像机和调整Layer、Clear Flags、Culling Mask等参数,实现背景动态而UI元素保持静止的效果。主要步骤包括创建新的Layer、设置背景对象和UIRoot的Layer、调整摄像机的投影类型、深度和Culling Mask,以及处理Shader问题,确保摄像机能够正确显示特定对象。

有时要做一个效果就是背景图在动,但是背景图上面的一些UI是不动,然后就可以用多个摄像机来实现了.


1、新建一个ngui Texture作为背景,当然这里也可以是其他对象.


然后在检视面板的右上方有个layer.点击它会显示好多layer供选择,这里新建一个back.并把新建的背景图的layer改为back,

(PS,在这里我遇到了问题导致我弄这个的时候搞了很久,原因就是:UIRoot的layer是defualt,然后我修改back对象的layer,运行过后back对象的layer又变成了defualt.导致后边的指定摄像机看不到背景.这可能是u3d要保持跟父对象一致层的原因吧.)

点击UIRoot下的camera


修改Clear Flags的值为Depth only.(用深度来渲染).

修改Culling Mask中的值,改为back.这个camera的layer无关紧要.

修改Projection的值为Orthographic(正交视图).

修改Depth的值,按需要来修改就好,值越大的看到的越上.



然后新建一个Plane,为什么呢?为什么不新建一个Texture来继续做背景呢,这里的用的插件是ngui,我如果创建新的ngui对象,u3d会自动把该对象放到UIRoot下,然后就无法改动该对象的layer值了,所以新建了一个Plane(平面),然后把需要的背景直接托给Hierarchy面板中的Plane对象,结果如图:


要修改的值有Shader(着色器),改成如图就好,因为如果默认的话在某些角度看不见,camera也捕捉不到。。。

最后修改它的layer值.

新建一个backCamer摄像机,参数如图:


修改如背景图.只是这里的Culling Mask要改成Plane的layer的值,这样就对应起来了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值