Unity3d 提取mesh并保存成asset文件

Unity3d 提取mesh并保存成asset文件

应用背景

有些FBX文件过大,但是只用其中的一个mesh时,我们可以考虑把这个mesh单独提取出来保存问asset文件,这样就打打节省了程序开销。

下载链接

这里我就直接贴出下载链接https://download.csdn.net/download/qq_33789001/14027635

不过别担心,代码都会贴出。

使用步骤

1.选中需要提取的节点
在这里插入图片描述
2.添加MeshSave组件
在这里插入图片描述

3点击提取按钮在这里插入图片描述
4.提取完成
在这里插入图片描述

贴出脚本

脚本较简单,这里就不解释了

MeshSave.cs

using System;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif

public class MeshSave : MonoBehaviour
{
    
    
#if UNITY_EDITOR
    public void SaveAsset()
    {
    
    
        Debug.Log("开始提取mesh");
        try
        {
    
    
            Mesh mesh = this.GetComponent<MeshFilter>().mesh;
            if (mesh != null) {
    
    
                AssetDatabase.CreateAsset(mesh, "Assets/提取_" + name + ".asset");
                Debug.Log("提取mesh成功:提取_" + name);
            }
            else
                Debug.LogWarning("提取mesh失败:无MeshFilter组件");
        }
        catch (Exception e)
        {
    
    
            Debug.LogWarning("提取mesh失败:" + e.ToString());
        }
    }
#endif
}

MeshSaveEditor.cs

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(MeshSave))]
public class MeshSaveEditor : Editor
{
    
    
    public override void OnInspectorGUI()
    {
    
    
        DrawDefaultInspector();

        MeshSave myScript = (MeshSave)target;

        if (GUILayout.Button("提取Mesh"))
        {
    
    
            myScript.SaveAsset();
        }
    }
}

有问题的话,评论区见~~~

猜你喜欢

转载自blog.csdn.net/qq_33789001/article/details/112235826