• BuildAssetBundles文件打包


    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;

        }

    }

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

    支持个人观看使用,如商用或转载,请告知! -----萧朗(QQ:453929789 Email:xiaolang_xl@sina.com)
  • 相关阅读:
    Linux常见命令
    CSS以及JQuery总是忽略掉的小问题
    HTML DOM appendChild() 方法
    WINUSB使用(附STM32Demo)
    STM32H7系列调试使用DCMI过程中若干注意事项
    godot初涉
    【转】使用objdump看内核源码
    scrcpy rk3399 交叉编译 meson
    gitlab hooks 钩子实现服务器代码同步至文件夹
    Linux编译笔记
  • 原文地址:https://www.cnblogs.com/XiaoLang0/p/9583775.html
Copyright © 2020-2023  润新知