unity3d实现多个相机控制场景呈现的一些记录。。
来源:互联网 发布:医生升级数据 编辑:程序博客网 时间:2024/05/17 08:02
好吧,今天一个朋友说起有关3D场景中使用的是广角相机导致前方的UI成出现了变形,(这个是不是可以用来做成变脸,呵呵),这里简单介绍一下在NGUI中使用多个相机的一点心得,当然不一定要NGUI哦。
就从我现在手上的项目举例得了
先上图:
场景里事实上我用了两个相机来做呈现工作,一个用于照射后面的3D仓库,一个用来照射前方的按钮啊~坦克啊这样,虽然前方的坦克也是3D的但是我们这里姑且把他认为前方的按钮和坦克都是属于2D的GUI部分好了。
现在看看编辑场景的截图:
可以清楚的注意到这两个部分其实根本不在一个平面内,他们在同一个空间的不同位置:
现在描述一下原理,仓库在背后,而坦克列表在前方,所以我们可以通俗认为先看到了仓库后看到了坦克,于是坦克的2D层挡在了仓库的前面,换句话说,他们两个有各自的相机,仓库相机先“看”,2D相机后“看”,而显示器就是我们的大脑,两个相机看到的结果都在脑袋中进行呈现,便有了这样的层次感。
我们看看结构表:
我已经将3D部分和2D部分开了
所以2D部分我用的是正交相机:
看到那个矩形了么?
而3D部分我用的是广角相机:
从预览图我们也可以注意到他们所照射的部分是不同的。
刚刚说到不同的层,我这里大概都会这样做,把2D层放在GUI layer
而3D层我就放在default了:
接着说到相机的“前”和“后”的问题。
首先看看3D层的相机设置:
这里需要注意的主要两个,
一个是culling mask,表示相机照的是哪个层的东东。
还有一个就是Depth了,值越小就越先看到。这里3D相机的depth的值是0,如果要让2D相机照射的东西呈现在前面,很容易想到2D的depth的值需要大于0才行哦~
还有一点:clear flags 这个表示如何处理自己照射到的层以外的东东,我这里选择了清楚为黑色。注意,如果是前面的相机(例如这里的2d相机)可不能这么做,如果这样后“看”到的东西的相机就把先”看“到东西相机呈现的所有东西都抹掉了。
经过上面的推述:
2D相机我用的clear flags 为depth only,效果和don't clear一样哦~,各位可以试试。
恩, 我看这个说的差不多了,已经很罗嗦了~~~
- unity3d实现多个相机控制场景呈现的一些记录。。
- unity3d实现LOL中的相机控制功能
- unity3d实现相机对场景物体的旋转、缩放、平移查看功能、近似于scene下查看场景的效果
- 关于Unity3d代码控制相机的cullingmask
- Unity3D 相机控制
- Unity3D场景搭建5:相机
- [Unity3D]多个摄像机进行场景的切换
- Unity3D游戏场景之控制模型移动、旋转和相机跟随
- Unity3D Quaternion的一些记录
- Unity3d实现相机的跟随缩放旋转
- unity3d中实现相机的跟随
- Unity3D场景异步加载的实现案例
- Unity3D:按钮实现场景的跳转
- 【Unity3D自学记录】Unity3d高通实现同时识别多个标志
- Unity3D 场景摄像机控制 插件包
- unity3d实现场景截图
- Unity实现在场景中自由移动游览的相机
- 学习呈现的一些方法!
- 计算机网络技术期末考试2010模拟试题及答案
- linux批量修改命令总结
- JSP技术模型(四)JSP脚本元素和注释
- C++中对象的内存布局
- 计算机网络试卷(计算机网络_谢希仁__第五版)
- unity3d实现多个相机控制场景呈现的一些记录。。
- Unity3d关于使用android相关功能和外链包??解决办法!!
- Sphinx语音识别学习记录 (一)-基本运行测试
- java面试系列题目1------转述
- unity3d中暴露变量使用上的一个注意点~
- vim配置(~/.vimrc)
- 计算机网络_谢希仁_第五版·考试重点整理
- unity3d的物件旋转功能简单封装~
- TDD:Test-Drive-Development