赞
踩
Unity-MeshSaver/MeshSaverEditor.cs at master · pharan/Unity-MeshSaver · GitHub
使用时在meshFilter上点右键,选择Save Mesh即可。
- using UnityEditor;
- using UnityEngine;
-
- public class MeshSaverEditor : MonoBehaviour
- {
- [MenuItem("CONTEXT/MeshFilter/Save Mesh...")]
- public static void SaveMeshInPlace(MenuCommand menuCommand)
- {
- MeshFilter mf = menuCommand.context as MeshFilter;
- Mesh m = mf.sharedMesh;
- SaveMesh(m, m.name, false, true);
- }
-
- [MenuItem("CONTEXT/MeshFilter/Save Mesh As New Instance...")]
- public static void SaveMeshNewInstanceItem(MenuCommand menuCommand)
- {
- MeshFilter mf = menuCommand.context as MeshFilter;
- Mesh m = mf.sharedMesh;
- SaveMesh(m, m.name, true, true);
- }
-
- public static void SaveMesh(Mesh mesh, string name, bool makeNewInstance, bool optimizeMesh)
- {
- string path = EditorUtility.SaveFilePanel("Save Separate Mesh Asset", "Assets/", name, "asset");
- if (string.IsNullOrEmpty(path)) return;
-
- path = FileUtil.GetProjectRelativePath(path);
-
- Mesh meshToSave = (makeNewInstance) ? Object.Instantiate(mesh) as Mesh : mesh;
-
- if (optimizeMesh)
- MeshUtility.Optimize(meshToSave);
-
- AssetDatabase.CreateAsset(meshToSave, path);
- AssetDatabase.SaveAssets();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。