/XUGL

UGUI Graphics Library for Unity. UGUI 图形库,绘制点、线、箭头、三角形、正方形、圆形、扇形、环形、椭圆形等其他常见的图形。

Primary LanguageC#MIT LicenseMIT

XUGL

UGUI Graphics Library for Unity.
UGUI 图形库。

XUGL是一款基于UGUI实现的图形库。图表插件XCharts正是使用该图形库来实现图表的绘制。XUGL通过重载 UGUIOnPopulateMesh() 重新填充顶点缓冲区来实现绘制自定义图形效果,可绘制点、线、箭头、三角形、正方形、圆形、扇形、环形、椭圆形等其他常见的图形,并支持绘制SVG矢量图。

API

UGL.DrawArrow( ) 画箭头
UGL.DrawLine( ) 画直线
UGL.DrawDashLine( ) 画虚线
UGL.DrawDotLine( ) 画点线
UGL.DrawDashDotLine( ) 画点划线
UGL.DrawDashDotDotLine( ) 画双点划线
UGL.DrawZebraLine( ) 画斑马线
UGL.DrawDiamond( ) 画菱形(钻石形状)
UGL.DrawSquare( ) 画正方形
UGL.DrawRectangle( ) 画带长方形
UGL.DrawQuadrilateral( ) 画任意的四边形
UGL.DrawRoundRectangle( ) 画圆角矩形
UGL.DrawBorder( ) 画边框
UGL.DrawTriangle( ) 画三角形
UGL.DrawCricle( ) 画圆
UGL.DrawEmptyCricle( ) 画空心圆
UGL.DrawSector( ) 画扇形
UGL.DrawRoundCap( ) 画圆帽
UGL.DrawDoughnut( ) 画圆环
UGL.DrawCurves( ) 画贝塞尔曲线
UGL.DrawEllipse( ) 画椭圆
UGL.DrawEmptyDiamond( ) 画空心菱形(空心钻石形状)
UGL.DrawEmptyTriangle( ) 画空心三角形
UGL.DrawPlus( ) +号
UGL.DrawMinus( ) +号

使用

通过源码或Package Manager的方式导入XUGL
自定义类继承自UGUIGraphic,或相关的可重载 OnPopulateMesh() 的类。

public class UGLExample : MaskableGraphic
{
}

重载 OnPopulateMesh(), 用 XUGL 重新填充 UGUI 的顶点缓冲区数据。

protected override void OnPopulateMesh(VertexHelper vh)
{
    Vector3 sp, cp, ep;
    vh.Clear();

    //背景边框
    UGL.DrawSquare(vh, m_Center, m_Width / 2, m_BackgroundColor);
    UGL.DrawBorder(vh, m_Center, m_Width, m_Height, 10, Color.green, 0, m_BorderRadius);

    //点
    UGL.DrawCricle(vh, m_LeftTopPos + new Vector3(20, -20), 10, m_DrawColor);

    //直线
    sp = new Vector3(m_LeftTopPos.x + 50, m_LeftTopPos.y - 20);
    ep = new Vector3(m_LeftTopPos.x + 250, m_LeftTopPos.y - 20);
    UGL.DrawLine(vh, sp, ep, 3, m_DrawColor);

    //3点确定的折线
    sp = new Vector3(m_LeftTopPos.x + 20, m_LeftTopPos.y - 100);
    cp = new Vector3(m_LeftTopPos.x + 200, m_LeftTopPos.y - 40);
    ep = new Vector3(m_LeftTopPos.x + 250, m_LeftTopPos.y - 80);
    UGL.DrawLine(vh, sp, cp, ep, 5, m_DrawColor);
}

完整代码请查阅ExamplesUGLExample.cs

更新日志

  • (2024.01.05) 增加DrawRoundRectangleWithBorder()绘制带边框圆角矩形
  • (2023.10.15) 增加SVG绘制支持
  • (2023.10.15) 增加DrawMinus()绘制-号
  • (2023.10.15) 增加DrawPlus()绘制+号
  • (2023.10.15) 增加DrawDoughnut()的半径渐变参数
  • (2023.10.15) 增加DrawEmptyTriangle()绘制空三角形
  • (2023.10.15) 增加DrawEmptyDiamond()绘制空钻石图形
  • (2023.10.15) 优化DrawZebraLine()绘制
  • (2022.12.28) 优化扇形和环形的带边框绘制
  • (2021.11.01) 增加绘制椭圆支持
  • (2021.11.01) 优化大部分绘图接口
  • (2021.09.12) 增加绘制对称圆角支持
  • (2021.09.12) 增加绘制渐变线段支持
  • (2021.08.02) 增加斑马线、点线和点划线的渐变支持
  • (2021.04.26) 增加渐变边框支持
  • (2021.04.24) 首次提交

Licenses

MIT License