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,我写的打开之后就会是下面这样
在这里插入图片描述
接下来便是重头戏了,关于逻辑的编写,首先我们直接将资源复制到我们工程的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; 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值