Unity一键自动将多个FBX文件生成AB包+又一些小玩意

今天闲来无事,便写了这个博客,大家感兴趣可以看看
首先,由于FBX是外部文件,并不能直接进行处理,所以我的思路是现将FBX文件制作成预制体,然后再打成AB包。
首先我们先在Assets工程目录下创建一个Editor文件夹,再新建一个脚本,我们将它取名为“MyCreateAB”,记住,一定要把这个脚本放在Editor目录下,只有这样Unity才能够将其识别为编辑器扩展脚本。
在这里插入图片描述

双击打开脚本进行一些小更改,先引用UnityEditor,System.IO,然后再继承自EditorWindow

using UnityEditor;
using System.IO;
public class MyCreateAB :EditorWindow

接下来再是扩展代码

//编辑器扩展
    [MenuItem("My Tools/CreateAB")]
    public static void CreateAB()
    {
   
        GetWindow<MyCreateAB>(true, "打包工具");
    }
    string filePath;
    private void OnGUI()
    {
   
        GUILayout.Label("资源路径");
        filePath = GUILayout.TextField(filePath);
        if (GUILayout.Button("开始打包"))
        {
   
            CopyDirectory(filePath);
        }
    }

在这里我们在编辑器上新增了一个"My Tools"选项,然后在下面添加了一个"CreateAB"按钮
在这里插入图片描述

点击这个按钮便会打开一个窗口,而窗口内容我们就在OnGU里面进行编写I,我写的打开之后就会是下面这样
Unity一键自动将多个FBX文件生成AB包+又一些小玩意_第1张图片
接下来便是重头戏了,关于逻辑的编写,首先我们直接将资源复制到我们工程的Resources目录下

    public static void CopyDirectory(string filePath)
    {
   
        //将资源路径下的文件复制到工程Resources目录下
        //创建Resources目录
        if (!Directory.Exists(Application.dataPath + "/Resources"))
        {
   
            Directory.CreateDirectory(Application.dataPath + "/Resources");
        }
        DirectoryInfo mainInfo = new DirectoryInfo(filePath);
        DirectoryInfo[] infos= mainInfo.GetDirectories();
        for (int i = 0; i < infos.Length; i++)
        {
   
            //没有文件夹便创建文件
            if (!Directory.Exists(Application.dataPath+ "/Resources/" + infos[i].Name))
            {
   
                Directory.CreateDirectory(Application.dataPath + "/Resources/" + infos[i].Name);
            }
            FileInfo[] files = infos[i].GetFiles();
            for (int j = 0; 

你可能感兴趣的:(unity,开发工具,c#)