轨迹渲染器 (Trail Renderer) 组件在移动的游戏对象后面渲染一条多边形轨迹。此组件可用于强调移动对象的运动感,或突出移动对象的路径或位置。飞弹背后的轨迹为飞弹的飞行轨道增添了视觉清晰度;来自飞机机翼尖端的凝结尾迹是现实生活中出现的轨迹效果的一个例子。
轨迹渲染器必须布置在一系列帧上;它们不能立即出现。轨迹渲染器 (Trail Renderer) 使用与线渲染器 (Line Renderer) 相同的轨迹渲染算法。
要创建轨迹渲染器,请执行以下操作:
1.在 Unity 菜单栏中,选择 GameObject > Effects > Trail。 2.选择 Trail Renderer 游戏对象,并将其作为要生成轨迹的游戏对象的父项。 3.使用 Inspector 窗口配置轨迹的颜色、宽度和其他显示设置。 4.通过移动游戏对象并在 Scene 视图中观察效果,可在编辑模式下预览轨迹。
默认情况下,轨迹渲染器 (Trail Renderer) 使用内置材质 Default-Line。您可以更改轨迹的外观而无需更改此材质,例如编辑轨迹的颜色渐变或宽度。
对于其他效果,例如在轨迹上应用纹理,需要使用其他材质。如果您不想为新材质编写自己的着色器,可以将 Unity 内置的标准粒子着色器与轨迹渲染器结合使用。如果将纹理应用到轨迹渲染器,则纹理应为正方形尺寸(例如 256x256 或 512x512)。
如果将多个材质应用于轨迹渲染器,则会为每个材质渲染一次。
请参阅创建和使用材质以了解更多信息。
Min Vertex Distance 值可以确定在将新段添加到该路径之前,应用轨迹的游戏对象必须行进的距离(采用世界单位)。像 0.1 这样较小的值会更频繁地创建轨迹段,从而形成更平滑的轨迹。像 1.5 这样较大的值会创建在外观上更有锯齿状的轨迹段。另外,当顶点非常靠近并且轨迹会在短距离内显著改变方向时,较宽的轨迹可能出现视觉瑕疵。
出于性能原因,最好使用尽可能最大的值来实现要创建的效果。
本节包含以下小节:
属性 | 功能 | |
---|---|---|
Width | 定义宽度值和曲线值以控制轨迹沿其长度的宽度。 曲线是在每个顶点处采样的,因此其精度受制于轨迹中的顶点数量。轨迹的总宽度由宽度值控制。 |
|
Time | 定义轨迹中某个点的生命周期(以秒为单位)。 | |
Min Vertex Distance | 轨迹中两点之间的最小距离(采用世界单位)。 | |
AutoDestruct | 启用此属性可在附加到 Trail Renderer 组件的游戏对象静止 Time 秒之后销毁该游戏对象。 | |
Emitting | 启用此属性后,Unity 会在轨迹中添加新点。禁用此属性后,Unity 不会向轨迹中添加新点。使用此属性可暂停和恢复轨迹生成功能。 | |
Color | 定义一个渐变来控制轨迹沿其长度的颜色。 Unity 在每个顶点处从颜色渐变 (Color Gradient) 中采样颜色。在每个顶点之间,Unity 对颜色应用线性插值。向轨迹添加更多顶点可能会更接近详细的渐变。 |
|
Corner Vertices | 此属性指示在绘制轨迹中的角时使用多少个额外顶点。增加此值可使轨迹的角显得更圆。 | |
End Cap Vertices | 此属性指示使用多少个额外顶点在轨迹上创建端盖。增加此值可使轨迹的端盖显得更圆。 | |
Alignment | 设置轨迹面向的方向。 | |
View | 轨迹面向摄像机。 | |
TransformZ | 轨迹朝向其变换组件的 Z 轴。 | |
Texture Mode | 控制如何将纹理应用于轨迹。 | |
Stretch | 沿轨迹的整个长度映射纹理一次。 | |
Tile | 基于轨迹长度(采用世界单位)沿轨迹重复纹理。要设置平铺率,请使用 Material.SetTextureScale。 | |
DistributePerSegment | 沿轨迹的整个长度映射纹理一次(假设所有顶点均匀分布)。 | |
RepeatPerSegment | 沿轨迹重复纹理(每个轨迹段重复一次)。要调整平铺率,请使用 Material.SetTextureScale。 | |
Shadow Bias | 设置沿着光照方向的阴影移动量以消除阴影瑕疵。 | |
Generate Lighting Data | 如果启用此属性,Unity 在构建轨迹几何体时包含法线和切线。这样,轨迹几何体就可以使用采用了场景光照的材质。 |
Trail Renderer Inspector 中的 Materials 部分列出了 Trail Renderer 当前使用的材质。
属性 | 功能 |
---|---|
Size | 指定 Trail Renderer 中的 Materials 材质数量。如果减小 Materials 列表大小,Unity 会删除列表末尾的元素。 |
Element | Trail Renderer 中的 Materials 列表(以数字顺序排列)。第一个元素始终命名为 Element 0。 |
Lighting 部分包含的属性用于指定此轨迹渲染器 (Trail Renderer) 如何在 Unity 中与光照相互影响。
属性 | 功能 | |
---|---|---|
Cast Shadows | 指定在合适的光源照射在轨迹上时该轨迹是否以及如何投射阴影。 | |
On | 投射阴影的光源照在轨迹上时,该轨迹将投射阴影。 | |
Off | 轨迹不会投射阴影。 | |
Two Sided | 轨迹从任一侧投射双面阴影。Enlighten 和渐进光照贴图 (Progressive Lightmapper) 不支持双面阴影。 | |
Shadows Only | 轨迹的阴影可见,但轨迹本身不可见。 | |
Receive Shadows | 启用此选项可使轨迹显示任何投射在轨迹上的阴影。仅当使用渐进光照贴图时才支持这个选项。 |
Probes 部分包含与光照探针 (Light Probes) 和反射探针 (Reflection Probes) 有关的属性。
属性 | 功能 | |
---|---|---|
Light Probes | 设置此渲染器如何从光照探针系统接收光照。 有关更多信息,请参阅光照探针。 |
|
Off | 渲染器不使用任何插值光照探针。 | |
Blend Probes | 渲染器使用一个插值光照探针。这是默认值。 | |
Use Proxy Volume | 渲染器使用插值光照探针的 3D 网格。 | |
Custom Provided | 渲染器从 MaterialPropertyBlock 提取光照探针着色器 uniform 值。 | |
Proxy Volume Override | 设置对另一个具有 Light Probe Proxy Volume 组件的游戏对象的引用。 仅当 Light Probes 设置为 Use Proxy Volume 时,此属性才可见。 |
|
Reflection Probes | 设置渲染器如何从反射探针系统接收反射。 | |
Off | 禁用反射探针。Unity 将天空盒用于反射。 | |
Blend Probes | 启用反射探针。混合仅在反射探针之间发生。在室内环境中,如果角色可能在具有不同光照设置的区域之间过渡,此设置会很有用。 | |
Blend Probes and Skybox | 启用反射探针。混合发生在反射探针之间或反射探针与默认反射之间。这对于室外环境很有用。 | |
Simple | 启用反射探针,但存在两个重叠的探针体积时,反射探针之间不会发生混合。 | |
Anchor Override | 设置变换组件,在使用光照探针或反射探针系统时由 Unity 用来确定插值位置。默认情况下,这个位置是渲染器几何体的包围盒中心。 |
Additional Settings 包含额外的属性。
属性 | 功能 | |
---|---|---|
Motion Vectors | 设置是否使用运动矢量来跟踪此渲染器从一帧到下一帧的每像素屏幕空间运动。使用此信息可以应用后期处理效果,例如运动模糊。 请注意,并非所有平台都支持运动矢量。请参阅 SystemInfo.supportsMotionVectors 以了解更多信息。 |
|
Camera Motion Only | 仅使用摄像机移动来跟踪运动。 | |
Per Object Motion | 使用特定通道来跟踪此渲染器的运动。 | |
Force No Motion | 不跟踪运动。 | |
Dynamic Occlusion | 启用 Dynamic Occlusion 后,此渲染器在摄像机的视图中被静态遮挡物 (Static Occluder) 阻挡时,Unity 会剔除此渲染器。默认情况下启用 Dynamic Occlusion。 禁用 Dynamic Occlusion 后,此渲染器在摄像机的视图中被静态遮挡物 (Static Occluder) 阻挡时,Unity 不剔除此渲染器。禁用 Dynamic Occlusion 可以实现诸如在墙后绘制角色轮廓之类的效果。 请参阅有关遮挡剔除的文档以了解更多信息。 |
|
Sorting Layer | 此渲染器的排序图层的名称。 | |
Order in Layer | 此渲染器在排序图层中的顺序。 |