static void GenerateResZipImp(string rootDir) { string dirRemove = rootDir + "Assets/StreamingAssets"; string publishDir = rootDir + "Publish/" + MyUnityEditorTool.GetPlatformFolderForAssetBundles(EditorUserBuildSettings.activeBuildTarget) + "/"; // if (PackageWizard.m_wizard) // { // publishDir += PackageWizard.m_wizard.version; // } MyFileUtil.DeleteDir(publishDir); MyFileUtil.CreateDir(publishDir); List <ResInfo> listResInfo = new List <ResInfo>(); //----------------------------------------------------// List <ZipResConfig> listZipConfig = ZipResConfig.GetConfigList(); foreach (ZipResConfig zipConfig in listZipConfig) { //生成Zip资源包 List <string> fileList = new List <string>(); if (string.IsNullOrEmpty(zipConfig.resDir) == false) { string fileDir = rootDir + zipConfig.resDir; if (fileDir.Contains("@Platform")) { fileDir = fileDir.Replace("@Platform", ResourcesManager.GetPlatformDir()); } if (fileDir.Contains("@Version")) { // fileDir = fileDir.Replace("@Version", SDKConfig.GetCurrentVersionResPath().ToLower()); fileDir = fileDir.Replace("@Version", "test"); } if (Directory.Exists(fileDir)) { List <string> ignoreFileTypeList = new List <string>(); ignoreFileTypeList.Add(".meta"); MyFileUtil.GetFileList(fileDir, ref fileList, zipConfig.listResSuffix, ignoreFileTypeList); } } //特殊文件 foreach (string specialResPath in zipConfig.listSpecialResPath) { string newFilePath = rootDir + specialResPath; if (File.Exists(newFilePath)) { fileList.Add(newFilePath); } } if (fileList.Count == 0) { continue; } //zip中不记录文件的时间 string zipResFilePath; // if (PackageWizard.m_wizard) // { // zipResFilePath = rootDir + "Publish/" + // MyUnityEditorTool.GetPlatformFolderForAssetBundles(EditorUserBuildSettings.activeBuildTarget) // + "/" + PackageWizard.m_wizard.version + "/" + zipConfig.resZipName; // } // else // { zipResFilePath = rootDir + "Publish/" + MyUnityEditorTool.GetPlatformFolderForAssetBundles(EditorUserBuildSettings.activeBuildTarget) + "/" + zipConfig.resZipName; // } ZIPTool.CompressFiles(fileList, dirRemove, zipResFilePath, 0, false, true); //资源信息 ResInfo resInfo = new ResInfo(); resInfo.resName = zipConfig.resZipName; resInfo.resMD5 = MD5Tool.GetByFilePath(zipResFilePath); resInfo.resSize = (int)MyFileUtil.GetFileSize(zipResFilePath); resInfo.resRequireID = zipConfig.resRequireID; // if (PackageWizard.m_wizard) // { // resInfo.resURL = PackageWizard.m_wizard.serverAddress + resInfo.resName; // } // else // { resInfo.resURL = resInfo.resName; // } listResInfo.Add(resInfo); } //----------------------------------------------------// //写到发布目录 string xmlContent = VersionInfo.SerializeInEditor(listResInfo); string xmlFilePath; // if (PackageWizard.m_wizard) // { // xmlFilePath = rootDir + "Publish/" + // MyUnityEditorTool.GetPlatformFolderForAssetBundles(EditorUserBuildSettings.activeBuildTarget) // + "/" + PackageWizard.m_wizard.version + "/VersionInfo.xml"; // } // else // { xmlFilePath = rootDir + "Publish/" + MyUnityEditorTool.GetPlatformFolderForAssetBundles(EditorUserBuildSettings.activeBuildTarget) + "/VersionInfo.xml"; // } File.WriteAllText(xmlFilePath, xmlContent); listResInfo.RemoveAll(r => r.resRequireID > 0); xmlContent = VersionInfo.SerializeInEditor(listResInfo); //写到工程目录 string xmlFileInProjectPath = rootDir + "Assets/StreamingAssets/Config/" + VersionManager.VersionInfoFilePath + MyFileUtil.EncryptXMLFileSuffix; byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes(xmlContent); data = MyFileUtil.EncryptData(data); File.WriteAllBytes(xmlFileInProjectPath, data); Debug.Log("生成资源包结束"); }
static void BuildImp(bool isBuildAssetBundle) { //清理缓存目录 MyFileUtil.DeleteDir(MyFileUtil.CacheDir); MyFileUtil.CreateDir(MyFileUtil.CacheDir); //if(MyFileUtil.IsFileExsit(Application.dataPath + "/../Publish/")) //{ MyFileUtil.CreateDir(Application.dataPath + "/../Publish/" + MyUnityEditorTool.GetPlatformFolderForAssetBundles(EditorUserBuildSettings.activeBuildTarget) + "/"); //} //清理publish目录 string publishDir = Application.dataPath + "/../Publish/" + MyUnityEditorTool.GetPlatformFolderForAssetBundles(EditorUserBuildSettings.activeBuildTarget) + "/"; // MyUnityEditorTool.GetPlatformFolderForAssetBundles(EditorUserBuildSettings.activeBuildTarget) + "/" + PackageWizard.m_wizard.version + "/"; MyFileUtil.DeleteDir(publishDir); MyFileUtil.CreateDir(publishDir); //警告————首先加密配置文件 //加密配置文件 EncodeConfigFile(); //生成图集信息文件 GenerateAtlasInfoFile(); //加密Lua代码 EncryptLuaCode(); //编译资源 if (isBuildAssetBundle) { BuildAllAssetBundles(); } //拷贝工程 CopyProject(); //删除不需要资源 ClearRes(); //生成拷贝工程资源列表 GenerateCopyProjectFileList(); //生成资源包 GenerateTargetProjectResZip(); #if UNITY_ANDROID //删除目标工程的子游戏bundle MyFileUtil.DeleteDir(string.Format("{0}Assets/StreamingAssets/AssetBundles/{1}/qile/games", CopyProjectTargetDir, ResourcesManager.GetPlatformDir())); #elif UNITY_IPHONE var subGameParentDir = string.Format("{0}Assets/StreamingAssets/AssetBundles/{1}/qile/games", CopyProjectTargetDir, ResourcesManager.GetPlatformDir()); var subGameDirs = new List <string> { subGameParentDir + "/commonddz", subGameParentDir + "/commonpdk", subGameParentDir + "/commonpoker", subGameParentDir + "/csmj", subGameParentDir + "/ddz", subGameParentDir + "/ddz3r", subGameParentDir + "/emmj", subGameParentDir + "/fpf", subGameParentDir + "/gymj", subGameParentDir + "/jsmj", subGameParentDir + "/lxmj", subGameParentDir + "/niuniu", subGameParentDir + "/njmj", subGameParentDir + "/pdk", subGameParentDir + "/ssz", subGameParentDir + "/ybmj", subGameParentDir + "/zzmj" }; foreach (var dir in subGameDirs) { MyFileUtil.DeleteDir(dir); } #endif AssetDatabase.Refresh(); Debug.Log("打包准备结束"); }