Example #1
0
        /// <summary>
        /// 获取他的真实位置
        /// </summary>
        /// <param name="path">相对于ResWhichIsNotAB目录的路径</param>
        /// <returns></returns>
        public string GetPathOfResWhichIsNotAB(string path)
        {
#if UNITY_EDITOR && !AB_MODE
            return(ResHelper.GetAssetsResWichIsNotABFolder() + path);
#else
            return(ResHelper.GetResFolder() + path);
#endif
        }
Example #2
0
        /// <summary>
        /// 打包
        /// </summary>
        /// <param name="target"></param>
        /// <param name="path"></param>
        /// <param name="dev"></param>
        public void BuildPack(BuildTarget target, string path, bool dev)
        {
            //copy res 到
            string org = ResHelper.GetResFolder(target);
            string dst = Application.streamingAssetsPath + "/Res/";

            FileUtil.CopyDirectory("*", org, dst);

            //刷新一下
            AssetDatabase.Refresh();

            // 若干设置
            PlayerSettings.defaultScreenHeight     = 960;
            PlayerSettings.defaultScreenWidth      = 540;
            PlayerSettings.displayResolutionDialog = ResolutionDialogSetting.Disabled;
            PlayerSettings.defaultIsFullScreen     = false;

            //BuildOptions
            BuildOptions buildOtions = BuildOptions.None;

            if (dev == true)
            {
                buildOtions = BuildOptions.Development;
            }

            //打包
            string[] BUILDSCENE = { "Assets/_Scenes/Start.unity", "Assets/_Scenes/Load.unity" };

            string ret = BuildPipeline.BuildPlayer(BUILDSCENE, path, target, buildOtions);

            if (ret.Length > 0)
            {
                UnityEngine.Debug.LogError("打包失败!" + ret);
                return;
            }
        }
Example #3
0
        /// <summary>
        /// BuildRes
        /// </summary>
        /// <param name="target"></param>
        public void BuildRes(BuildTarget target)
        {
            //切换平台
            UnityEditor.EditorUserBuildSettings.SwitchActiveBuildTarget(BuildPipeline.GetBuildTargetGroup(target), target);

            //编译AB
            {
                string abFolder = ResHelper.GetABFolder(target);
                Directory.CreateDirectory(abFolder);

                //编译AB
                var manifest = BuildPipeline.BuildAssetBundles(abFolder, assetBundleBuildList.ToArray(), BuildAssetBundleOptions.ChunkBasedCompression, target);

                //所有的
                string[] abNameArray = manifest.GetAllAssetBundles();

                //删除无用的AB
                HashSet <string> abNameSet = new HashSet <string>(abNameArray);
                string[]         files     = Directory.GetFiles(abFolder);
                foreach (var item in files)
                {
                    string fileName = Path.GetFileName(item);
                    fileName = fileName.Replace(".manifest", "");
                    if (!abNameSet.Contains(fileName) && fileName != "AB")
                    {
                        Log.Print("删除AB:" + item);
                        File.Delete(item);
                    }
                }
            }

            //复制不打成AB的文件
            FileUtil.CopyDirectory("*", ResHelper.GetAssetsResWichIsNotABFolder(), ResHelper.GetResFolder(target), false);

            //复制
            foreach (var copyFolder in this.config.copyFolderList)
            {
                string org     = ResHelper.GetAssetsResFolder() + copyFolder.folder;
                string dst     = ResHelper.GetResFolder(target) + copyFolder.folder;
                string pattern = "*";
                if (copyFolder.pattern != null)
                {
                    pattern = copyFolder.pattern;
                }
                FileUtil.CopyDirectory(pattern, org, dst);
            }

            //复制Lua
            {
                string dst = ResHelper.GetLuaFolder();
                if (Directory.Exists(dst))
                {
                    Directory.Delete(dst, true);
                }
                FileUtil.CopyDirectory("*.lua", LuaConst.luaDir, dst, false);
                FileUtil.CopyDirectory("*.lua", LuaConst.toluaDir, dst, false);
            }


            //生成sbf
            CreateSBFAdnSave(ResHelper.GetResFolder(target));
        }