Unity3D :Line渲染器组件

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
Line渲染器组件
线渲染器 (Line Renderer) 组件采用 3D 空间中两个或多个点的数组,在每个点之间绘制一条直线。 可以使用线渲染器 (Line Renderer) 来绘制从简单直线到复杂螺旋线的任何线条。
这条线始终是连续的; 如果需要绘制两条或更多完全独立的线,则应使用多个游戏对象,每个游戏对象都要有自己的线渲染器 (Line Renderer)。
线渲染器 (Line Renderer) 不渲染宽度以像素为单位的线。 它会渲染宽度以世界单位为单位的多边形。 线渲染器 (Line Renderer) 使用与轨迹渲染器 (Trail Renderer) 相同的线渲染算法。
准备开始
要创建线渲染器,请执行以下操作:
- 在 Unity 菜单栏中,选择 GameObject > Effects > Line。
- 选择 Line Renderer 游戏对象。
- 通过在 Inspector 窗口中直接设置数组值或使用 Create Points 场景编辑模式,可以将点添加到 Line Renderer 的 Positions 数组中。
- 使用 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。
设置场景编辑模式

使用 Inspector 顶部的 Edit Points 和 Create Points 按钮可以设置当前的场景编辑模式。
单击 Edit Points 按钮可以将场景编辑模式设置为 Edit Points。 再次单击该按钮可以将场景编辑模式设置为 None。
单击 Create Points 按钮可以将场景编辑模式设置为 Create Points。 再次单击该按钮可以将场景编辑模式设置为 None。
场景编辑模式:None

如果未选择场景编辑模式,则可以配置并执行简化操作,从 Positions 数组中删除不必要的点。
Inspector 中会显示以下控件:
控件 | 描述 |
---|---|
简化预览 | 启用 Simplify Preview 可以查看简化操作结果的预览。 |
宽容 | 设置简化线可以偏离原始线的偏差量。 值为 0 不会导致偏差,因此几乎没有简化。 较高的正值会导致与原始线的偏差更大,因此更加简化。 默认值为 1。 |
简化 | 单击 Simplify 可以减少线渲染器 (Line Renderer) 的 Positions 数组中的元素数量。 简化操作使用 Ramer-Douglas-Peucker 算法根据 Tolerance 值来减少点数。 |
场景编辑模式:Edit Points

当场景编辑模式设置为 Edit Points 时,Unity 在 Scene 视图中将线渲染器 (Line Renderer) 的 Positions 数组中的每个点表示为黄色球形。 可以使用移动工具移动各个点。
Inspector 中会显示以下控件:
控件 | 描述 |
---|---|
显示线框 | 启用此设置后,Unity 会在 Scene 视图中绘制线框以使线条显示出来。 |
细分已选择 | 选择两个或多个相邻点时将会启用此按钮。 按下此按钮将在选定的相邻点之间插入一个新点。 |
场景编辑模式:Create Points

当场景编辑模式设置为 Create Points 时,可以在 Scene 视图中单击以将新点添加到线渲染器 (Line Renderer) 的 Positions 数组的末尾。
Inspector 中会显示以下控件:
控件 | 描述 | |
---|---|---|
输入 | 设置要用于创建点的输入法。 | |
鼠标位置 | 根据鼠标在 Scene 视图中的位置创建点。 | |
物理光线投射 | 根据场景中的射线投射创建点。 Unity 在射线投射到的位置创建点。 | |
图层蒙版 | 执行射线投射时要使用的图层遮罩。 仅当 Input 设置为 Physics Raycast 时,此属性才可见。 | |
最小顶点距离 | 拖动鼠标以在 Scene 视图中创建点时,如果与最后一个点之间的距离超过此距离,则线渲染器 (Line Renderer) 将创建一个新点。 | |
抵消 | 应用于所创建的点的偏移量。 当 Input 设置为 Mouse Position 时,线渲染器 (Line Renderer) 将应用来自场景摄像机的偏移量。 当 Input 设置为 Physics Raycast 时,线渲染器 (Line Renderer) 将应用来自射线投射法线的偏移量。 |
线渲染器检查器参考

