美文网首页
Unity 画线

Unity 画线

作者: 玄策丶 | 来源:发表于2018-08-01 16:51 被阅读0次

一、使用Vectrosity插件

1. 画一条(X0,Y0)到(X1,Y1)的线

using Vectrosity 
public class DrawLine:MonoBehaviour
{
    public VectorLine energyLine;
    List<Vector2> linePoints;
    float lineWeight = 2f;
    public void LineDraw_1()
        {
            linePoints = new List<Vector2>();
            linePoints.Add(new Vector2(X0, Y0));
            linePoints.Add(new Vector2(X1, Y1));
            energyLine = new VectorLine("Energy", linePoints, lineWeight, LineType.Continuous);
            energyLine.Draw();
        }
}

如果有画折线的话,将每个折点加入List中。

2. 正弦曲线

using Vectrosity 
public class DrawLine:MonoBehaviour
{
    public VectorLine energyLine;
    List<Vector2> linePoints;
    float lineWeight = 2f;
    public void LineDraw_2()
    {
          linePoints = new List<Vector2>();
          energyLine = new VectorLine("Energy", linePoints, lineWeight, LineType.Continuous);
          for (int i = 0; i < 200; i++)
          {
          //y=Asin(ωx+φ)+k   A——振幅 (ωx+φ)——相位 φ——初相 k——偏距 ω——角速度, 控制正弦周期
              energyLine.points2.Add(new Vector2(i , A * Mathf.Sin( ( (a * i) + b) + K) );
          }   
          energyLine.Draw();
    }
}     

删除线:

   public void Des()
    {
        List<Transform> list = new List<Transform>();
        GameObject a = GameObject.Find("VectorCanvas");
        if (a)
        {
            foreach (Transform child in a.transform)
            {
                if (child.name.Equals("Energy"))
                {
                    list.Add(child);
                }               
            }
            for (int i = 0; i < list.Count; i++)
            {
                Destroy(list[i].gameObject);
            }
        }
    }

二、使用LineRenderer

新建物体Tr0,挂载脚本drawLine,添加LineRenderer组件。Tr0移动时会画出Tr0移动的轨迹。
PS:开始绘制的时候将脚本打开,绘制完之后关闭。不然会一直绘制,卡!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class drawLine : MonoBehaviour
{
    private LineRenderer line;
    Vector3[] path;
    private float time = 0;
    List<Vector3> pos = new List<Vector3>();
    void Awake()
    {
        path = pos.ToArray();//初始化
        line = GetComponent<LineRenderer>();//获得该物体上的LineRender组件
    }
    void Update()
    {
        time += Time.deltaTime;
        if (time > 0.1)//每0.1秒绘制一次
        {
            time = 0;
            pos.Add(transform.position);//添加当前坐标进链表
            path = pos.ToArray();//转成数组
        }
        if (path.Length != 0)//有数据时候再绘制
        {
            line.positionCount = path.Length;//设置顶点数      
            line.SetPositions(path);//设置顶点位置
        }
    }
}

相关文章

  • unity3d使用GL库画线

    unity使用GL库画线

  • Unity 画线

    一、使用Vectrosity插件 1. 画一条(X0,Y0)到(X1,Y1)的线 如果有画折线的话,将每个折点加入...

  • Unity中GL画线显示的问题

    在unity中使用gl画线时,把画线代码放到OnGUI函数中执行,线可以显示到UI上方,把画线代码放到OnRend...

  • Unity中绘制线框(Wireframe)的几种方法

    Unity GeometryShader(从一个线框渲染的例子开始)Unity实用案例之——屏幕画线和线框渲染Un...

  • Unity mesh 画线 line

  • 算法实现

    在Unity中实现的算法, 1.DDA 2.中点画线法 3.Bresenham算法 git链接:https://g...

  • 画线

    看着马路上为规范车辆行驶而画出的线,我有一瞬间感觉自己被某种潜在的恶意所束缚。 看着前排车辆突然亮起的红色尾灯,我...

  • 画线

    使用CAShapeLayer和UIBezierPath在UIView上画线。

  • 画线

    http://www.cnblogs.com/ygm900/archive/2013/07/02/3167334....

  • 画线

    如何为你的UIView添加边缘分割线 相遇相识相恋相濡以末5楼 · 2016.04.15 15:31 为什么要用r...

网友评论

      本文标题:Unity 画线

      本文链接:https://www.haomeiwen.com/subject/hdervftx.html