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<TaKeUp>())
        //{
        //    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++;
            // }
        }
    }
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值