mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-28 12:08:46 +00:00
增加BarChart绘制渐变边框的支持
This commit is contained in:
@@ -34,6 +34,9 @@
|
|||||||
|
|
||||||
## Latest
|
## Latest
|
||||||
|
|
||||||
|
* (2021.04.26) Added support for `Barchart` to draw gradient borders
|
||||||
|
* (2021.04.23) Added support for custom charts
|
||||||
|
* (2021.04.22) Fixed bug where `Gauge` `axisLabel`'s text color could not be adjusted
|
||||||
* (2021.04.13) Add the `ShowStarttick` and '`ShowEndTick` parameters of 'AxisTick' to control whether the first and last ticks are displayed
|
* (2021.04.13) Add the `ShowStarttick` and '`ShowEndTick` parameters of 'AxisTick' to control whether the first and last ticks are displayed
|
||||||
* (2021.04.13) Improved multi-axis support #132
|
* (2021.04.13) Improved multi-axis support #132
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,9 @@
|
|||||||
|
|
||||||
## Latest
|
## Latest
|
||||||
|
|
||||||
|
* (2021.04.26) 增加`BarChart`绘制渐变边框的支持
|
||||||
|
* (2021.04.23) 增加自定义图表支持
|
||||||
|
* (2021.04.22) 修复`Gauge`的`AxisLabel`和文字颜色无法调整的问题
|
||||||
* (2021.04.13) 增加`AxisTick`的`ShowStartTick`和`ShowEndTick`参数控制第一个和最后一个刻度是否显示
|
* (2021.04.13) 增加`AxisTick`的`ShowStartTick`和`ShowEndTick`参数控制第一个和最后一个刻度是否显示
|
||||||
* (2021.04.13) 完善多坐标轴的支持 #132
|
* (2021.04.13) 完善多坐标轴的支持 #132
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
/* */
|
/* */
|
||||||
/************************************************/
|
/************************************************/
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@@ -33,6 +32,7 @@ namespace XCharts
|
|||||||
PropertyField(prop, "m_BorderWidth");
|
PropertyField(prop, "m_BorderWidth");
|
||||||
PropertyField(prop, "m_BorderColor");
|
PropertyField(prop, "m_BorderColor");
|
||||||
PropertyField(prop, "m_BorderColor0");
|
PropertyField(prop, "m_BorderColor0");
|
||||||
|
PropertyField(prop, "m_BorderToColor");
|
||||||
PropertyField(prop, "m_Opacity");
|
PropertyField(prop, "m_Opacity");
|
||||||
PropertyField(prop, "m_TooltipFormatter");
|
PropertyField(prop, "m_TooltipFormatter");
|
||||||
PropertyField(prop, "m_NumericFormatter");
|
PropertyField(prop, "m_NumericFormatter");
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ namespace XCharts
|
|||||||
[SerializeField] private float m_BorderWidth = 0;
|
[SerializeField] private float m_BorderWidth = 0;
|
||||||
[SerializeField] private Color32 m_BorderColor;
|
[SerializeField] private Color32 m_BorderColor;
|
||||||
[SerializeField] private Color32 m_BorderColor0;
|
[SerializeField] private Color32 m_BorderColor0;
|
||||||
|
[SerializeField] private Color32 m_BorderToColor;
|
||||||
[SerializeField] [Range(0, 1)] private float m_Opacity = 1;
|
[SerializeField] [Range(0, 1)] private float m_Opacity = 1;
|
||||||
[SerializeField] private string m_TooltipFormatter;
|
[SerializeField] private string m_TooltipFormatter;
|
||||||
[SerializeField] private string m_NumericFormatter = "";
|
[SerializeField] private string m_NumericFormatter = "";
|
||||||
@@ -68,6 +69,7 @@ namespace XCharts
|
|||||||
m_BorderWidth = 0;
|
m_BorderWidth = 0;
|
||||||
m_BorderColor = Color.clear;
|
m_BorderColor = Color.clear;
|
||||||
m_BorderColor0 = Color.clear;
|
m_BorderColor0 = Color.clear;
|
||||||
|
m_BorderToColor = Color.clear;
|
||||||
m_Opacity = 1;
|
m_Opacity = 1;
|
||||||
m_TooltipFormatter = null;
|
m_TooltipFormatter = null;
|
||||||
m_NumericFormatter = "";
|
m_NumericFormatter = "";
|
||||||
@@ -181,6 +183,14 @@ namespace XCharts
|
|||||||
set { if (PropertyUtil.SetColor(ref m_BorderColor0, value)) SetVerticesDirty(); }
|
set { if (PropertyUtil.SetColor(ref m_BorderColor0, value)) SetVerticesDirty(); }
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 边框的渐变色。
|
||||||
|
/// </summary>
|
||||||
|
public Color32 borderToColor
|
||||||
|
{
|
||||||
|
get { return m_BorderToColor; }
|
||||||
|
set { if (PropertyUtil.SetColor(ref m_BorderToColor, value)) SetVerticesDirty(); }
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
/// 边框宽。
|
/// 边框宽。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float borderWidth
|
public float borderWidth
|
||||||
|
|||||||
@@ -106,8 +106,8 @@ namespace XCharts
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
plt = new Vector3(pX + borderWidth, pY + space + barWidth - borderWidth);
|
plt = new Vector3(pX + borderWidth, pY + space + barWidth - borderWidth);
|
||||||
prt = new Vector3(pX + currHig - borderWidth , pY + space + barWidth - borderWidth);
|
prt = new Vector3(pX + currHig - borderWidth, pY + space + barWidth - borderWidth);
|
||||||
prb = new Vector3(pX + currHig - borderWidth , pY + space + borderWidth);
|
prb = new Vector3(pX + currHig - borderWidth, pY + space + borderWidth);
|
||||||
plb = new Vector3(pX + borderWidth, pY + space + borderWidth);
|
plb = new Vector3(pX + borderWidth, pY + space + borderWidth);
|
||||||
}
|
}
|
||||||
top = new Vector3(pX + currHig - borderWidth, pY + space + barWidth / 2);
|
top = new Vector3(pX + currHig - borderWidth, pY + space + barWidth / 2);
|
||||||
@@ -301,7 +301,6 @@ namespace XCharts
|
|||||||
plt = ClampInGrid(grid, plt);
|
plt = ClampInGrid(grid, plt);
|
||||||
prt = ClampInGrid(grid, prt);
|
prt = ClampInGrid(grid, prt);
|
||||||
}
|
}
|
||||||
var borderColor = itemStyle.borderColor;
|
|
||||||
var itemWidth = Mathf.Abs(prb.x - plt.x);
|
var itemWidth = Mathf.Abs(prb.x - plt.x);
|
||||||
var itemHeight = Mathf.Abs(prt.y - plb.y);
|
var itemHeight = Mathf.Abs(prt.y - plb.y);
|
||||||
var center = new Vector3((plt.x + prb.x) / 2, (prt.y + plb.y) / 2);
|
var center = new Vector3((plt.x + prb.x) / 2, (prt.y + plb.y) / 2);
|
||||||
@@ -316,8 +315,8 @@ namespace XCharts
|
|||||||
{
|
{
|
||||||
CheckClipAndDrawPolygon(vh, plb, plt, prt, prb, areaColor, areaToColor, serie.clip, grid);
|
CheckClipAndDrawPolygon(vh, plb, plt, prt, prb, areaColor, areaToColor, serie.clip, grid);
|
||||||
}
|
}
|
||||||
UGL.DrawBorder(vh, center, itemWidth, itemHeight, borderWidth, borderColor, 0,
|
UGL.DrawBorder(vh, center, itemWidth, itemHeight, borderWidth, itemStyle.borderColor,
|
||||||
itemStyle.cornerRadius, isYAxis);
|
itemStyle.borderToColor, 0, itemStyle.cornerRadius, isYAxis);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -329,7 +328,6 @@ namespace XCharts
|
|||||||
plt = ClampInGrid(grid, plt);
|
plt = ClampInGrid(grid, plt);
|
||||||
prt = ClampInGrid(grid, prt);
|
prt = ClampInGrid(grid, prt);
|
||||||
}
|
}
|
||||||
var borderColor = itemStyle.borderColor;
|
|
||||||
var itemWidth = Mathf.Abs(prt.x - plb.x);
|
var itemWidth = Mathf.Abs(prt.x - plb.x);
|
||||||
var itemHeight = Mathf.Abs(plt.y - prb.y);
|
var itemHeight = Mathf.Abs(plt.y - prb.y);
|
||||||
var center = new Vector3((plb.x + prt.x) / 2, (plt.y + prb.y) / 2);
|
var center = new Vector3((plb.x + prt.x) / 2, (plt.y + prb.y) / 2);
|
||||||
@@ -345,8 +343,8 @@ namespace XCharts
|
|||||||
CheckClipAndDrawPolygon(vh, ref prb, ref plb, ref plt, ref prt, areaColor, areaToColor,
|
CheckClipAndDrawPolygon(vh, ref prb, ref plb, ref plt, ref prt, areaColor, areaToColor,
|
||||||
serie.clip, grid);
|
serie.clip, grid);
|
||||||
}
|
}
|
||||||
UGL.DrawBorder(vh, center, itemWidth, itemHeight, borderWidth, borderColor, 0,
|
UGL.DrawBorder(vh, center, itemWidth, itemHeight, borderWidth, itemStyle.borderColor,
|
||||||
itemStyle.cornerRadius, isYAxis);
|
itemStyle.borderToColor, 0, itemStyle.cornerRadius, isYAxis);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -146,8 +146,8 @@ namespace XCharts
|
|||||||
}
|
}
|
||||||
if (borderWidth != 0)
|
if (borderWidth != 0)
|
||||||
{
|
{
|
||||||
UGL.DrawBorder(vh, center, itemWidth, itemHeight, borderWidth, itemStyle.borderColor, 0,
|
UGL.DrawBorder(vh, center, itemWidth, itemHeight, borderWidth, itemStyle.borderColor,
|
||||||
itemStyle.cornerRadius, true, 0.5f);
|
itemStyle.borderToColor, 0, itemStyle.cornerRadius, true, 0.5f);
|
||||||
}
|
}
|
||||||
return new Rect(plb.x, plb.y, xEnd - xStart, barWidth);
|
return new Rect(plb.x, plb.y, xEnd - xStart, barWidth);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,6 +137,8 @@ namespace XCharts
|
|||||||
var borderWidth = serie.itemStyle.show ? serie.itemStyle.borderWidth : 0;
|
var borderWidth = serie.itemStyle.show ? serie.itemStyle.borderWidth : 0;
|
||||||
var borderColor = serie.itemStyle.opacity > 0 ? serie.itemStyle.borderColor : ChartConst.clearColor32;
|
var borderColor = serie.itemStyle.opacity > 0 ? serie.itemStyle.borderColor : ChartConst.clearColor32;
|
||||||
borderColor.a = (byte)(borderColor.a * serie.itemStyle.opacity);
|
borderColor.a = (byte)(borderColor.a * serie.itemStyle.opacity);
|
||||||
|
var borderToColor = serie.itemStyle.opacity > 0 ? serie.itemStyle.borderToColor : ChartConst.clearColor32;
|
||||||
|
borderToColor.a = (byte)(borderToColor.a * serie.itemStyle.opacity);
|
||||||
serie.dataPoints.Clear();
|
serie.dataPoints.Clear();
|
||||||
serie.animation.InitProgress(1, 0, xCount);
|
serie.animation.InitProgress(1, 0, xCount);
|
||||||
var animationIndex = serie.animation.GetCurrIndex();
|
var animationIndex = serie.animation.GetCurrIndex();
|
||||||
@@ -175,8 +177,8 @@ namespace XCharts
|
|||||||
}
|
}
|
||||||
if (animationIndex >= 0 && i > animationIndex) continue;
|
if (animationIndex >= 0 && i > animationIndex) continue;
|
||||||
serieData.canShowLabel = true;
|
serieData.canShowLabel = true;
|
||||||
var emphasis = (tooltip.show
|
var emphasis = (tooltip.show
|
||||||
&& i == (int)tooltip.runtimeXValues[0]
|
&& i == (int)tooltip.runtimeXValues[0]
|
||||||
&& j == (int)tooltip.runtimeYValues[0])
|
&& j == (int)tooltip.runtimeYValues[0])
|
||||||
|| visualMap.runtimeSelectedIndex > 0;
|
|| visualMap.runtimeSelectedIndex > 0;
|
||||||
var rectWid = xWidth - 2 * borderWidth;
|
var rectWid = xWidth - 2 * borderWidth;
|
||||||
@@ -184,15 +186,18 @@ namespace XCharts
|
|||||||
UGL.DrawRectangle(vh, pos, rectWid / 2, rectHig / 2, color);
|
UGL.DrawRectangle(vh, pos, rectWid / 2, rectHig / 2, color);
|
||||||
if (borderWidth > 0 && !ChartHelper.IsClearColor(borderColor))
|
if (borderWidth > 0 && !ChartHelper.IsClearColor(borderColor))
|
||||||
{
|
{
|
||||||
UGL.DrawBorder(vh, pos, rectWid, rectHig, borderWidth, borderColor);
|
UGL.DrawBorder(vh, pos, rectWid, rectHig, borderWidth, borderColor, borderToColor);
|
||||||
}
|
}
|
||||||
if (visualMap.hoverLink && emphasis && serie.emphasis.show
|
if (visualMap.hoverLink && emphasis && serie.emphasis.show
|
||||||
&& serie.emphasis.itemStyle.borderWidth > 0)
|
&& serie.emphasis.itemStyle.borderWidth > 0)
|
||||||
{
|
{
|
||||||
var emphasisBorderWidth = serie.emphasis.itemStyle.borderWidth;
|
var emphasisBorderWidth = serie.emphasis.itemStyle.borderWidth;
|
||||||
var emphasisBorderColor = serie.emphasis.itemStyle.opacity > 0
|
var emphasisBorderColor = serie.emphasis.itemStyle.opacity > 0
|
||||||
? serie.emphasis.itemStyle.borderColor : ChartConst.clearColor32;
|
? serie.emphasis.itemStyle.borderColor : ChartConst.clearColor32;
|
||||||
UGL.DrawBorder(vh, pos, rectWid, rectHig, emphasisBorderWidth, emphasisBorderColor);
|
var emphasisBorderToColor = serie.emphasis.itemStyle.opacity > 0
|
||||||
|
? serie.emphasis.itemStyle.borderToColor : ChartConst.clearColor32;
|
||||||
|
UGL.DrawBorder(vh, pos, rectWid, rectHig, emphasisBorderWidth, emphasisBorderColor,
|
||||||
|
emphasisBorderToColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
/************************************************/
|
/******************************************/
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
/* Copyright (c) 2020 monitor1394 */
|
||||||
/* https://github.com/monitor1394 */
|
/* https://github.com/monitor1394 */
|
||||||
/* */
|
/* */
|
||||||
/************************************************/
|
/******************************************/
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@@ -477,7 +477,7 @@ namespace XUGL
|
|||||||
vh.AddUIVertexQuad(s_Vertex);
|
vh.AddUIVertexQuad(s_Vertex);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void InitCornerRadius(float[] cornerRadius, float width, float height, bool isYAxis,
|
private static void InitCornerRadius(float[] cornerRadius, float width, float height, bool horizontal,
|
||||||
ref float brLt, ref float brRt, ref float brRb, ref float brLb, ref bool needRound)
|
ref float brLt, ref float brRt, ref float brRb, ref float brLb, ref bool needRound)
|
||||||
{
|
{
|
||||||
if (cornerRadius == null) return;
|
if (cornerRadius == null) return;
|
||||||
@@ -498,7 +498,7 @@ namespace XUGL
|
|||||||
if (brRt > 0 && brRt <= 1) brRt = brRt * min;
|
if (brRt > 0 && brRt <= 1) brRt = brRt * min;
|
||||||
if (brRb > 0 && brRb <= 1) brRb = brRb * min;
|
if (brRb > 0 && brRb <= 1) brRb = brRb * min;
|
||||||
if (brLb > 0 && brLb <= 1) brLb = brLb * min;
|
if (brLb > 0 && brLb <= 1) brLb = brLb * min;
|
||||||
if (isYAxis)
|
if (horizontal)
|
||||||
{
|
{
|
||||||
if (brLb + brLt >= height)
|
if (brLb + brLt >= height)
|
||||||
{
|
{
|
||||||
@@ -807,8 +807,28 @@ namespace XUGL
|
|||||||
/// <param name="rotate"></param>
|
/// <param name="rotate"></param>
|
||||||
/// <param name="cornerRadius"></param>
|
/// <param name="cornerRadius"></param>
|
||||||
public static void DrawBorder(VertexHelper vh, Vector3 center, float rectWidth, float rectHeight,
|
public static void DrawBorder(VertexHelper vh, Vector3 center, float rectWidth, float rectHeight,
|
||||||
float borderWidth, Color32 color, float rotate = 0, float[] cornerRadius = null, bool isYAxis = false,
|
float borderWidth, Color32 color, float rotate = 0, float[] cornerRadius = null,
|
||||||
float smoothness = 1f)
|
bool horizontal = false, float smoothness = 1f)
|
||||||
|
{
|
||||||
|
DrawBorder(vh, center, rectWidth, rectHeight, borderWidth, color, s_ClearColor32, rotate,
|
||||||
|
cornerRadius, horizontal, smoothness);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 绘制(圆角)边框
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="vh"></param>
|
||||||
|
/// <param name="center"></param>
|
||||||
|
/// <param name="rectWidth"></param>
|
||||||
|
/// <param name="rectHeight"></param>
|
||||||
|
/// <param name="borderWidth"></param>
|
||||||
|
/// <param name="color"></param>
|
||||||
|
/// <param name="toColor"></param>
|
||||||
|
/// <param name="rotate"></param>
|
||||||
|
/// <param name="cornerRadius"></param>
|
||||||
|
public static void DrawBorder(VertexHelper vh, Vector3 center, float rectWidth, float rectHeight,
|
||||||
|
float borderWidth, Color32 color, Color32 toColor, float rotate = 0, float[] cornerRadius = null,
|
||||||
|
bool horizontal = false, float smoothness = 1f)
|
||||||
{
|
{
|
||||||
if (borderWidth == 0 || UGLHelper.IsClearColor(color)) return;
|
if (borderWidth == 0 || UGLHelper.IsClearColor(color)) return;
|
||||||
var halfWid = rectWidth / 2;
|
var halfWid = rectWidth / 2;
|
||||||
@@ -823,9 +843,13 @@ namespace XUGL
|
|||||||
var rbOt = new Vector3(center.x + halfWid + borderWidth, center.y - halfHig - borderWidth);
|
var rbOt = new Vector3(center.x + halfWid + borderWidth, center.y - halfHig - borderWidth);
|
||||||
float brLt = 0, brRt = 0, brRb = 0, brLb = 0;
|
float brLt = 0, brRt = 0, brRb = 0, brLb = 0;
|
||||||
bool needRound = false;
|
bool needRound = false;
|
||||||
InitCornerRadius(cornerRadius, rectWidth, rectHeight, isYAxis, ref brLt, ref brRt, ref brRb,
|
InitCornerRadius(cornerRadius, rectWidth, rectHeight, horizontal, ref brLt, ref brRt, ref brRb,
|
||||||
ref brLb, ref needRound);
|
ref brLb, ref needRound);
|
||||||
var tempCenter = Vector3.zero;
|
var tempCenter = Vector3.zero;
|
||||||
|
if (UGLHelper.IsClearColor(toColor))
|
||||||
|
{
|
||||||
|
toColor = color;
|
||||||
|
}
|
||||||
if (needRound)
|
if (needRound)
|
||||||
{
|
{
|
||||||
var lbIn2 = lbIn;
|
var lbIn2 = lbIn;
|
||||||
@@ -839,7 +863,8 @@ namespace XUGL
|
|||||||
if (brLt > 0)
|
if (brLt > 0)
|
||||||
{
|
{
|
||||||
tempCenter = new Vector3(center.x - halfWid + brLt, center.y + halfHig - brLt);
|
tempCenter = new Vector3(center.x - halfWid + brLt, center.y + halfHig - brLt);
|
||||||
DrawDoughnut(vh, tempCenter, brLt, brLt + borderWidth, color, s_ClearColor32, 270, 360, smoothness);
|
DrawDoughnut(vh, tempCenter, brLt, brLt + borderWidth, horizontal ? color : toColor, s_ClearColor32,
|
||||||
|
270, 360, smoothness);
|
||||||
ltIn = tempCenter + brLt * Vector3.left;
|
ltIn = tempCenter + brLt * Vector3.left;
|
||||||
ltOt = tempCenter + (brLt + borderWidth) * Vector3.left;
|
ltOt = tempCenter + (brLt + borderWidth) * Vector3.left;
|
||||||
ltIn2 = tempCenter + brLt * Vector3.up;
|
ltIn2 = tempCenter + brLt * Vector3.up;
|
||||||
@@ -848,7 +873,7 @@ namespace XUGL
|
|||||||
if (brRt > 0)
|
if (brRt > 0)
|
||||||
{
|
{
|
||||||
tempCenter = new Vector3(center.x + halfWid - brRt, center.y + halfHig - brRt);
|
tempCenter = new Vector3(center.x + halfWid - brRt, center.y + halfHig - brRt);
|
||||||
DrawDoughnut(vh, tempCenter, brRt, brRt + borderWidth, color, s_ClearColor32, 0, 90, smoothness);
|
DrawDoughnut(vh, tempCenter, brRt, brRt + borderWidth, toColor, s_ClearColor32, 0, 90, smoothness);
|
||||||
rtIn = tempCenter + brRt * Vector3.up;
|
rtIn = tempCenter + brRt * Vector3.up;
|
||||||
rtOt = tempCenter + (brRt + borderWidth) * Vector3.up;
|
rtOt = tempCenter + (brRt + borderWidth) * Vector3.up;
|
||||||
rtIn2 = tempCenter + brRt * Vector3.right;
|
rtIn2 = tempCenter + brRt * Vector3.right;
|
||||||
@@ -857,7 +882,8 @@ namespace XUGL
|
|||||||
if (brRb > 0)
|
if (brRb > 0)
|
||||||
{
|
{
|
||||||
tempCenter = new Vector3(center.x + halfWid - brRb, center.y - halfHig + brRb);
|
tempCenter = new Vector3(center.x + halfWid - brRb, center.y - halfHig + brRb);
|
||||||
DrawDoughnut(vh, tempCenter, brRb, brRb + borderWidth, color, s_ClearColor32, 90, 180, smoothness);
|
DrawDoughnut(vh, tempCenter, brRb, brRb + borderWidth, horizontal ? toColor : color, s_ClearColor32,
|
||||||
|
90, 180, smoothness);
|
||||||
rbIn = tempCenter + brRb * Vector3.right;
|
rbIn = tempCenter + brRb * Vector3.right;
|
||||||
rbOt = tempCenter + (brRb + borderWidth) * Vector3.right;
|
rbOt = tempCenter + (brRb + borderWidth) * Vector3.right;
|
||||||
rbIn2 = tempCenter + brRb * Vector3.down;
|
rbIn2 = tempCenter + brRb * Vector3.down;
|
||||||
@@ -872,10 +898,20 @@ namespace XUGL
|
|||||||
lbIn2 = tempCenter + brLb * Vector3.down;
|
lbIn2 = tempCenter + brLb * Vector3.down;
|
||||||
lbOt2 = tempCenter + (brLb + borderWidth) * Vector3.down;
|
lbOt2 = tempCenter + (brLb + borderWidth) * Vector3.down;
|
||||||
}
|
}
|
||||||
DrawQuadrilateral(vh, lbIn, lbOt, ltOt, ltIn, color);
|
if (horizontal)
|
||||||
DrawQuadrilateral(vh, ltIn2, ltOt2, rtOt, rtIn, color);
|
{
|
||||||
DrawQuadrilateral(vh, rtIn2, rtOt2, rbOt, rbIn, color);
|
DrawQuadrilateral(vh, lbIn, lbOt, ltOt, ltIn, color, color);
|
||||||
DrawQuadrilateral(vh, rbIn2, rbOt2, lbOt2, lbIn2, color);
|
DrawQuadrilateral(vh, ltIn2, ltOt2, rtOt, rtIn, color, toColor);
|
||||||
|
DrawQuadrilateral(vh, rtIn2, rtOt2, rbOt, rbIn, toColor, toColor);
|
||||||
|
DrawQuadrilateral(vh, rbIn2, rbOt2, lbOt2, lbIn2, toColor, color);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DrawQuadrilateral(vh, lbIn, lbOt, ltOt, ltIn, color, toColor);
|
||||||
|
DrawQuadrilateral(vh, ltIn2, ltOt2, rtOt, rtIn, toColor, toColor);
|
||||||
|
DrawQuadrilateral(vh, rtIn2, rtOt2, rbOt, rbIn, toColor, color);
|
||||||
|
DrawQuadrilateral(vh, rbIn2, rbOt2, lbOt2, lbIn2, color, color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -890,10 +926,20 @@ namespace XUGL
|
|||||||
rbIn = UGLHelper.RotateRound(rbIn, center, Vector3.forward, rotate);
|
rbIn = UGLHelper.RotateRound(rbIn, center, Vector3.forward, rotate);
|
||||||
rbOt = UGLHelper.RotateRound(rbOt, center, Vector3.forward, rotate);
|
rbOt = UGLHelper.RotateRound(rbOt, center, Vector3.forward, rotate);
|
||||||
}
|
}
|
||||||
DrawQuadrilateral(vh, lbIn, lbOt, ltOt, ltIn, color);
|
if (horizontal)
|
||||||
DrawQuadrilateral(vh, ltIn, ltOt, rtOt, rtIn, color);
|
{
|
||||||
DrawQuadrilateral(vh, rtIn, rtOt, rbOt, rbIn, color);
|
DrawQuadrilateral(vh, lbIn, lbOt, ltOt, ltIn, color, color);
|
||||||
DrawQuadrilateral(vh, rbIn, rbOt, lbOt, lbIn, color);
|
DrawQuadrilateral(vh, ltIn, ltOt, rtOt, rtIn, color, toColor);
|
||||||
|
DrawQuadrilateral(vh, rtIn, rtOt, rbOt, rbIn, toColor, toColor);
|
||||||
|
DrawQuadrilateral(vh, rbIn, rbOt, lbOt, lbIn, toColor, color);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DrawQuadrilateral(vh, lbIn, lbOt, ltOt, ltIn, color, toColor);
|
||||||
|
DrawQuadrilateral(vh, ltIn, ltOt, rtOt, rtIn, toColor, toColor);
|
||||||
|
DrawQuadrilateral(vh, rtIn, rtOt, rbOt, rbIn, toColor, color);
|
||||||
|
DrawQuadrilateral(vh, rbIn, rbOt, lbOt, lbIn, color, color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
/************************************************/
|
/******************************************/
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
/* Copyright (c) 2020 monitor1394 */
|
||||||
/* https://github.com/monitor1394 */
|
/* https://github.com/monitor1394 */
|
||||||
/* */
|
/* */
|
||||||
/************************************************/
|
/******************************************/
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@@ -20,7 +20,7 @@ namespace XUGL
|
|||||||
private Vector3 m_LeftTopPos = Vector3.zero;
|
private Vector3 m_LeftTopPos = Vector3.zero;
|
||||||
private Color32 m_BackgroundColor = new Color32(224, 224, 224, 255);
|
private Color32 m_BackgroundColor = new Color32(224, 224, 224, 255);
|
||||||
private Color32 m_DrawColor = new Color32(255, 132, 142, 255);
|
private Color32 m_DrawColor = new Color32(255, 132, 142, 255);
|
||||||
private float[] m_BorderRadius = new float[] { 2, 2, 2, 2 };
|
private float[] m_BorderRadius = new float[] { 5, 5, 10, 10 };
|
||||||
|
|
||||||
protected override void Awake()
|
protected override void Awake()
|
||||||
{
|
{
|
||||||
@@ -41,7 +41,7 @@ namespace XUGL
|
|||||||
|
|
||||||
//背景边框
|
//背景边框
|
||||||
UGL.DrawSquare(vh, m_Center, m_Width / 2, m_BackgroundColor);
|
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.DrawBorder(vh, m_Center, m_Width, m_Height, 40, Color.green, Color.red, 0, m_BorderRadius,false,1);
|
||||||
|
|
||||||
//点
|
//点
|
||||||
UGL.DrawCricle(vh, m_LeftTopPos + new Vector3(20, -20), 10, m_DrawColor);
|
UGL.DrawCricle(vh, m_LeftTopPos + new Vector3(20, -20), 10, m_DrawColor);
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
/************************************************/
|
/******************************************/
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
/* Copyright (c) 2020 monitor1394 */
|
||||||
/* https://github.com/monitor1394 */
|
/* https://github.com/monitor1394 */
|
||||||
/* */
|
/* */
|
||||||
/************************************************/
|
/******************************************/
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|||||||
Reference in New Issue
Block a user