U2L12——画线功能LineRenderer
U2L12——画线功能LineRenderer
LineRenderer
LineRenderer
是Unity提供的一个用于画线的组件,使用它我们可以在场景中绘制线段
一般可以用于:
- 绘制攻击范围
- 武器红外线
- 辅助功能
- 其他画线功能
本章代码关键字
1 | LineRenderer //画线的类 |
LineRenderer参数相关
-
参数
-
新版本才有的编辑模式
-
场景编辑模式:左侧编辑点 - 右侧添加点
-
无编辑操作
- Simplify Preview - 简化预览
- Tolerance - 宽容度
偏离值,越大,偏差越大
-
编辑点模式
- Show Wireframe - 显示线框
- Subdivide Selected - 细分选项
选择两个或多个相邻点时
该按钮启用
会在相邻点之间插入一个新点
-
添加点模式
-
输入模式 - Input
-
Mouse Position - 鼠标位置
-
Physics Raycast - 基于物理射线
- LayerMask - 哪些层检测射线
-
Min VertexDistance - 最小顶点距离
拖动鼠标穿件点时
会在超出该距离时创建一个点 -
Offset - 偏移量
-
-
-
-
-
Loop - 是否终点起始自动相连
-
Positions - 线段的点
-
线段宽度曲线调整
-
Color - 颜色变化
-
Corner Vertices(角顶点,圆角)此属性指示在一条线中绘制角时使用了多少额外的顶点。
增加此值,使线角看起来更圆。 -
End Cap Vertices(终端顶点,圆角) - 终点圆角
-
Alignment - 对齐方式
- View - 视点:线段对着摄像机
- Transform Z - 线段面向其Z轴
-
Texture Mode - 纹理模式
- Stretch - 拉伸:沿整条线映射纹理一次
- Tile - 瓷砖平铺:不停的重复纹理
- Distribute Per Segment - 分配执行
- Repeat Per Segment - 重复显示
-
Shadow Bias - 阴影偏移
-
Generate Lighting Data - 生成光源数据
-
Use World Space - 是否使用世界坐标系
-
Materials - 线使用的材质球
-
Lighting - 光照影响
- Cast Shadows - 是否开启阴影
- Receive Shadows - 接收阴影
-
Probes - 光照探针
- Light Probes - 光探测器模式:
不使用光探针
使用内插光探针
使用三维网格内插光探针
自定义从材质决定 - Reflection Probes - 反射探测器模式:
不使用反射探针
启用混合反射探针
启用混合反射探针并且和天空和混合
启用普通探针,重叠式不混合
- Light Probes - 光探测器模式:
-
Additional Settings - 附加设置
-
Motion Vectors - 运动矢量:
- 使用相机运动来跟踪运动
- 特定对象来跟踪运动
- 不跟踪
-
Dynamic Occludee - 动态遮挡剔除
-
Sorting Layer - 排序图层
-
Order in Layer - 此线段在排序图层中的顺序
-
-
LineRenderer代码相关
动态添加一个线段
1 | GameObject line = new GameObject(); |
首尾相连
1 | lineRenderer.loop = true; //false即不开启 |
开始结束宽
1 | lineRenderer.startWidth = 0.02f; |
开始结束颜色
1 | lineRenderer.startColor = Color.white; |
设置材质
1 | m = Resources.Load<Material>("M"); |
设置点
一定要注意,设置点 要先设置点的个数!
设置点的个数
1 | lineRenderer.positionCount = 4; |
从头到尾设置点
1 | lineRenderer.SetPositions(new Vector3[] { new Vector3(0, 0, 0), |
设置指定点
如果数组内Vector3
不够,则用默认用(0,0,0)补齐
1 | lineRenderer.SetPosition(3, new Vector3(5, 0, 0)); |
是否使用世界坐标系
决定了是否随对象移动而移动
1 | lineRenderer.useWorldSpace = false; |
让线段受到光的影响
会接受光数据 进行着色器计算
1 | lineRenderer.generateLightingData = true; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!