线渲染器 (Line Renderer)
线渲染器 (Line Renderer) 组件采用 3D 空间中两个或多个点的数组,在每个点之间绘制一条直线。可以使用线渲染器 (Line Renderer) 来绘制从简单直线到复杂螺旋线的任何线条。
这条线始终是连续的;如果需要绘制两条或更多完全独立的线,则应使用多个游戏对象,每个游戏对象都要有自己的线渲染器 (Line Renderer)。
线渲染器 (Line Renderer) 不渲染宽度以像素为单位的线。它会渲染宽度以世界单位为单位的多边形。线渲染器 (Line Renderer) 使用与轨迹渲染器 (Trail Renderer) 相同的线渲染算法。
准备开始
要创建线渲染器,请执行以下操作:
1.在 Unity 菜单栏中,选择 GameObject > Effects > Line。 2.选择 Line Renderer 游戏对象。 3.通过在 Inspector 窗口中直接设置数组值或使用 Create Points 场景编辑模式,可以将点添加到 Line Renderer 的 Positions 数组中。 4.使用 Inspector 窗口配置线条的颜色、宽度和其他显示设置。
线渲染器材质 (Line Renderer Materials)
默认情况下,线渲染器 (Line Renderer) 使用内置材质 Default-Line。您可以更改线条的外观而无需更改此材质,例如编辑线条的颜色渐变或宽度。
对于其他效果,例如在线条上应用纹理,需要使用其他材质。如果您不想为新材质编写自己的着色器,可以将 Unity 内置的标准粒子着色器与线渲染器 (Line Renderer) 结合使用。
请参阅创建和使用材质以了解更多信息。
线渲染器场景编辑模式 (Line Renderer Scene Editing Mode)
可以使用线渲染器 (Line Renderer) 的 Inspector 来更改场景编辑模式。不同的场景编辑模式让您能够以不同的方式使用 Scene 视图和 Inspector 来编辑线渲染器 (Line Renderer)。
有三种场景编辑模式:None、Edit Points 和 Create Points。
设置场景编辑模式
Line Renderer Edit Points 和 Create Points 按钮
使用 Inspector 顶部的 Edit Points 和 Create Points 按钮可以设置当前的场景编辑模式。
单击 Edit Points 按钮可以将场景编辑模式设置为 Edit Points。再次单击该按钮可以将场景编辑模式设置为 None。
单击 Create Points 按钮可以将场景编辑模式设置为 Create Points。再次单击该按钮可以将场景编辑模式设置为 None。
场景编辑模式:None
Line Renderer Simplify 控件
如果未选择场景编辑模式,则可以配置并执行简化操作,从 Positions 数组中删除不必要的点。
Inspector 中会显示以下控件:
控件 | 描述 |
---|---|
Simplify Preview | 启用 Simplify Preview 可以查看简化操作结果的预览。 |
Tolerance | 设置简化线可以偏离原始线的偏差量。值为 0 不会导致偏差,因此几乎没有简化。较高的正值会导致与原始线的偏差更大,因此更加简化。默认值为 1。 |
Simplify | 单击 Simplify 可以减少线渲染器 (Line Renderer) 的 Positions 数组中的元素数量。简化操作使用 Ramer-Douglas-Peucker 算法根据 Tolerance 值来减少点数。 |
场景编辑模式:Edit Points
线渲染器 (Line Renderer) 处于 Edit Points 场景编辑模式
当场景编辑模式设置为 Edit Points 时,Unity 在 Scene 视图中将线渲染器 (Line Renderer) 的 Positions 数组中的每个点表示为黄色球形。可以使用移动工具移动各个点。
Inspector 中会显示以下控件:
控件 | 描述 |
---|---|
Show Wireframe | 启用此设置后,Unity 会在 Scene 视图中绘制线框以使线条显示出来。 |
Subdivide Selected | 选择两个或多个相邻点时将会启用此按钮。按下此按钮将在选定的相邻点之间插入一个新点。 |
场景编辑模式:Create Points
线渲染器 (Line Renderer) 处于 Create Points 场景编辑模式
当场景编辑模式设置为 Create Points 时,可以在 Scene 视图中单击以将新点添加到线渲染器 (Line Renderer) 的 Positions 数组的末尾。
Inspector 中会显示以下控件:
控件 | 描述 |
---|---|
Input | 设置要用于创建点的输入法。 |
Mouse position | 根据鼠标在 Scene 视图中的位置创建点。 |
Physics Raycast | 根据场景中的射线投射创建点。Unity 在射线投射到的位置创建点。 |
Layer Mask | 执行射线投射时要使用的图层遮罩。仅当 Input 设置为 Physics Raycast 时,此属性才可见。 |
Min Vertex Distance | 拖动鼠标以在 Scene 视图中创建点时,如果与最后一个点之间的距离超过此距离,则线渲染器 (Line Renderer) 将创建一个新点。 |
Offset | 应用于所创建的点的偏移量。当 Input 设置为 Mouse Position 时,线渲染器 (Line Renderer) 将应用来自场景摄像机的偏移量。当 Input 设置为 Physics Raycast 时,线渲染器 (Line Renderer) 将应用来自射线投射法线的偏移量。 |
属性
线设置 (Line settings)
属性 | 功能 |
---|---|
Loop | 启用此属性可连接线的第一个和最后一个位置并形成一个闭环。 |
Positions | 要连接的 Vector3 点的数组。 |
Width | 定义宽度值和曲线值以控制线沿其长度的宽度。曲线是在每个顶点处采样的,因此其精度受制于线中的顶点数量。线的总宽度由宽度值控制。 |
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 在构建线几何体时包含法线和切线。这样,线几何体就可以使用采用了场景光照的材质。 |
Use World Space | 如果启用此属性,这些点被视为世界空间坐标。如果禁用此属性,这些点位于此组件附加到的游戏对象的变换组件本地。 |
材质
Line Renderer Inspector 中的 Materials 部分列出了 Line Renderer 当前使用的材质。
属性 | 功能 |
---|---|
Size | 指定 Line Renderer 中的 Materials 数量。如果减小 Materials 列表大小,Unity 会删除列表末尾的元素。 |
Element | Line Renderer 中的 Materials 列表(以数字顺序排列)。第一个元素始终命名为 Element 0。 |
Lighting
Lighting 部分包含的属性用于指定此线渲染器 (Line Renderer) 如何在 Unity 中与光照相互影响。
属性 | 功能 |
---|---|
Cast Shadows | 指定在合适的光源照射在线上时该线是否以及如何投射阴影。 |
On | 投射阴影的光源照在线上时,该线将投射阴影。 |
Off | 线不会投射阴影。 |
Two Sided | 线从任一侧投射双面阴影。Enlighten 和渐进光照贴图 (Progressive Lightmapper) 不支持双面阴影。 |
Shadows Only | 线的阴影可见,但线本身不可见。 |
Receive Shadows | 启用此选项可使线显示任何投射在线上的阴影。仅当使用渐进光照贴图时才支持这个选项。 |
Probes
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
Additional Settings 包含额外的属性。
属性 | 功能 |
---|---|
Motion Vectors | 设置是否使用运动矢量来跟踪此渲染器从一帧到下一帧的每像素屏幕空间运动。使用此信息可以应用后期处理效果,例如运动模糊。请注意,并非所有平台都支持运动矢量。 |
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 | 此渲染器在排序图层中的顺序。 |