本节包含以下小节:
- 线路设置
- 材料
- 照明
- 探针
- 其他设置
线设置 (Line settings)
属性 | 功能 | |
---|---|---|
圈 | 启用此属性可连接线的第一个和最后一个位置并形成一个闭环。 | |
位置 | 要连接的 Vector3 点的数组。 | |
宽度 | 定义宽度值和曲线值以控制线沿其长度的宽度。 曲线是在每个顶点处采样的,因此其精度受制于线中的顶点数量。 线的总宽度由宽度值控制。 | |
颜色 | 定义一个渐变来控制线沿其长度的颜色。 Unity 在每个顶点处从颜色渐变 (Color Gradient) 中采样颜色。 在每个顶点之间,Unity 对颜色应用线性插值。 向线添加更多顶点可能会更接近详细的渐变。 | |
角顶点 | 此属性指示在绘制线中的角时使用多少个额外顶点。 增加此值可使线的角显得更圆。 | |
端帽顶点 | 此属性指示使用多少个额外顶点在线上创建端盖。 增加此值可使线的端盖显得更圆。 | |
对准 | 设置线面向的方向。 | |
视图 | 线面向摄像机。 | |
变形Z | 线朝向其变换组件的 Z 轴。 | |
纹理模式 | 控制如何将纹理应用于线。 | |
伸展 | 沿线的整个长度映射纹理一次。 | |
瓦 | 基于线长度(采用世界单位)沿线重复纹理。 要设置平铺率,请使用 Material.SetTextureScale。 | |
DistributionPerSegment | 沿线的整个长度映射纹理一次(假设所有顶点均匀分布)。 | |
重复每个段 | 沿线重复纹理(按每个线细分段一次的比率重复)。 要调整平铺率,请使用 Material.SetTextureScale。 | |
阴影偏差 | 设置沿着光照方向的阴影移动量以消除因使用公告牌几何体来模拟体积而导致的阴影瑕疵。 | |
生成照明数据 | 如果启用此属性,Unity 在构建线几何体时包含法线和切线。 这样,线几何体就可以使用采用了场景光照的材质。 | |
使用世界空间 | 如果启用此属性,这些点被视为世界空间坐标。 如果禁用此属性,这些点位于此组件附加到的游戏对象的变换组件本地。 |
材质
Materials 部分列出了此组件使用的所有材质。
属性 | 描述 |
---|---|
大小 | 材料列表中的元素数。 如果减少元素数量,Unity 将删除列表末尾的元素。如果增加元素的数量,Unity 会将新元素添加到列表的末尾。Unity 使用与列表末尾的元素相同的材料填充新元素。 |
元素 | 列表中的材料。您可以为每个元素分配材质资源。 默认情况下,Unity 会根据材质名称按字母顺序对列表进行排序。此列表是可重新排序的,Unity 会在您更改元素顺序时自动更新元素的数量。 |
光照
Lighting 部分包含与光照相关的属性。
属性 | 描述 | |
---|---|---|
投射阴影 | 指定当合适的光线照射到此渲染器上时,此渲染器是否以及如何投射阴影。 此属性对应于 Renderer.shadowCastingMode API。 | |
上 | 当投射阴影的光源照射到此渲染器上时,此渲染器会投射阴影。 | |
关闭 | 此渲染器不会投射阴影。 | |
双面 | 此渲染器投射双侧阴影。这意味着像平面或四边形这样的单面物体可以投射阴影,即使光源在网格后面也是如此。 要使烘焙全局照明或 Enlighten 实时全局照明支持双面阴影,材质必须支持双面全局照明。 | |
仅阴影 | 此渲染器投射阴影,但渲染器本身不可见。 | |
接收阴影 | 指定 Unity 是否显示投射到此渲染器上的阴影。 仅当为此场景启用烘焙全局照明或启发实时全局照明时,此属性才有效。 此属性对应于 Renderer.receiveShadows API。 | |
贡献全局照明 | 将此渲染器包含在烘焙时进行的全局照明计算中。 仅当为此场景启用烘焙全局照明或启发实时全局照明时,此属性才有效。 启用此属性将在游戏对象的静态编辑器标志中启用贡献 GI 标志。它对应于 StaticEditorFlags.ContributeGI API。 | |
接收全局照明 | Unity 是从烘焙光照贴图还是从运行时光照探针向此渲染器提供全局光照数据。 仅当启用“贡献全局照明”时,此属性才可编辑。仅当为此场景启用烘焙全局照明或启发实时全局照明时,它才具有效果。 此属性对应于 MeshRenderer.receiveGI API。 | |
光照贴图 | Unity 从光照贴图向此渲染器提供全局照明数据。 | |
光探头 | Unity 从场景中的光照探针向此渲染器提供全局照明数据。 | |
优先考虑照明 | 启用此属性以始终将此渲染器包含在 Enlighten 实时全局光照计算中。这可确保渲染器受到远距离自发光的影响,即使是那些通常出于性能原因从全局照明计算中排除的自发光。 仅当在游戏对象的静态编辑器标志中启用了 Contribute GI、项目使用内置渲染管线并在场景中启用了 Enlighten 实时全局光照时,此属性才可见。 |
探针
Probes 部分包含与光照探针 和反射探针有关的属性。
属性 | 描述 | |
---|---|---|
光探头 | 设置此渲染器如何从光照探针系统接收光线。 此属性对应于 Renderer.lightProbeUsage API。 | |
关闭 | 渲染器不使用任何插值光照探针。 | |
混合探头 | 渲染器使用一个插值光照探针。这是默认值。 | |
使用代理卷 | 渲染器使用插值光照探针的 3D 网格。 | |
定制提供 | 渲染器从 MaterialPropertyBlock 中提取光照探针着色器均匀值。 | |
代理卷覆盖 | 设置对具有光照探针代理体积组件的另一个游戏对象的引用。 仅当光照探针设置为“使用代理卷”时,此属性才可见。 | |
反射探头 | 设置渲染器如何从反射探针系统接收反射。 此属性对应于 Renderer.probeAnchor API。 | |
关闭 | 禁用反射探头。Unity 使用天空盒进行反射。 | |
混合探头 | 启用反射探针。混合仅在反射探头之间发生。这在室内环境中很有用,因为角色可能会在具有不同照明设置的区域之间过渡。 | |
混合探针和天空盒 | 启用反射探针。混合发生在反射探针之间,或反射探针与默认反射之间。这对于户外环境很有用。 | |
简单 | 启用反射探针,但当存在两个重叠的体积时,反射探针之间不会发生混合。 | |
定位点覆盖 | 设置 Unity 在使用光照探针或反射探针系统时用于确定插值位置的变换。默认情况下,这是渲染器几何体边界框的中心。 此属性对应于 Renderer.probeAnchor API。 |
其他设置
Additional Settings 部分包含额外的属性。
财产 | 描述 | |
---|---|---|
运动矢量 | 设置是否使用运动矢量来跟踪此渲染器的每像素屏幕空间运动,从一帧到下一帧。您可以使用此信息应用后期处理效果,例如运动模糊。 注意:并非所有平台都支持运动矢量。有关详细信息,请参阅 SystemInfo.supportsMotionVectors。 此属性对应于 Renderer.motionVectorGenerationMode API。 | |
仅摄像机运动 | 仅使用摄像机移动来跟踪运动。 | |
每个对象运动 | 使用特定通道跟踪此渲染器的运动。 | |
强制不运动 | 不要跟踪运动。 | |
动态遮挡 | 启用动态遮挡后,Unity 的遮挡剔除系统会在静态遮挡器从摄像机视图中屏蔽此渲染器时剔除该渲染器。否则,当此渲染器被静态遮挡器挡出摄像机视图时,系统不会剔除此渲染器。 默认情况下启用动态遮挡。禁用它以获得效果,例如在墙后绘制角色的轮廓。 | |
排序图层 | 此渲染器的排序层的名称。 | |
按图层排序 | 此渲染器在排序层中的顺序。 |
由3D建模学习工作室整理翻译,转载请注明出处!