0
点赞
收藏
分享

微信扫一扫

学习笔记:unity——Vectrosity,绘制线段插件

Star英 2022-04-27 阅读 88

一、绘制二维坐标下线段:

1、obj1,obj2两个物体之间的连线:VectorLine.SetLine();

using Vectrosity;

    //绘制二维obj1,obj2两个物体之间的连线
    public void Drawline()
    {
        //线段里的点
        Vector2 parentPoint = obj1.transform.GetComponent<RectTransform>().anchoredPosition;
        Vector2 objPoint = obj2.transform.GetComponent<RectTransform>().anchoredPosition;
        Vector2 turnPoint = new Vector2(parentPoint.x,objPoint.y);
        
        //画线
        VectorLine line = VectorLine.SetLine(Color.white, parentPoint, turnPoint, objPoint);
        line.name = obj1.Name + "Line";
        line.drawTransform = line.rectTransform;
        line.rectTransform.SetParent(transform.Find("Lines"));
        line.rectTransform.localScale = new Vector3(1, 1, 1);
    }

 2、绘制二维坐标下:obj1,obj2两个物体之间的连线;line.Draw();

using Vectrosity;

    //绘制二维obj1,obj2两个物体之间的连线
    public void Drawline(DeviceGroupController groupController,DeviceObjController objController)
    {
        string lineName= obj1.name + "Line";
        Vector2 parentPoint = obj1.transform.GetComponent<RectTransform>().anchoredPosition;
        Vector2 objPoint = obj2.transform.GetComponent<RectTransform>().anchoredPosition;
        Vector2 turnPoint = new Vector2(parentPoint.x,objPoint.y);
        List<Vector2> linePoints = new List<Vector2>() { parentPoint, turnPoint, objPoint };

        VectorLine line = new VectorLine(lineName, linePoints, 2.0f,LineType.Continuous);
        line.rectTransform.SetParent(transform.Find("Lines"));
        line.rectTransform.localScale = new Vector3(1, 1, 1);
        line.Draw();
    }

二、绘制三维坐标下画线段

line3D.Draw3D();

 line3D.Draw3DAuto();

    /// <summary>
    /// 绘制首位相连的线/圈
    /// </summary>
    private VectorLine Set3DLine(List<Vector3> points,LayerMask lineLayer,Camera lineCamera,float lineWidth)
    {
        string _LineName ="line";

        VectorLine line3D = new VectorLine(_LineName, new List<Vector3>(), lineWidth, LineType.Continuous, Joins.Weld);

        line3D.points3 =points;
        line3D.layer = lineLayer;
        line3D.drawTransform = line3D.rectTransform;
        line3D.Draw3D();

        line3D.SetWidth(lineWidth);
        line3D.rectTransform.SetParent(transform);
        VectorLine.SetCamera3D(lineCamera);
        //line3D.Draw3D();//静态画线
        line3D.Draw3DAuto();//可保证画出来的线段,在线段里点位坐标更改时,实时绘制线段
        return line3D;
    }

三、其他图形

可结合插件demo,绘制网格,圆,曲线等等;

 Highlight 和Grid3D两个Demo的截图;

 部分API

 

 

举报

相关推荐

0 条评论