Unity零基础到进阶 | 使用 Vectrosity 插件 像德芙一样丝滑的画线

举报
呆呆敲代码的小Y 发表于 2021/08/05 18:03:52 2021/08/05
【摘要】 在使用Unity进行开发的过程中,我们在某些时候需要使用到划线功能,使用Unity中的几种划线方法自然可行,但是我们可以用一种更方便的方式来进行划线操作,那就是我们的主角:Vectrosity插件👍!

Vectrosity画线插件 

Unity画线插件.png

Unity画线插件Vectrosity 🔥

在使用Unity进行开发的过程中,我们在某些时候需要使用到划线功能,使用Unity中的几种划线方法自然可行,但是我们可以用一种更方便的方式来进行划线操作,那就是我们的主角:Vectrosity插件👍!

首先来介绍一下自己👇

Vectrosity:"我叫 Vectrosity😛,是一名Unity开发工程师,我的任务就是负责将老板们的需求尽可能以一种简单方便的形式给完成。我可以在2d中画各种形状的线条,也可以在3d中绘制线条。总的来说,我就是一名Unity中的线条绘画师🙉

好了,经过Vectrosity插件的自我介绍之后,我们就大体了解它是用来干嘛的了,接下来就是要说一下怎样方便快捷的使用Vectrosity插件才进行 2d 或者 3d 的划线呢:zap:

示例 :tada:

下面简单给大家展示一下小Demo(首先忽略我的画图能力 哈哈哈哈嗝~) ,只是插件部分内容,因为功能很多,所以在这里只简单介绍一下几个功能,具体想怎样使用可以自己用插件再深入研究哦在这里插入图片描述在这里插入图片描述

代码测试 :tada:

**2d :bell: **

绘制2d线条,导入插件后,创建脚本 导入命名空间:using Vectrosity; C#:

public class line : MonoBehaviour {

    void Start()
    {
        // 定义一个 VectorLine 对象,名字是“Line” 使用linePoints数组内的点, 并且使用默认材质, 线的宽度是10像素
        var linePoints = new List<Vector2>() { new Vector2(200, 100), new Vector2(200, 300) };
        VectorLine line = new VectorLine("Line", linePoints, 10);
        line.Draw();
    }
}

效果图:tada::在这里插入图片描述这样就是绘制出了一条起点是Vector2(200, 100),终点是Vector2(200, 300) 的线条,其中这个坐标系是画布的左下角为(0,0)

3d :santa: 绘制3d线条的方法也有很多,在这里就演示两种,使用的话再深入研究吧。 导入插件后,创建脚本 导入命名空间:using Vectrosity; C#:

public class line : MonoBehaviour {

    public GameObject[] points;
    public GameObject[] points2;

    private Vector3[] lineList2;
    private VectorLine line2;

    void Start()
    {
        OnDraw3D();
        t3d();
    }
    /// <summary>
    /// 1.3d物体间的划线
    /// </summary>
    private void OnDraw3D()
    {
        List<Vector3> lineList1 = new List<Vector3>() { points[0].transform.position, points[1].transform.position };
        VectorLine line1 = new VectorLine("line1", lineList1, 10f);
        line1.Draw3DAuto();
    }
    
    /// <summary>
    /// 2.3d物体间的划线
    /// </summary>
    void t3d()
    {
        lineList2 = new Vector3[] { points2[0].transform.position, points2[1].transform.position };
        line2 = VectorLine.SetLine3D(Color.black, 50f, lineList2);
        line2.Draw3DAuto();
    }
}

效果图 :christmas_tree: :在这里插入图片描述:ear: 第一种方法就是先定义了一个GameObjects数组,在VectorLine()方法中将数组中物体的位置传递过去,然后在两个物体间进行划线操作,也可以用贴图或者改线条颜色。

:ear: 第二种方法用的不是VectorLine,而是VectorLine.SetLine3D,这个是VectorLine插件中的另一种划线方法,这里只是简单的使用了其中的一个划3d线的方法。


:speech_balloon: VectorLine 有12种构造,如下图。其中上面代码使用的就是最简单的第二种在这里插入图片描述通过测试发现VectorLine()方法里的参数分别是

VectorLine(string name, List<Vector2> points, Texture texture, float width, LineType lineType, Joins joins);

string 为绘制出的线条名称 List points为2d或3d的坐标List Texture texture为绘制线条的贴图 float width为线条的粗细 LineType是个枚举,我测试发现用三个参数绘制出的图形并无明显变化...

    public enum LineType
    {
        Continuous = 0,
        Discrete = 1,
        Points = 2
    }

Joins 也是一个枚举,测试发现用三个参数绘制出的图形也并无明显变化...

    public enum Joins
    {
        Fill = 0,
        Weld = 1,
        None = 2
    }

上图给大家看一下设置Joins三个参数的效果:在这里插入图片描述

代码:balloon: :在这里插入图片描述


因为VectorLine中很多种划线方法,我这里只是介绍了较简单方便的一种,如果对划线需求比较大的小伙伴可以使用插件深入研究哦 这是封装的画线调用接口,一看就超级多在这里插入图片描述

总结 :house:

好了,就介绍到这里了,关于VectorLine插件本篇文章只做了一个简单的介绍与其中一个较简单方便的方法,如果想深入研究的小伙伴可自行下载哦,

VectorLine插件下载 下载1积分,可能会涨,积分不够的私信即可哦

下面再展示一下插件中几个的示例效果 :dvd: :在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

最近华为云的服务器在搞活动,大家有需求的可以扫码仔细了解以下哦!
也可以[点击链接]查看详细活动
有需求的小伙伴快来看一下吧!!

华为云推广图自己的.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。