Unity LineRenderer 画线及代码控制--Unity小记

Unity LineRenderer 画线及代码控制

目录

Unity LineRenderer 画线及代码控制

一、添加LineRenderer 组件

二、LineRenderer设置起始坐标

三、设置LinRenderer

四、代码片段,找代码直接点我(找代码直接点我)


一、添加LineRenderer 组件

  1. 创建一个物体,这里创建的是一个Cube
  2. 向Cube物体添加LineRenderer组件

二、LineRenderer设置起始坐标

  1. 找到Cube物体上的Linerenderer组件,再组件中找到Positions

  2. 展开Positions 我们可看到Size属性,Size可以修改LineRenderer 画线的转点
  3. Size中Index代表第几个点的坐标(x,y,z),该坐标指的是世界坐标,如果不需要使用世界坐标的话,我们需要找到Use World Space 属性将其取消勾选。取消勾选后我们的Size里的坐标就是相对于Cube物体的相对坐标了。(坐标点大于等于2才有效)

   4.Loop属性,勾选Loop属性后线的起始点和中点将自动连接在一起

三、设置LinRenderer

1.1Width 界面是调整线的粗细,可以通过拖动界面线的点修改划线的宽度

1.2Width还可以通过双击红线,来添加节点控制LineRenderer在不同位置的宽度

2.1LineRenderer添加材质球

首先我们找到Materials 属性并展开,我们可以发现他的材质为None(Material)

2.2这时我们需要新建一个Material 材质球

在Project面板右键然后找到Create->Material,点击Material 就可以新建一个Material材质球,我们可以根据需要给材质球起个名字.

2.3然后点击材质球在Inspector 属性面板中找到Shader 然后点击展开选择Sprites->Default。注意:材质球必须选择Sprites->Default,否则LinRenderer 的Color属性无法修改颜色,只能使用材质球颜色修改。

2.4设置完成后要保持材质的Tint的颜色为白色,如果设置颜色容易和Color属性的颜色叠加。

2.5然后将我们新建的材质球拖到LineRenderer -Materials 属性后我们的线段颜色就正常了。

3.Color修改线的颜色

3.1找到Color属性并点击,打开颜色设置面板

3.2打开的颜色面板(Gradient Editor)可以设置线的首尾的颜色和透明度,上面的选中色带上面的箭头可以修改透明度,下面的按钮则可以设置颜色

四、代码片段,找代码直接点我(找代码直接点我)

着急请先直接拿代码,学习可细看。

using System.Collections.Generic;
using UnityEngine;

public class AddPostions : MonoBehaviour
{
    private LineRenderer lineRenderer;
    public Transform[] transforms;//需要添加到Size的物体位置
    public List<Vector3> vector3;//接收坐标信息 
    // Start is called before the first frame update
    void Start()
    {
        SetLineRenderer();
    }

    void SetLineRenderer()
    {
        lineRenderer = GetComponent<LineRenderer>();//获取LineRenderer组件
        lineRenderer.startWidth = 0.5f;//设置线头宽度
        lineRenderer.endWidth = 0.5f;//设置线尾宽度
        lineRenderer.numCapVertices = 2;//设置线头圆滑度-将线头分为不同段数
        
        foreach (Transform trans in transforms)//循环赋值注意数组长度需要和LinreRenderer的Size的长度一致
        {
            vector3.Add(trans.position);
        }
        lineRenderer.positionCount = vector3.Count;//设置LineRenderer点的个数
        lineRenderer.SetPositions(vector3.ToArray());//将坐标信息设置给LineRenderer-Positions
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36361484/article/details/143067599
今日推荐