将自制网格制作为预制体
最近遇到一个问题,将一个网格变形后拖到资源栏中,准备做成预制体,但是无法成功。原因应该是未实例化,所以找到了一个办法来解决这个问题。
直接上代码:
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自带资源不同