Unity 摄像机组件
今天看一下unity3d里面的摄像机是怎么调用和操作的。
打开unity3d新建一个工程。在我们打开工程的时候unity3d会主动添加一个Main Camera,在Hierartchy视图中。点击Main Camera在Inspector中出现Main Camera的组件信息。如图
在camera组件中可以对是相机的一些属性进行调节。
Clera Flags:清除标记。下拉菜单一共有4个选项。
Skybox:天空盒,背景显示天空盒。如果该相机没有添加天空和则显示背景颜色。Solid Color:纯色,背景显示我没在Background中调制的颜射。Depth Only :仅深度不显示任何背景。空白处为透明。Don't Clear :不清除,每帧绘制在下一帧之上,造成涂片效果。一般很少用到。
Background :背景颜色。
Culling Mask :剔除遮罩,通过标签来选择物体是否被相机渲染。
Projection:相机类型,分为透视相机和正交相机。
perspective:透视相机。
Orthographic:正交相机。
区别如图:
透视效果
正交效果
当我们选择perspective是Field of view:视野范围,调节摄像机的视野。
当我们选择Orthographic是size:设置正交相机的视口大小。
Clipping Planes :Near为近距裁剪,Far为远距裁剪。
Normalized View Port Rect:用四个数值来表示这个相机的视图将绘制在屏幕的什么地方,使用屏幕坐标系(值0-1)。(注:屏幕坐标系的0,0点是在屏幕的左下角的)
在unity中做屏幕的分屏用到的就是这个参数。
举个例子说明一下分屏的方法:
首先创建一部相机。
将Main Camera相机的NormalizedView Port Rect属性里的x:0,y:0.5,w:1,h:0.5。
意思是是相机显示的坐标为(0,0.5)宽度为1,高度为0.5。
将新添加的Camera的Normalized ViewPort Rect属性里的x:0,y:0,w:1,h:0.5。
意思是是相机显示的坐标为(0,0.5)宽度为1,高度为0.5。
Game视图将显示如下结果
Depth :深度,用来确定不同相机的绘制顺序。具有较大值的相机将被绘制在具有较小值的相机的上面。
Rendering Path:渲染路径,下面有四个选项Use Player Settings:使用播放器设置。Vertex Lit :顶点光照。Forward :快速渲染。Deferred Lighting: 延迟照明。根据项目需求选择相应的渲染路径。
Target Texture 目标纹理,它将放置相机的视图到一个纹理上,该纹理可以被应用到另一个对象。这使得它可以方便地创建体育场大屏幕、监控摄像机、倒影等等效果。
Flare Layer:光晕层,让镜头光晕(LensFlares ) 出现在图像中。默认情况下,相机已经贴上光晕层(FlareLayer)。
GUI Layer:用户界面层,使二维图形用户界面可以渲染。在检视面板点击GUI层(GUI Layer)的复选框,可以启用和禁用在相机绘制GUI。
Audio Listener:音频侦听器,音频监听器扮演着像麦克风这样的设备。它接收任何在场景输入的音频源(AudioSource),并通过计算机的扬声器播放声音。
这样一部摄像机的基本属性已经介绍完了。下面我们看下怎么给场景添加天空盒。
第一步:选择相机,点击菜单栏中的component->Rendering->Skybox.
然后在Inspector视图最下面多了一栏Skybox。
然后给他添加一个天空球。天空球的制作方法,
一:新建一个材质球
选择新建的材质球,命名为skybox1,如图所示将材质设置为Skybox类型的。
结果如图:
在相应的地方添加相应的图片。这样一个天空球就制作完成了。
还有一个简单方法就是导入unity3d自带的资源里面有自作完成的天空球。
(注:自己制作天空球是要注意图片的属性 Wrap Mode属性
应改为Clamp格式,否则会出现接缝。)
将天空球制作完毕后添加的摄像机上,如图:
下面我们来看下怎么实现两个相机的动态切换。
首先我们在unity中创建两个相机。分别为camera0,camera1.
创建一个js脚本文件。写入一下代码。
- var camera0 : Camera; //定义一个名字为camera0的相机对象
- var camera1 :Camera; //定义一个名字为camera1的相机对象
- function Update ()
- {
- if (Input.GetKey("1")) //如果敲击键盘的"1"
- {
- camera1.enabled = true; //camera1激活
- camera0.enabled = false; //camera1停止
- }
- if (Input.GetKey ("0")) //如果敲击键盘的"0"
- {
- camera1.enabled = false; //camera1停止
- camera0.enabled = true; //camera1激活
- }
- }
复制代码
将脚本添加到一个游戏物体上运行游戏。敲击键盘的1和0键。检测代码。
Unity 摄像机组件的更多相关文章
- 使用Unity NGUI-InputField组件输入时发现显示为白色就是看不到字体
今天在接入android支付宝 SDK时,打包运行时,发现使用Unity NGUI-InputField组件输入时发现显示为白色就是看不到字体,查找一下发现是与android交互存在的问题, 只需在A ...
- Unity 摄像机Clear Flags和Culling Mask属性用途详解
原文地址:http://blog.csdn.net/tanmengwen/article/details/8798231 1.简述两个属性 1.1 Clear Flags 清除标记 每个相机在渲染时会 ...
- Unity摄像机的正交视图与透视图
Unity Camera的两种模式 Projection:投射,投影 Unity的MainCamera的Projection可选择Perspective[透视],Orthographic[正交],是指 ...
- [原]Unity3D深入浅出 - 摄像机组件(Camera)
在Unity中创建一个Camera后,除了默认带一个Transform组件外,还会附带Flare Layer.GUI Layer.Audio Listener等4个组件,如下图. ClearFlags ...
- Unity 代码组件获取和使用、Resources加载、OnGUI、Time、Mathf、PlayerPref
1. 游戏物体组件获取.添加组件(重要) 作业分析: 子弹生成:坦克生成----->坦克控制类里生成子弹 子弹飞行:子弹自己飞,不能通过坦克控制类进行管理: 获取代码组件,设置子弹速度: ...
- 【转】Unity摄像机的使用二:摄像机的切换
http://blog.csdn.net/liujunjie612/article/details/45847877 我们接着上一篇博文继续研究摄像机,这篇我们说下Unity中摄像机的切换,说到切换, ...
- unity碰撞组件、刚体组件
游戏导入标准资源包“Character Controllers”后可以为游戏对象添加 character(角色控制器)组件: 添加角色控制器组建以后可以控制游戏对象移动: 角色控制器组件因为与碰撞组件 ...
- unity音频组件
unity 支持的四种音频格式: .AIFF 适用于较短的音乐文件可用作游戏打斗音效 .WAV 适用于较短的音乐文件可用作游戏打斗音效 .MP3 适用于较长的音乐文件可用作游戏背景音乐 .OGG ...
- Unity 各个组件参数总结
今天在蛮牛教育上学习了NGUI的课程下面给大家总结了一些小知识点希望对大家有帮助UICamera-可以添加到任何相机,包含事件系统.UICamera是每个UI的重要组成部分.它负责发送Camera中所 ...
随机推荐
- C#对.CSV格式的文件--逗号分隔值文件 的读写操作及上传ftp服务器操作方法总结
前言 公司最近开发需要将数据保存到.csv文件(逗号分隔值 文件)中然后上传到ftp服务器上,供我们系统还有客户系统调用,之前完全没有接触过这个,所以先来看看百度的解释:逗号分隔值(Comma-Sep ...
- android两种基本联网方式与一种第三方开源项目的使用
安卓请求网络的三种方式 在请求网络的时候一般常用的提交方式是post或者get请求,post请求安全,传输大小无限制,但是代码量多些,get请求是浏览器有大小限制,用户提交的信息在浏览器的地址栏显示出 ...
- 判断IE版本的HTML语句详解,如:[if lte IE 9]……[endif]
我们常常会在网页的HTML里面看到形如[if lte IE 9]……[endif]的代码,表示的是限定某些浏览器版本才能执行的语句,那么这些判断语句的规则是什么呢?请看下文: <!--[if ! ...
- spring框架详解: IOC装配Bean
1 Spring框架Bean实例化的方式: 提供了三种方式实例化Bean. 构造方法实例化:(默认无参数) 静态工厂实例化: 实例工厂实例化: 无参数构造方法的实例化: <!-- 默认情况下使用 ...
- curl get
//Get方式实现 //初始化 $ch = curl_init(); //设置选项,包括URL curl_setopt($ch, CURLOPT_URL, "http://www.jb51. ...
- Spark高级数据分析中文版-读者交流
第二章: 备注:1.本书第二章样例数据由于才有的是短链接,国内的用户可能无法下载.我把数据集拷贝到百度网盘上.大家可以从这个地方下载:http://pan.baidu.com/s/1pJvjHA7 谢 ...
- js动画之同时运动
一个物体可以同时做多个运动,而不是完成一个运动再一个运动,而是让你感觉他们是同时发生的. 直接上代码 <!DOCTYPE html> <html lang="en" ...
- VS调试时下不到断点的处理方式。
调试无法命中断点的情况我想很多人遇到过,反正我是遇到过很多次了,有时候是没有生成项目或解决方案,有时候是调试版本不一致. 当然还有其他的情况都已经忘记如何处理的了. 今天在release模式下要调试代 ...
- Android系统文件夹组织结构
- windows 下安装redis并且测试(php)
Window 下安装 下载地址:https://github.com/dmajkic/redis/downloads. 下载到的Redis支持32bit和64bit.根据自己实际情况选择,将64bit ...