ball 项目提交

This commit is contained in:
2026-04-20 12:06:34 +08:00
parent 4331ebba60
commit 99145facbd
6052 changed files with 576445 additions and 0 deletions
+130
View File
@@ -0,0 +1,130 @@
using System.IO;
using UnityEditor;
using UnityEngine;
namespace BallKingdomCrush.Editor
{
public class BuildSome
{
[MenuItem("Tools/Build")]
public static void BuildAssetBundle()
{
AssetBundleBuildKit.ClearAssetBundlesName();
AssetBundleBuildKit.SetAssetBundlesName(LegendConstant.croas);
EditorApplication.isPlaying = false;
var dir = LegendConstant.tbund;
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
else
{
Directory.Delete(dir, true);
Directory.CreateDirectory(dir);
}
var buildTarget = EditorUserBuildSettings.activeBuildTarget;
var manifest = BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.ChunkBasedCompression,
buildTarget);
AssetDatabase.Refresh();
EncryptAssetBundle();
BuildAssetBundleFileIndex(manifest);
Application.OpenURL(dir + "/..");
}
private static void EncryptAssetBundle()
{
var dir = LegendConstant.tbund;
var filePaths = Directory.GetFiles(dir, $"*{LegendConstant.setbun}",
SearchOption.TopDirectoryOnly);
var encryptPath = $"{Application.dataPath}/../AssetBundlesEncrypt";
if (!Directory.Exists(encryptPath))
{
Directory.CreateDirectory(encryptPath);
}
else
{
Directory.Delete(encryptPath, true);
Directory.CreateDirectory(encryptPath);
}
foreach (var assetBundleFile in filePaths)
{
if (!assetBundleFile.EndsWith(".meta") && !assetBundleFile.Contains(".DS_Store"))
{
var assetBundleName = assetBundleFile.Replace(dir, string.Empty).Replace("\\", "");
var encryptFilePath = Path.Combine(encryptPath, assetBundleName);
AESForFileKit.EncryptFile(assetBundleFile, encryptFilePath,
LegendConstant.admsie);
File.Copy(encryptFilePath, Path.Combine(dir, assetBundleName), true);
}
}
Directory.Delete(encryptPath, true);
}
private static void BuildAssetBundleFileIndex(AssetBundleManifest manifest)
{
var dir = LegendConstant.tbund;
var dirFile = $"{LegendConstant.tbund}/../";
var filePath = Path.Combine(dirFile, LegendConstant.zyzootx);
if (File.Exists(filePath))
{
File.Delete(filePath);
}
var filePaths = Directory.GetFiles(dir, $"*{LegendConstant.setbun}",
SearchOption.TopDirectoryOnly);
using var fileStream = new FileStream(filePath, FileMode.CreateNew);
using var streamWriter = new StreamWriter(fileStream);
var totalAssetBundlePath = $"{dir}/{LegendConstant.undles}";
var totalAssetBundleManifestPath = $"{dir}/{LegendConstant.lesest}";
var totalMD5 = MD5Kit.GetFileMD5(totalAssetBundlePath);
streamWriter.WriteLine(GetAssetBundleFileIndex(LegendConstant.undles, totalMD5));
var manifestMD5 = MD5Kit.GetFileMD5(totalAssetBundleManifestPath);
streamWriter.WriteLine(GetAssetBundleFileIndex(LegendConstant.lesest,
manifestMD5));
foreach (var assetBundleFile in filePaths)
{
if (!assetBundleFile.EndsWith(".meta") && !assetBundleFile.Contains(".DS_Store"))
{
var fileMD5 = MD5Kit.GetFileMD5(assetBundleFile);
var assetBundleName = assetBundleFile.Replace(dir, string.Empty).Replace("\\", "");
streamWriter.WriteLine(GetAssetBundleFileIndex(assetBundleName, fileMD5));
}
}
}
private static string GetAssetBundleFileIndex(string assetBundleName, string assetBundleFileMD5)
{
return $"{assetBundleName}{LegendConstant.fgklpk}{assetBundleFileMD5}";
}
}
}