using UnityEngine;
using UnityEngine.UI;
public class Radar : MonoBehaviour
{
public LineRenderer line;
public float[] arr;
public float r;
void Start()
{
VertexHelper vh = new VertexHelper();
var num = arr.Length;
var ang = (2 * Mathf.PI) / num;
line.positionCount = num;//描线数量
line.widthMultiplier = 0.3f;//描线粗细
vh.AddVert(Vector3.zero, Color.white, new Vector2(0.5f, 0.5f));
for (int i = 0; i < num; i++)
{
var x = Mathf.Sin(i * ang) * arr[i];
var y = Mathf.Cos(i * ang) * arr[i];
var uvx = (x + r) / (2 * r);
var uvy = (y + r) / (2 * r);
//添加顶点
vh.AddVert(new Vector3(x, y, 0), Color.white, new Vector2(uvx, uvy));
//连线绘制
if (i == 0)
{
vh.AddTriangle(0, num, 1);
}
else
{
vh.AddTriangle(0, i, i + 1);
}
//修改描边数据
line.SetPosition(i, new Vector3(x, y, 0));
}
//添加到绘制
Mesh mesh = new Mesh();
vh.FillMesh(mesh);
GetComponent<MeshFilter>().mesh = mesh;
}
}
以上绘制方式为3D绘制雷达图