将自制网格制作为预制体

最近遇到一个问题,将一个网格变形后拖到资源栏中,准备做成预制体,但是无法成功。原因应该是未实例化,所以找到了一个办法来解决这个问题。

直接上代码:

using UnityEngine;
using UnityEditor;

public class MeshTest : Editor {
    [MenuItem ("Custom/Export/CreateMesh")]//在任务栏上方设置快捷方式,注意必须是static,且不能有变量
     static void CreateMesh() {
        Transform[] selection = Selection.GetTransforms(SelectionMode.Editable | SelectionMode.ExcludePrefab);               //编辑模式下,获取选中的目标
        Mesh mesh = selection[0].GetComponent<MeshFilter>().sharedMesh;
        AssetDatabase.CreateAsset(mesh,"Assets/ExportedObj/Mesh.prefab");  //创建资源
      }
  }

注意事项:

1.选取网格作为预制体,生成的预制体依然是网格,再拖入到场景中,再拖回资源窗口,则变为预制体

2.选取的网格必须与unity自带资源不同

原文地址:https://www.cnblogs.com/chimo523/p/4989233.html