using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//引入ui
//必须有 CanvasRenderer 组件
[RequireComponent(typeof(CanvasRenderer))]
public class Leidatu:MaskableGraphic
{
//定义属性
[Range(0.2f,1)] //区间值
public float[] arr;
public int n;//属性数量
public int r;//半径
public float ang;//弧度
protected override void Start()
{
arr = new float[n];
//弧度=2*PI/总数
ang = Mathf.PI * 2 / n;
for (int i = 0; i < n; i++)
{
arr[i] = 0.5f;
}
}
protected override void OnPopulateMesh(VertexHelper vh)
{
vh.Clear();//清除vh
vh.AddVert(new Vector3(0, 0, 0), Color.black, new Vector2(0, 0));
for (int i = 0; i < n; i++)
{
float x = Mathf.Sin(ang * i) * r * arr[i];
float y = Mathf.Cos(ang * i) * r * arr[i];
vh.AddVert(new Vector3(x, y, 0), Color.red, new Vector2(0, 0));
if (i==0)
{
vh.AddTriangle(0, n, 1);
}
else
{
vh.AddTriangle(0, i, i + 1);
}
}
}
public void SetMesh(float[] brr)
{
arr = brr;
SetAllDirty();//设置脏数据
}
}