属性图脚本的UI脚本信息
效果图片
脚本信息
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
namespace Framework.UI.Radar
{
public class RadarProperty : Graphic
{
/// <summary>
/// 图像边的数量
/// </summary>
public uint m_Sum = 6;
/// <summary>
/// 是否显示背景
/// </summary>
public bool m_IsBG {
set; get; }
/// <summary>
/// 图片的大小
/// </summary>
public Vector2 m_Sizes {
get; set; }
/// <summary>
/// 线与属性的显示关系
/// </summary>
public PropertyAndLine TypeProperty = PropertyAndLine.PropertyOnTop;
/// <summary>
/// 是否显示属性信息
/// </summary>
public bool m_IsProperty = false;
/// <summary>
/// 属性图的颜色
/// </summary>
public Color32 m_PropertyColor = Color.blue;
public float m_MaxValues = 10;
/// <summary>
/// 属性显示偏移大小
/// </summary>
public float m_OffectValues = 0f;
public List<float> m_CurrValue = new List<float>();
/// <summary>
/// 是否描线
/// </summary>
public bool m_IsDrawLine {
set; get; }
/// <summary>
/// 线的颜色
/// </summary>
public Color32 m_LineColor = Color.black;
/// <summary>
/// 线的宽度
/// </summary>
public float m_LineSize {
set; get; }
/// <summary>
/// 线的数量
/// </summary>
public uint m_LineSum {
set; get; }
protected override void OnPopulateMesh(VertexHelper vh)
{
if (!IsActive())
{
return;
}
if (m_Sum < 3)
{
m_Sum = 3;
}
vh.Clear();
var vertexList = new List<UIVertex>();
ApplyGradient(ref vertexList);
vh.AddUIVertexTriangleStream(vertexList);
}
/// <summary>
/// 开始进行顶点描绘
/// </summary>
/// <param name="vertices">所有顶点信息</param>
private void ApplyGradient(ref List<UIVertex> vertices)
{
if (m_IsBG)
{
BGInfo(ref vertices);
}
if (TypeProperty == PropertyAndLine.PropertyOnTop)
{
if (m_IsDrawLine)
{
LineInfo(ref vertices);
}
if (m_IsProperty)
{
PropertyInfo(ref vertices);
}
}
else if(TypeProperty == PropertyAndLine.LineOnTop)
{
if (m_IsProperty)
{
PropertyInfo(ref vertices);
}
if (m_IsDrawLine)
{
LineInfo(ref vertices);
}
}
}
/// <summary>
/// 获取满属性的顶点位置信息
/// </summary>
/// <param name="count">边的数量</param>
/// <param name="r">圆的半径</param