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

25 篇文章 1 订阅
5 篇文章 0 订阅

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值