zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    LoadRunner-参数化(参数间关联)
    LoadRunner-参数化(添加参数值)
    LoadRunner-参数化(连接数据库)
    LoadRunner-录制脚本中文显示乱码
    LoadRunner-循环
    LoadRunner-关联相关(解决方法二)
    LoadRunner-关联报错(解决方法一)
    LoadRunner-关联问题(栏目列表较多关联不了想要的id)
    LoadRunner-关联(自动关联和手动关联)
    Java基础之处理事件——选项按钮的鼠标监听器(Lottery 2 with mouse listener)
  • 原文地址:https://www.cnblogs.com/XiaoLang0/p/9583775.html
Copyright © 2011-2022 走看看