博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BuildAssetBundles文件打包
阅读量:5323 次
发布时间:2019-06-14

本文共 1690 字,大约阅读时间需要 5 分钟。

BuildAssetBundles文件打包:

public class BuildAssetBundlesTest : Editor

{

    //定义打包文件路径

    public static string sourpath = Application.dataPath + "/Res";

    //窗口打包按键制作

    [MenuItem("XL/AssetBundle/BundleAssetsss")]

    //BuildAssetBundle方法(打包主方法)

    static void BuildAssetBundle()

    {

                  //调用方法清理原有打包文件名

        clearName();

                  //打包实现 方法

        pack(sourpath);

        string path = Application.streamingAssetsPath+"/haha";  //打包后文件路径

            //判断是否存在,有则进行删除

        if (Directory.Exists(path) == false)

        {

            Directory.CreateDirectory(path);

        }

             //固定格式

        BuildPipeline.BuildAssetBundles(path,BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);

    }

    //清理旧的打包文件

    static void clearName()

    {

        string[] oldName = AssetDatabase.GetAllAssetBundleNames();

        for (int i = 0; i < oldName.Length; i++)

        {

                      //删除文件名

            AssetDatabase.RemoveAssetBundleName(oldName[i], true);

        }

    }

    //根据路径进行打包

    static void pack(string source)

    {

         //字典存放数据

        DirectoryInfo folder = new DirectoryInfo(source);、

         //得到数据流

        FileSystemInfo[] files = folder.GetFileSystemInfos();

        int length = files.Length;

         //分文件夹分文件逐步打包

        for (int i = 0; i < length; i++)

        {

            if (files[i] is DirectoryInfo)

            {

                pack(files[i].FullName);

            }

            else

            {

                if (!files[i].Name.EndsWith(".meta"))

                {

                    substring(files[i].FullName);

                }

            }

        }

    }

    //得到想要的文件名格式

    static void substring(string sources)

    {

        string str01 = sources.Replace("\\", "/");

        string str02 = str01.Substring(Application.dataPath.Length - 6);

        string str03 = str01.Substring(Application.dataPath.Length + 1);

        AssetImporter assetImporter = AssetImporter.GetAtPath(str02);

        string str04 = str03.Substring(str03.IndexOf("/") + 1, str03.LastIndexOf("/") - str03.IndexOf("/")-2);

        assetImporter.assetBundleName = str04;

    }

}

 注:文件打包需要根据设置的路径等进行设配修改文件打包的文件名

转载于:https://www.cnblogs.com/XiaoLang0/p/9583775.html

你可能感兴趣的文章
freebsd 实现 tab 命令 补全 命令 提示
查看>>
struts1和struts2的区别
查看>>
函数之匿名函数
查看>>
shell习题第16题:查用户
查看>>
实验4 [bx]和loop的使用
查看>>
Redis常用命令
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
redis cluster 集群资料
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
centos系统python2.7更新到3.5
查看>>
C#类与结构体究竟谁快——各种函数调用模式速度评测
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>