多边形雷达图作为游戏中直观体现角色各项数值的UI在许多游戏中得到应用。目前关于unity中实现雷达图的方式的教程有很多,这里提供一种UGUI实现方案,主要有以下功能:
1.支持3边以上的任意多边形。
2.使用PropertyDrawer扩展了Inspector面板,方便调节
3.支持点击穿透判定:
实现步骤:
一、实现PolygonImageEdge类,用来表示多边形雷达图的边列表,首先假设UI有N条边,其中第I条边的权重为W(0<W<=1),则可以计算出该边的顶点在局部空间中的坐标:
[System.Serializable]
public class PolygonImageEdge
{
public int EdgeCount
{
get
{
if (m_Weights == null)
return 0;
return m_Weights.Count;
}
}
public List<float> Weights
{
get { return m_Weights; }
}