public static void BuildSceneSpecify(PackagePlatform.PlatformType rBuildPlatform) { if (!Directory.Exists(PackagePlatform.sceneDirectoryPath)) { Debug.Log("没有需要打包的场景文件"); return; } PackagePlatform.platformCurrent = rBuildPlatform; string rOutPath = PackagePlatform.GetSceneBundlePath(); if (Directory.Exists(rOutPath) == false) { Directory.CreateDirectory(rOutPath); } //修改PackagePlatform.Instance.sceneDirectoryPath var guids = AssetDatabase.FindAssets("t:scene", new string[] { PackagePlatform.sceneDirectoryPath }); var rInPaths = new string[guids.Length]; var rCount = 0; foreach (var guid in guids) { var rPath = rInPaths[rCount] = AssetDatabase.GUIDToAssetPath(guid); var rName = rPath.Substring(rPath.LastIndexOf('/') + 1, rPath.LastIndexOf('.') - rPath.LastIndexOf('/') - 1); var rfullPath = rOutPath + "/" + rName.ToLower() + "." + Global.BundleExtName; BuildPipeline.BuildPlayer(new string[] { rPath }, rfullPath, PackagePlatform.GetBuildTarget(), BuildOptions.BuildAdditionalStreamedScenes); Debug.Log("build scene:>" + rPath); rCount++; } }
public static void BuildAssetbundlesSpecify(PackagePlatform.PlatformType rBuildPlatform) { PackagePlatform.platformCurrent = rBuildPlatform; List <AssetBundleBuild> abbList = GeneratorAssetbundleEntry(); if (abbList == null) { Debug.Log("没有找到需要打包的资源"); return; } string rPath = PackagePlatform.GetAssetBundlesPath(); if (Directory.Exists(rPath) == false) { Directory.CreateDirectory(rPath); } BuildPipeline.BuildAssetBundles(rPath, abbList.ToArray(), BuildAssetBundleOptions.None, PackagePlatform.GetBuildTarget()); }
public static void BuildDefaultSpecify(PackagePlatform.PlatformType rBuildPlatform) { //打包DataTable if (Directory.Exists("Assets/RawResources/DataTable")) { Debug.Log("打包 DataTable"); string outPath = PackagePlatform.GetPackagePath() + "DataTable"; if (Directory.Exists(outPath)) { Directory.Delete(outPath, true); } Directory.CreateDirectory(outPath); string inPath = "Assets/RawResources/DataTable"; string[] files = Directory.GetFiles(inPath); float doneCount = 0f; for (int i = 0; i < files.Length; i++) { string file = files[i]; if (file.Contains(".meta")) { continue; } Debug.Log(file); string outfile = file.Replace("Assets/RawResources", PackagePlatform.GetPackagePath()); if (File.Exists(outfile)) { File.Delete(outfile); } File.Copy(file, outfile, true); doneCount++; float p = (doneCount / (float)files.Length); EditorUtility.DisplayProgressBar("Package", "Package Default Resources", p); } EditorUtility.ClearProgressBar(); } //打包Code if (Directory.Exists("Assets/RawResources/Code")) { Debug.Log("打包 Code"); string outPath = PackagePlatform.GetPackagePath() + "Code"; if (Directory.Exists(outPath)) { Directory.Delete(outPath, true); } Directory.CreateDirectory(outPath); string inPath = "Assets/RawResources/Code"; string[] files = Directory.GetFiles(inPath); float doneCount = 0f; for (int i = 0; i < files.Length; i++) { string file = files[i]; if (file.Contains(".meta")) { continue; } Debug.Log(file); string outfile = file.Replace("Assets/RawResources", PackagePlatform.GetPackagePath()); if (File.Exists(outfile)) { File.Delete(outfile); } File.Copy(file, outfile, true); doneCount++; float p = (doneCount / (float)files.Length); EditorUtility.DisplayProgressBar("Package", "Package Default Resources", p); } EditorUtility.ClearProgressBar(); } }