先选中要制作成预制体的物体,然后在菜单栏里选择Tools》BatchPrefab All Children即可
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
public class CreatePrefab : Editor
{
static bool ContainsSameName = false;
[MenuItem("Tools/BatchPrefab All Children")]
public static void BatchPrefab()
{
object[] obj = Selection.GetFiltered(typeof(GameObject), SelectionMode.Deep);
if (obj != null)
{
if (!Directory.Exists("Assets/Resources/MyPrefabs"))
{
AssetDatabase.CreateFolder("Assets", "Resources");
AssetDatabase.CreateFolder("Assets/Resources", "MyPrefabs");
}
for (int i = 0; i < obj.Length; i++)
{
GameObject temobj = obj[i] as GameObject;
PrefabUtility.CreatePrefab("Assets/Resources/MyPrefabs/" + temobj.name + ".prefab", temobj);
}
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
}