Unity中 批量设置成 预制体

在unity 中 设置预制体时,一般情况下 是一个一个的拖拽 ,很方便。 但是,遇到需求是 制作大量的预支体时, 一个一个的拖拽,效率很低, 也很无聊。查找资料, 发现 是可以批量的制作预制体的。步骤如下:

  1. 需要引用unityEditor 命名空间, 用这个命名空间的话 , 脚本一般写在Editor 文件夹下面(没有的话自己创建一个)。
  2. 写一个静态方法来生成预制体, 方法的标头需要 [MenuItem(“Tools/ CreatPrefab”)]来修饰;
  3. 直接生成预支体的方法 PrefabUtility.CreatePrefab();
  4. 如果 所选的物体是预制体的话需要如下的方法了
    PrefabUtility.CreateEmptyPrefab(); // 首先生成一个空的预支体;
    tempPrefab = PrefabUtility.ReplacePrefab(); // 然后在替换掉他;

5 贴出 代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
using System;

public class FbxToPrefabInEditor
{
    [MenuItem("Tools/ CreatPrefab")]
    public static void CreatPrefab()
    {

        Transform[] aaaa = Selection.transforms;    //   只能在 Hierarchy 面板下多选,在其他面板 下 只能 选一个
        Debug.Log(aaaa.Length);
        if (aaaa.Length==0)
        {
            return;
        }
       // UnityEngine.Object tempPrefab;

        //if (aaaa[0].transform.GetComponent())
        //{
        //    Debug.Log("aaaaaaaa");

        //}
        Debug.Log(Application.dataPath + " lujing");

        for (int i = 0; i < aaaa.Length; i++)
        {
            //tempPrefab = PrefabUtility.CreateEmptyPrefab(Application.dataPath+"/0222"+ aaaa[i].name+".prefab");
            //tempPrefab = PrefabUtility.ReplacePrefab(aaaa[i].gameObject, tempPrefab);
            //Debug.Log(aaaa[i].name);

            PrefabUtility.CreatePrefab("Assets/0222/" + aaaa[i].name + ".prefab" +
                "", aaaa[i].gameObject);
            //foreach (var item in aaaa)
            //{

            //}

            // Transform tParent = ((GameObject)Selection.activeObject).transform;

            //UnityEngine.Object tempPrefab;
            // int i = 0;
            // foreach (Transform t in tParent)
            // {
            //     tempPrefab = PrefabUtility.CreateEmptyPrefab("Assets/Editor" + t.name + ".prefab");
            //     tempPrefab = PrefabUtility.ReplacePrefab(t.gameObject, tempPrefab);
            //     i++;
            // }
        }
    }

你可能感兴趣的:(Unity,入门)