创建刀光的网格并导出
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEditor;
public class ExportXXX : MonoBehaviour
{
//导出网格
[MenuItem("XXX/ExportMesh")]
public static void ExportMesh()
{
//创建网格
Mesh mesh = new Mesh();
VertexHelper vh = new VertexHelper();
float r = 1;
float r1 = 2;
int num = 30;
float ang = 2 * Mathf.PI / (float)num;
for (int i = 0; i < num + 1; i++)
{
float x = Mathf.Sin(i * ang) * r;
float y = Mathf.Cos(i * ang) * r;
float uvx = (float)i / (float)num;
vh.AddVert(new Vector3(x, y, 0), Color.white, new Vector2(uvx, 0));
float x1 = Mathf.Sin(i * ang) * r1;
float y1 = Mathf.Cos(i * ang) * r1;
vh.AddVert(new Vector3(x1, y1, 0), Color.white, new Vector2(uvx, 1));
if (i < num)
{
vh.AddTriangle(i * 2, i * 2 + 1, (i + 1) * 2 + 1);
vh.AddTriangle(i * 2, (i + 1) * 2 + 1, (i + 1) * 2);
vh.AddTriangle(i * 2, (i + 1) * 2 + 1, i * 2 + 1);
vh.AddTriangle(i * 2, (i + 1) * 2, (i + 1) * 2 + 1);
}
}
vh.FillMesh(mesh);
//导出网格
AssetDatabase.CreateAsset(mesh, "Assets/刀光.asset");
//刷新编辑器
AssetDatabase.Refresh();
}
public GameObject[] prefabs;
// Start is called before the first frame update
void Start()
{
//导出模型的缩略图
//for (int i = 0; i < prefabs.Length; i++)
//{
// EditorUtility.SetDirty(prefabs[i]);
// Texture2D image = AssetPreview.GetAssetPreview(prefabs[i]);
// System.IO.File.WriteAllBytes(Application.dataPath + "/Resources/Image/XX_" + i + ".png", image.EncodeToPNG());
//}
//AssetDatabase.Refresh();
}
// Update is called once per frame
void Update()
{
}
}
创建材质球
设置粒子特效使用网格和创建的材质球
调整3D旋转
设置生命周期内大小