首先 创建Editor编辑器文件夹
- 在Editor 文件夹下的脚本,只在editor下执行,不是runtime,Assets文件夹下可以有多个Editor文件夹,Editor文件夹的具体位置,影响程序集编译的顺序。
创建脚本 ExportXXX:
[MenuItem("XXX/ExportMesh")]
public static void ExportMesh()
{
Mesh mesh = new Mesh();//mesh对象
VertexHelper vh = new VertexHelper();//顶点助手
float r = 1;//内圈半径
float r1 = 2;//外圈半径
int num = 30;//数量
float ang = Mathf.PI * 2 / (float)num;//弧度
MenuItem 属性用于向主菜单和检视面板上下文菜单添加菜单项。
该 MenuItem 属性能够将任何静态函数转变为菜单命令。仅静态函数可使用 MenuItem 属性。
点击对应的他就会执行对应的静态函数
for (int i = 0; i <= num; i++)
{
float x = Mathf.Sin(ang * i) * r;
float y = Mathf.Cos(ang * i) * r;
float uvx = (float)i / (float)num;
vh.AddVert(new Vector3(x, y, 0), Color.white, new Vector2(uvx, 0));
float x1 = Mathf.Sin(ang * i) * r1;
float y1 = Mathf.Cos(ang * i) * r1;
vh.AddVert(new Vector3(x1, y1, 0), Color.white, new Vector2(uvx, 1));
if (i < num)
{
//正面
vh.AddTriangle(2 * i, 2 * i + 1, 2 * (i + 1) + 1);
vh.AddTriangle(2 * i, 2 * (i + 1) + 1, 2 * (i + 1));
//反面
vh.AddTriangle(2 * i, 2 * (i + 1) + 1, 2 * i + 1);
vh.AddTriangle(2 * i, 2 * (i + 1), 2 * (i + 1) + 1);
}
}
//顶点助手填充mesh
vh.FillMesh(mesh);
//创建mesh预制体在路径下
AssetDatabase.CreateAsset(mesh, "Assets/刀光.asset");
//刷新资源
AssetDatabase.Refresh();
}
点击之后 就会生成圆环Mesh对象