设置后期处理栈(post-processing stack)
post-processing stack可以在资产商店下载。
首先,您需要将"Post Processing Behaviour"脚本添加到相机GameObject中。您可以通过选择相机并使用以下方式之一:
- 将PostProcessingBehaviour.cs脚本从项目窗口拖动到相机。
- 使用菜单Component > Effects > Post Processing Behaviour。
-
使用检查器中的添加组件按钮。
添加后期处理行为脚本
您现在将使用一个空配置文件配置一个行为。下一步是使用以下方法之一创建自定义配置文件:
- 右键单击项目窗口,然后选择Create > Post-Processing Profile。
-
使用菜单Assets > Create > Post-Processing Profile。
这将在您的项目中创建一个新的资产。
后期处理配置文件是项目资产,可以在场景/摄像机之间以及不同项目之间或资产存储上轻松共享。这使得创建预设更容易(即,用于桌面的高质量预设或移动设备的较低设置)。
选择配置文件将显示用于编辑配置文件设置的检查器窗口。
新建的后处理配置文件
要将配置文件分配给行为,您可以将其从项目面板拖动到组件,或者在检查器中使用对象选择器。
分配给Behavior脚本的后处理配置文件
选择配置文件后,您可以使用检查器中每个效果的复选框来启用或禁用各个效果。您可以在各个文档页面中找到有关每个效果的更多信息。
抗锯齿(Antialiasing)
后处理堆栈中提供的算法有:
- 快速近似抗锯齿(FXAA)
-
时间抗锯齿(TAA)
FXAA
FXAA是最节约性能的技术,推荐用于不支持TAA所需的运动矢量的移动和其他平台。但是它包含多个质量预设。
选择FXAA时的抗锯齿效果的UI
属性
属性:
功能:
预置
使用的质量预设。提供性能和边缘质量之间的权衡。
优化
-
降低质量设置
要求
-
着色器模型3
有关更多详细信息和兼容硬件列表,请参阅" 图形硬件功能和仿真"页面。
TAA
建议使用在桌面平台。
略
相机(Camera)
相机是捕获并向播放器显示世界的设备。通过定制和操作相机,您可以使您的游戏的演示真正独一无二。您可以在场景中拥有无限数量的相机。它们可以设置为以任何顺序呈现,在屏幕上的任何位置,或仅屏幕的某些部分。
属性
属性:
功能:
清除标记
(Clear Flags)
确定屏幕的哪些部分将被清除。当使用多个相机来绘制不同的游戏元素时,这会很方便。
背景
(Background)
所有在视图中的元素之后应用于剩余屏幕的颜色已被绘制(并且没有天空盒时)。
剔除蒙版
(Culling Mask)
包括或省略由相机呈现的对象层。在检查器中为对象分配层。
投影
(Projection)
切换相机的能力来模拟透视。
透视
(Perspective)
相机将以完整的方式呈现透视对象。
正交
(Orthographic)
相机将使对象均匀,无任何视角。注意:正交模式不支持延迟渲染。始终使用前向渲染。(2D模式默认正交)
尺寸(选择正交时)
设置为正交时相机的视口大小。
剪切面
(Clipping Planes)
从相机开始和停止渲染的距离。
近(Near)
相对于相机绘图的最接近距离。
远(Far)
相对于相机绘图的最接远距离。
视口矩形
四个值指示屏幕上将显示该相机视图的画面。在视口坐标中测量(值0-1)。
X
将绘制相机视图的开始水平位置。
Y
将绘制相机视图的开始垂直位置。
W
相机输出在屏幕上的宽度。
H
相机输出在屏幕上的高度。
深度
(Depth)
相机的位置在绘制顺序。具有较大值的相机将被绘制在具有较小值的相机之上。
渲染路径
(Rendering Path)
用于定义相机将使用什么渲染方法的选项。
使用图形设置
(默认值:Use graphics setting)
本相机将使用播放器设置中设置的任何渲染路径。
目标纹理
(Target Texture)
引用渲染纹理,它将控制相机视图的输出。设置此引用将使该摄像头无法渲染到屏幕上。
HDR
启用此相机的高动态范围渲染。
显示目标
(Target Display)
定义要呈现的外部设备。1到8之间。
细节
正交
透视相机。
正交相机。物体在这里距离不会变小
渲染纹理
这将将相机的视图放置在可以应用于另一个对象的纹理上。这使得轻松创建体育竞技场视频监视器,监控摄像机,反射等。
渲染纹理用于创建一个现场竞技场
目标显示
相机具有多达8个目标显示设置。可以控制摄像机呈现最多8个监视器之一。这仅在PC,Mac和Linux上支持。在游戏视图中,将显示相机检查器中所选的显示。
Script:Camera
Namespace: UnityEngine
继承于: Behaviour描述
Camera是一个设备,玩家通过它看世界。
屏幕空间点用像素定义,屏幕的左下为(0,0);右上是(PixelWidth,pixelHeight).Z的位置是以世界单位衡量的到相机的距离。
视口空间点是规范的并相对于相机的。相机的左下为(0,0);右上是(1,1);Z的位置是以世界为单位衡量的到相机的距离。
世界空间点是以全局坐标定义的(例如:Transform.position)。
静态变量
返回场景中所有相机
当前场景中相机的数量
当前用于渲染的相机,只用于低级的渲染控制(只读)
第一个启用的被标记为"MainCamera"的相机(只读)。变量
实际使用的渲染路径(只读)。
长宽比(宽度除以高度)。
背景色。
从相机空间到世界空间的变换矩阵(只读)。
被相机清除的标记。
这个用来选择性的渲染部分场景。
相机在渲染顺序上的深度。
相机生成怎样的一个深度纹理。
遮挡相机的触发事件图层
远裁剪面的距离。
相机的视野,以度为单位。
高动态范围渲染。
每层的消隐距离。
相机如何执行每层的消隐。
近裁剪面的距离。
相机是正交的(true),是透视的(false)?
在正交模式下相机的一半尺寸
相机有多高,以像素单位(只读)。
相机被渲染到屏幕像素中的位置。
相机有多宽,以像素单位(只读)。
设置自定义的投影矩阵。
相机被渲染到屏幕规范化坐标中的位置。
渲染路径。
虚拟眼相交点间距
立体渲染。
虚拟眼间距离
目标纹理。
透明物体的排序模式。
无论是否在渲染过程中相机都会使用遮挡剔除。
获取世界空间中相机的速度(只读)。
从世界到相机空间的变换矩阵。函数
计算并返回倾斜接近水平的投影矩阵。
使这个相机的设置与其他相机相同。
手动渲染相机。
从这个相机渲染到一个立方贴图。
用shader替代渲染相机。
恢复长宽比为屏幕的长宽比。
让投影反映正常的相机参数。
从相机上移除shader替换。
在场景中让渲染位置反映相机的位置
返回一条射线从摄像机通过一个屏幕点。
从屏幕空间到视窗空间的变换位置。
从屏幕空间到世界空间的变化位置。
使相机渲染用shader替换。
设置相机渲染到一个或多个RenderTextures所选择的缓冲区。.
返回从相机出发穿过视点的一个射线。
从视口空间到屏幕空间的变换位置。
从视窗空间到世界空间的变换位置。
从世界空间到屏幕空间变换位置。
从世界空间到视窗空间的变换位置。静态函数
返回当前场景中的摄像机数组。消息
OnPostRender在相机渲染场景之后调用。OnPreCull在相机开始裁剪场景之前调用。
OnRenderImage在所有渲染完成后被调用,来渲染图片的后期处理效果。
OnRenderObject 在相机渲染完场景以后被调用
如果物体可见,每个相机都会调用OnWillRenderObject。精灵(Sprite)
Sprite是2D图形对象。
Unity提供了一个占位符Sprite Creator,一个内置的Sprite Editor,一个SpriteRenderer和一个Sprite Packer
见导入和设置精灵在建立资产如下信息精灵在统一的项目。
工具
Sprite Creator
使用Sprite Creator在项目中创建占位符精灵,因此您可以继续开发,而无需源或等待图形。
Sprite Editor
该Sprite Editor可以让你从一个较大的图像中提取精灵的图形和图像编辑器中一个单独的贴图中编辑了一些组件图像。例如,您可以利用这一点,将角色的手臂,腿和身体作为单个元素保留在一个图像中。
SpriteRenderer
Sprite使用SpriteRenderer组件进行渲染。
Sprite Packer
使用Sprite Packer来优化项目中内存的使用和性能。
导入和设置Sprite
Sprites是Unity项目中的资产类型。您可以通过项目(project)视图看到它们。
将Sprites带入您的项目有两种方法:
-
在计算机文件资产管理器中,将图像直接放入Unity项目的Assets文件夹中。
Unity检测到它并将其显示在项目的项目(project)视图中。
-
在Unity中,转到 Assets>Import New Asset...以启动计算机文件资产管理器。
从那里选择所需的图像,Unity会将其放在" 项目(project)视图"中。
将您的图像设置为Sprite
如果您的项目模式设置为2D,您导入的图像将自动设置为Sprite。
- 点击资产以查看其导入(Import)检查器(inspector)。
-
将纹理类型(texture type)设置为Sprite(2D和UI)。
图1:在资产(Asset)检查器(inspector)中将纹理类型设置为Sprite(2D和UI)
Sprite Creator(精灵占位符)
使用此工具可以创建临时占位符精灵(2D)图形。您可以在开发过程中在项目中使用这些,然后将其替换为要使用的图形。
使用Sprite Creator
选择Assets>Create>Sprites,然后选择您要制作的占位符精灵(正方形,三角形,菱形,六边形或多边形)。
访问Sprite Creator
使用Sprite
您的新占位符精灵在您当前打开的Asset(资产)文件夹中显示为白色。新的sprite的名称默认为其形状名称,但您可以选择在首次创建时重命名您的sprite。如果您不确定要调用什么,请将其作为默认值; 您可以稍后更改它,点击它。
命名您的新精灵(Sprite)(或将其保留为默认值)
您可以将占位符精灵拖放到" 场景(Scene)视图"或" 层次(Hierarchy)结构"中,以便在项目中开始使用。
将您的占位符精灵拖放到"场景视图"中
更换您的占位符Sprite
要更改您的占位符精灵,请在" 场景视图"中单击它,然后通过" 检查器(inspector)"中的" Sprite Renderer"组件(component)进行编辑。
可以在Inspector(检查器)中的Sprite渲染器(Sprite Renderer)组件替换您的精灵
编辑Sprite字段:您可以单击输入字段右侧的小圆圈,调出Sprite Selector(选择器),您可以在其中浏览并从可用的2D图形资产菜单中进行选择。
Sprite选择器
细节
- Sprite Creator制作4x4白色PNG轮廓纹理。
-
占位符精灵是由算法生成的原始多边形(例如三角形,六边形,多边形等)。
Sprite Editor(精灵编辑器)
有时一个sprite纹理只包含一个图形元素,但是通常更方便的将几个相关的图形组合到一个图像中。例如,图像可以包含单个角色的组成部分,如同车轮独立于身体移动的汽车。通过为此目的提供一个Sprite Editor,Unity可以轻松地从合成图像中提取元素。
注意:
确保您要编辑的图形的纹理类型设置为Sprite(2D和UI)。
具有多个元素的Sprite纹理需要在Inpsector中将Sprite Mode设置为Multiple(多)[默认是Single(单)]。
打开Sprite Editor
打开Sprite Editor:
-
从项目(project)视图中 选择要编辑的2D图像。
请注意,您无法编辑场景(Scene)视图中的精灵。
-
点击纹理导入(Texture import)检查器(inspector)中的Sprite Editor按钮,可显示Sprite Editor 。
注意:如果您选择的图像上的纹理类型设置为Sprite(2D和UI),才能看到" Sprite Editor"按钮。
图1:项目视图
图2:带有Sprite Editor按钮的纹理导入检查器
注意:如果您的图像有多个元素,请在纹理导入检查器中将Sprite Mode设置为Multiple。
图3:Sprite Editor
与合成图像一起,您将在窗口顶部的栏中看到一些控件。右上角的滑块控制缩放,而其左侧的颜色条按钮选择是查看图像本身还是其Alpha级别。最右边的滑块控制图案的像素化。将滑块向左移动会降低精灵纹理的分辨率。最重要的控件是左上角的" 切片"菜单,它可以自动分离图像的元素。最后," 应用(Apply )"和" 还原(Revert )"按钮允许您保留或放弃所做的任何更改。
注意:这个更改是文件级的,不可逆!
使用Sprite Editor
使用编辑器的最直接的方法是手动识别元素。如果您点击图像,您将看到一个矩形选区,在拐角处显示手柄。您可以拖动矩形的手柄或边缘来调整特定元素的大小。隔离元素后,您可以通过在图像的单独部分拖动一个新矩形来添加另一个元素。您会注意到,当您选择了一个矩形时,窗口右下角会出现一个面板:
面板中的控件允许您为sprite图形选择一个名称,并将矩形的位置和大小设置为坐标。可以以像素指定左上坐标(X,Y),和边框的高宽(H,W)。还有Sprite的枢轴(Pivot)的设置,Unity用作图形的坐标原点和主要"锚点"。您可以从许多默认的矩形相对位置(例如,中心,右上角等)中选择或使用自定义坐标。
Slice(切片)菜单项旁边的" 修剪(Trim )"按钮将调整矩形大小,以便基于透明度紧紧围绕图形的边缘。
注意:界面仅支持UI系统,不适用于2D SpriteRenderer。
自动(Automatic)切片
手动分离sprite矩形效果很好,但在许多情况下,Unity可以通过检测图形元素并自动提取图形元素来进行工作。如果您单击控制栏中的" 切片(Slice)"菜单,您将看到此面板:
将切片类型设置为自动(Automatic),编辑器将尝试通过透明度猜测精灵元素的边界。您可以为每个识别的精灵设置默认枢轴(pivot)。方法(Method)菜单让你选择如何处理窗口的现有选择。在删除现有的(Delete existing)将简单地替换已经选择的内容,智能将尝试创建新的矩形,安全(Safe)选项将添加新的矩形,而不会改变任何已经就绪的矩形。
按网格单元格大小(Grid by Cell Size)或按网格单元格计数(Grid by Cell Count )选项也可用于类型(Type)。当精灵在创作过程中已经被规划出来时,这是非常有用的:
的像素尺寸(Pixel Size)的值确定单元格的高度和宽度。如果选择了按网格单元格计数,Column&Row将决定用于切片的列数和行数。您还可以使用偏移(Offset )值从图像的左上角和填充(Padding )值移动网格位置,以从网格略微插入精灵矩形。该枢轴(pivot)有九个预设位置或一个被设置定制枢轴(Custom Pivot)位置可自定义。
请注意,在使用任何自动切片方法之后,仍然可以手动编辑生成的矩形。您可以让Unity处理精灵边界和枢轴的粗略定义,然后自己进行任何必要的微调。
Sprite Editor:Edit outline(编辑精灵大纲)
使用雪碧编辑的 编辑大纲( Edit Outline)选项编辑生成网格的雪碧,有效编辑它的轮廓。
Sprite中的透明区域可能会对您的项目的性能产生负面影响。此功能可用于微调Sprite的边界,确保形状中的透明区域更少。
要访问此选项,请选择Sprite并打开Sprite Editor(在"检查器"窗口中单击" Sprite Editor ")。单击左上角的Sprite Editor下拉菜单,然后选择编辑大纲( Edit Outline)。
使用Sprite Editor的下拉菜单访问编辑大纲
随着编辑大纲选中,单击一个雪碧。Sprite Editor显示了Sprite的大纲和控制点。轮廓由白线表示。控制点是可用于移动和操纵轮廓的区域。控制点由小方块表示。单击并拖动一个白色方形轮廓控制点来更改其位置。
通常来说Unity划分的大纲已经可以满足使用。
Sprite Packer(精灵包装器)
在2017.1版本中会自动交由Unity处理即可,这里不再赘述。
Sprite Masks(精灵蒙版)
Sprite Masks用于隐藏或显示Sprite或Sprite组的部分。Sprite Mask仅使用Sprite渲染器组件影响对象。
排序组(Sorting Group)
排序组是改变Sprite渲染器执行渲染顺序的组件。它允许一组共享共同根的渲染器被排序在一起。Unity中的渲染器按照几个条件进行排序,包括它们在图层中的顺序以及与相机的距离。
设置排序组
要使用"排序组"组件,请将其添加到GameObject的根(您要应用组排序的所有GameObjects的父GameObject)。选择GameObject的根,然后在主菜单中选择Component > Rendering > Sorting Group。
排序组在"场景"视图中没有任何视觉表示。它可以添加到一个空的GameObject中,如果您有很多GameObject可以一次性应用组排序,这可能很有用。
排序组不依赖于任何其他渲染器,并且附加到该GameObject及其后代的任何渲染器都将被渲染在一起。
排序组组件
属性
功能
排序图层
在渲染过程中,使用下拉菜单选择用于定义这个Sprite优先级的层。
层次顺序
设置这个Sprite在其层中的优先级。首先渲染较低的数字。
排序排序组
Unity使用排序图层(sorting layer)的概念,允许您将精灵分成组,按顺序渲染(高的在前)。
排序组的后代与最近或下一个排序组的其他后代进行排序(取决于排序是按距离排序还是层次排序)。换句话说,排序组仅为其后代创建本地排序空间。这允许使用排序层和层中的顺序对组内的每个渲染器进行排序,但在本地对包含的排序组进行排序。
嵌套排序组
一个嵌套的排序组与同一组中的其他Renderer(渲染器)排序。
然而,在没有排序组的层次结构中的GameObject作为单个层呈现在一起,而Renderers(渲染器)仍然基于它们的排序层和层顺序进行排序。
使用排序组的示例
排序组通常用于具有复杂角色的2D游戏,由几个Sprite组成。此示例在层次结构中使用具有多个渲染器的2D角色。
由单个排序图层中的几个Sprite组成的角色,使用多层次的顺序对身体部位进行排序
这个角色位于单个的排序层中,并在层中使用多个层中顺序来对其主体部分进行排序。然后Unity将角色作为预制,在游戏中多次克隆。
克隆时,身体部位彼此重叠,因为它们在相同的层上,如下所示。
两个人物的身体部位重叠,因为它们共享相同的层
期望的结果是让一个字符的所有渲染器一起呈现,然后紧接着是下一个字符。
添加到角色根的"排序组"组件确保身体部分不再重叠并混合在一起。
排序组组件将每个角色分组为一个组,以防止主体部分发生重叠。
精灵蒙版
创建一个雪碧蒙版
要创建一个Sprite Mask,请从主菜单GameObject> 2D Object> Sprite Mask中选择。
从菜单中创建Sprite Mask
在场景中创建一个新的Sprite Mask GameObject
属性
属性
功能
Sprite
把精灵用作蒙版。
Alpha Cutoff
透明度。
开始范围
(Range Start)
范围开始是面具开始屏蔽的排序层。
排序图层
面具所在的排序图层。
层次顺序
在排序图层中的顺序。
结束范围
(Range End)
全部(mask all)
默认情况下,掩码将影响其后面的所有排序层。
自定义(custom)
范围结束可以设置为自定义排序层和层中的顺序。
使用精灵蒙版
要用作遮罩的Sprite需要分配给Sprite Mask Component
Sprite Mask GameObject本身在场景中不可见,只是与Sprites产生的交互。要在场景中查看Sprite Masks,请在"场景"菜单中选择"Sprite Mask"选项。
场景中的Sprite Mask视图打开场景
雪碧蒙版总是有效。Sprite想受到Sprite Mask的影响,需要在Sprite Renderer中设置"Mask Interaction"。
角只有部分在蒙版区域中的精灵可见
默认情况下,Sprite面具会影响场景中的任何精灵,它们的掩码交互作用在掩码下可见或不可见。我们通常希望面具只影响特定的雪碧或一组精灵。
角色精灵正在与两张卡片上的面具进行交互
确保蒙版与特定精灵交互的一种方法是使用排序组分量。
添加到父GameObject中的排序组组件确保蒙版将仅影响该排序组的子项
控制面具效果的另一种方法是使用Sprite Mask的自定义范围设置。
具有自定义范围设置的Sprite Mask可确保蒙版仅影响指定排序层中的Sprites或Layer范围内的Order
范围开始和范围结束提供了基于它们的排序层或层中的顺序来选择性掩盖精灵的能力。
Script:SpriteMask
class in UnityEngine
继承于:Renderer
描述
用于掩蔽精灵和粒子的组件。
默认情况下,它将屏蔽所有的排序层。可以设置一个分类层的自定义范围。如果一个SortingGroup出现,则它将对SortingGroup进行本地操作。。
变量
掩模使用的最小值,以选择蒙版的精灵所定义的影响区域。
定义自定义范围结束的排序层的唯一ID。
定义结束范围的排序层中的顺序。
定义自定义范围开始的排序层的唯一ID。
定义开始范围的排序层中的顺序。
蒙版精灵从前到后排序值。
用于定义蒙版的Sprite。
物理2D设置(Physics 2D Settings)
该物理2D设置允许您提供2D物理全局设置(菜单:编辑 > 项目设置 > 物理学2D)。
属性
属性:
功能:
重力(Gravity)
重力应用于所有有刚体2D 的GameObject。一般来说,重力只能设定y轴的负方向。
默认材质
(Default Material)
默认的物理材质2D,如果没有任何材质分配给对撞机2D,则使用它。
速度迭代
(Velocity Iterations)
物理引擎用来解决速度影响的迭代次数。更高的数字导致更精确的物理学,但以CPU性能为代价。
位置迭代
(Position Iterations)
由物理引擎进行的迭代次数来解决位置变化。更高的数字导致更精确的物理学,但以CPU性能为代价。
注:其他的没那么重要这里不总结。
播放视频
在视频播放器组件可以播放从各种来源导入的内容。
录像片段
要创建和使用视频剪辑资产,您必须先导入视频文件。
将视频文件拖放到"项目"窗口中将创建一个视频剪辑。
通过将视频文件拖放到"项目"窗口中创建的视频剪辑
创建视频剪辑的另一种方法是导航到Assets > Import New Asset...以导入视频文件。
导入后,新创建的视频剪辑可以在视频播放器组件使用视频片段选择器窗口(可通过点击圆圈选择按钮到视频剪辑栏右边),或通过拖放视频剪辑的资产进入相应的Video Player组件的video clip。
一个视频播放器组件
选择Material Override即可用Sprite Renderer渲染出画面。