Unity 3D--Camera摄像机组件
正如电影中的镜头用来将故事呈现给观众一样,Unity的相机用来将游戏世界呈现给玩家。你始终至少有一个相机在场景中,你也可以有多个。多相机可以给你一个双人分屏效果或创建高级的自定义效果。你可以让相机动起来,或用物理(组件)控制它们。几乎你能想到的任何事,都可以用相机变成可能,而且为了适合你的游戏风格,你可以用典型的或特殊的相机类型。
相机是为玩家捕捉和显示世界的一种装置。通过定制和操作相机,可以让你的游戏外观与众不同。在一个场景中你可以有数量不限的相机。它们可以被设置为以任何顺序来渲染,在屏幕上的任何地方来渲染,或仅仅渲染屏幕的一部分。
Properties 属性
- Clear Flags 清除标记决定屏幕的哪部分将被清除。当使用多个相机来描绘不同的游戏景象时,利用它是非常方便的
- Background 背景在镜头中的所有元素描绘完成且没有天空盒的情况下,将选中的颜色应用到剩余的屏幕
- Culling Mask 剔除遮罩包含或忽略对象的层由相机来渲染。在检视视图中为你的对象指派层
- Projection 投射切换摄像机的模拟透视功能
- Perspective 透视相机将用完全透视的方式来渲染对象。
- Orthographic 正交相机将用没有透视感的方式均匀地渲染对象
- Size 大小
当设置了正交时摄像机的视口大小。 - Field of view 视野范围相机的视角宽度,以及纵向的角度尺寸。
- Clipping Planes 剪裁平面从相机到开始渲染和停止渲染之间的距离。
- Near 近点开始描绘的相对于相机最近的点。
- Far 远点开始描绘的相对于相机最远的点。
- Normalized View Port Rect
标准视口矩形用四个数值来表示这个相机的视图将绘制在屏幕的什么地方,使用屏幕坐标系(值0-1)。 - X相机视图将进行绘制的水平位置的起点
- Y相机视图将进行绘制的垂直位置的起点
- W (Width) 宽度相机输出到屏幕上的宽度
- H (Height) 高度相机输出到屏幕上的高度
- Depth 深度绘图顺序中的相机位置,具有较大值的相机将被绘制在具有较小值的相机的上面
- Rendering Path
渲染路径该选项定义相机将要使用的渲染方法 - Use Player Settings
使用播放器设置该相机将使用任意一个播放器设置中所设置的渲染路径 - Vertex Lit 顶点光照本相机对所有对象的渲染会作为顶点光照对象来渲染
- Forward 快速渲染所有对象将按每种材质一个通道的方式来渲染,如同在Unity2.x中的标准
- Deferred Lighting 延迟照明
(Unity Pro only
所有对象将无照明绘制一次,然后所有对象的照明将一起在渲染队列的末尾被渲染。 - Target Texture 目标纹理
(Unity Pro/Advanced only)请参考Render Texture,该页包含了相机视图的输出。这个引用属性将禁用相机渲染到屏幕的功能。
详解介绍几个主要属性:
相机对于将你的游戏显示给玩家是必不可少的。它们可以被定制、被脚本化、或被父子化(不好翻译,只好这样)以实现几乎任何可以想象的效果。对于一个益智游戏,你要保持相机处于静态显示全部视角。对于第一人称射击游戏,你应该将相机作为玩家角色的子对象,并将其放置在与角色的眼睛等高水平上。对于一个赛车游戏,你可能更希望让相机跟随玩家的车辆。
你可以创建多个相机并且给每一个分配不同的深度。相机是按深度从低到高来绘制的,换言之,一个深度为2的相机将绘制在一个深度为1的相机之上。你可以调整标准视口矩形(参照前面的属性列表)的属性值来改变其大小和其在屏幕上的位置。这样你就可以创建多个小视窗,如导弹控制器,小地图窗口,后视镜等等。
Clear Flags 清除标记
每个相机在渲染时会存储颜色和深度信息。屏幕的未绘制部分是空的,默认情况下会显示天空盒。当你使用多个相机时,每一个都将自己的颜色和深度信息存储在缓冲区中,还将积累大量的每个相机的渲染数据。当场景中的任何特定相机进行渲染时,你可以设定清除标记以清除缓冲区信息的不同集合。可以通过下面四个选项之一来完成:
1.Skybox 天空盒
这是默认设置。在屏幕上空的部分将显示当前相机的天空盒。如果当前相机没有设置天空盒,它会默认使用渲染设置(在Edit->Render Settings里)中选择的天空盒。然后它将退回使用背景颜色。另外天空盒组件可以添加到相机上。如果你想创建一个新的天空盒,您可以使用本指南。
2.Solid Color 纯色
屏幕上的任何空的部分将显示当前相机的背景颜色。
3.Depth Only 仅深度
如果你想绘制一个玩家的枪而不让它在环境内部得到裁剪,你要设置一个深度为0的相机来绘制环境,还要另一个深度为1的相机单独绘制武器。该武器相机的清除标记应设置为仅深度。这将保持环境的图形显示在屏幕上,但会丢弃所有关于每个对象在三维空间中的位置的信息。当枪被绘制出来,不透明的部分将完全覆盖任何已绘制的事物,而不管枪到墙之间如何接近。(这部分看起来很费劲)
4.Don't Clear 不清除
该模式不清除任何颜色或深度缓存。其结果是,每帧绘制在下一帧之上,造成涂片效果。这不是用于游戏的典型方式,最好是与自定义着色器一起使用。
Culling Mask 剔除遮罩
剔除遮罩使用层有选择地渲染一组对象。有关使用层的信息可以在这里找到。
通常好的做法,是把用户界面放到不同的层,然后用一个独立相机单独渲染UI层。
为了使UI显示在其他相机视角的顶部,你还需要设置清除标记为Depth only,并确保UI相机的深度比其他相机高。
Render Texture 渲染纹理
此功能仅适用于Unity Pro版,它将放置相机的视图到一个纹理上,该纹理可以被应用到另一个对象。这使得它可以方便地创建体育场大屏幕、监控摄像机、倒影等等效果。
提示
- 相机可以像其他对象一样被实例化、父子化和脚本化
- 为提高赛车游戏的速度感,请使用高视野范围。
- 如果你添加一个刚体组件,相机可用于物理模拟。
- 在你的场景中你可以使用的相机数量是没有限制的。
- 正交相机可以很好地用于制作3D用户界面。
- 如果你正遭遇深度问题(表面互相接近闪烁),尝试设置Near Plane尽可能大。
- 相机无法同时渲染到屏幕和渲染纹理,只能有一个。
- Pro版有一个渲染相机的视图到纹理的选项,称为渲染到纹理,可以得到更独特效果。
- Unity预装了相机脚本,在Components->Camera Control中可以找到。用它们来实验以体会"一切皆有可能"。
Unity 3D--Camera摄像机组件相关推荐
- unity 3D场景摄像机跟随人物
3D场景摄像机跟随人物 2d场景和3d场景跟随不一样,但是有些还是相同的,就因为3d场景中人物旋转方向导致摄像机不能始终和人物方向一致很麻烦.所以下面提供一种挺不错的方法来帮助你. 效果如下: 效果就 ...
- Unity Camera摄像机组件
Clear Flags:摄像机的背景模式 Skybox:天空盒(默认选项),屏幕空白处显示当前摄像机的天空盒,没有天空盒则会显示背景色 Solid Color:空白处显示默认设置的背景色 Depth ...
- Unity 3D系列 摄像机围绕主角进行旋转、缩放
一.开发环境 Unity版本: 2020.1.0f1 二.建立摄像机结构 1.结构如下图 2.将CameraZoomContainer的Position X坐标设置为12,如图 3.将CameraUp ...
- Unity 3D 碰撞体(Collider)|| Unity 3D 触发器(Trigger)
在游戏制作过程中,游戏对象要根据游戏的需要进行物理属性的交互. 因此,Unity 3D 的物理组件为游戏开发者提供了碰撞体组件.碰撞体是物理组件的一类,它与刚体一起促使碰撞发生. 碰撞体是简单形状,如 ...
- Unity的camera组件
Unity的camera组件 文章介绍的是个大概,其中rendering paths和culling.clear flag还有更详细的用法 正交和透视 unity的camera支持两种投影方式:正交和 ...
- D45_摄像机组件Camera
目录 1.摄像机组件 1.Clear Flags_清除目标 1.SkyBox_天空盒子 2.Solid Color_单色填充 3.Depth only_仅深度填充 4.Dont Clear_不清理原来 ...
- Unity中的Camera相机组件详解
[组件界面] [前言] 本文介绍的是使用Unity默认的内置渲染管线下的Camera组件,使用URP或HDRP则不同. [属性] Clear Flags:清除标记.每个相机在渲染其视图时都会存储颜色和 ...
- 【Unity 3D 从入门到实战】Unity 3D 组件总结
目录 一,前言 二,常用组件 1,Transform 组件 2,Mesh Filter 组件 3,Box Collider 组件 4,Rigidbody 组件 5,脚本组件 三,总结 一,前言 组件是 ...
- Unity 3D学习笔记之一 界面介绍
因为学校的课程,本学期对Unity 3D有学习的要求,在博客中记录下自己的Unity学习之路(内容摘录自书本和视频,书本为Unity 4.x从入门到精通) 一.Unity界面介绍 首先进入U ...
- Unity 3D游戏编程自学#3——Unity 3D初步
1.开始 在创建的项目文件夹中,各个子文件夹的作用: Assets:保存游戏所需资源. Library:保存当前项目运行所需要的库. ProjectSettings:保存项目设置信息. Temp:保存 ...
最新文章
- 情感分析:基于循环神经网络
- 面试官:Thread.sleep(0) 有什么用?
- 研究生举报导师强迫学生延期毕业,事件再三反转,学校回应:开展调查
- Bottle: Python Web Framework
- Linux思维导图之inode、mv、cp和硬软链接
- python产品发布会_大型发布会现场的 Wi-Fi 应该如何搭建?
- 学硕论文选题计算机,计算机硕士论文题目分享
- 关于用Java写的贪吃蛇游戏的一些感想
- 软齿面主要失效形式_齿轮4种常见故障原因,如何采取预防措施,避免齿轮失效...
- PHP中include和require的区别详解
- vc_redist 各版本下载地址
- xshell绿色版安装,无限制
- python实现离散沃尔什变换_快速沃尔什变换(示例代码)
- 判断字符串是否为纯英文或纯中文
- STM32延时函数的四种方法
- 如何购买阿里云服务器和域名,Xshell连接服务器,域名备案。
- 安装redis时被意外攻击 newinit
- 离散数学复习:命题逻辑的推理理论
- 微信浏览器字体调整 PHP,h5禁止微信内置浏览器调整字体大小
- 神经网络(Neural Networks)
热门文章
- CentOS7.5虚拟机启动报错 Assuming drive cache:write through 和 SMBus Host Controller not enabled !
- vue壁纸网站源码 自适应手机端 自动采集360壁纸接口
- Win7安装新应用时提示Another installation is in progress
- uboot mailbox
- android扫描sd卡图片,Android SD卡 全盘文件扫描
- python爬虫(2.获取网页外链与内链)
- Nature综述:肠道菌群如何划分肠型
- ESP32 也能实现精美UI 使用 HaaS UI Lite (Python)打造音乐播放器
- 妖人柴:国外lead好做吗,从EMU的角度说点看法
- readingWaiting for Godot through the lens of Christian existentialism【翻译】