| | |
| | | }
|
| | |
|
| | | public static bool obfuscatorEnabled {
|
| | | get { return LocalSave.GetBool("obfuscatorEnabled",false); }
|
| | | get { return LocalSave.GetBool("obfuscatorEnabled", false); }
|
| | | set { LocalSave.SetBool("obfuscatorEnabled", value); }
|
| | | }
|
| | |
|
| | | public static int AssetPrior {
|
| | | get { return LocalSave.GetInt("HalfAssetPrior", 1); }
|
| | | set { LocalSave.SetInt("HalfAssetPrior", value); }
|
| | | }
|
| | |
|
| | | static string ANDROID_PLUGIN_PATH = Application.dataPath + "/Plugins/Android";
|
| | |
| | | if (halfPackages.Count > 0)
|
| | | {
|
| | | Config.Instance.LoadPriorBundleConfig();
|
| | | FileExtersion.DirectoryCopy(_assetBundlePath, ResourcesPath.Instance.StreamingAssetPath);
|
| | |
|
| | | var files = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "mob"), files);
|
| | | foreach (var file in files)
|
| | | var fromFiles = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, fromFiles);
|
| | |
|
| | | var excludeFileFullNames = new List<string>();
|
| | | var tempFiles = new List<FileInfo>();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/mob"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var extersion = Path.GetExtension(file.FullName);
|
| | | var fileName = Path.GetFileName(file.FullName);
|
| | |
| | | fileName = fileName.Replace(extersion, "");
|
| | | }
|
| | |
|
| | | if (!PriorBundleConfig.mobs.Contains(fileName))
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Mob, fileName);
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | File.Delete(file.FullName);
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | |
|
| | | files.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "maps"), files);
|
| | | foreach (var file in files)
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/maps"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var extersion = Path.GetExtension(file.FullName);
|
| | | var fileName = Path.GetFileName(file.FullName);
|
| | |
| | | fileName = fileName.Replace(extersion, "");
|
| | | }
|
| | |
|
| | | if (!PriorBundleConfig.scenes.Contains(fileName))
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Scene, fileName);
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | File.Delete(file.FullName);
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | |
|
| | | files.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "audio"), files);
|
| | | foreach (var file in files)
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/audio"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var extersion = Path.GetExtension(file.FullName);
|
| | | var fileName = Path.GetFileName(file.FullName);
|
| | |
| | | fileName = fileName.Replace(extersion, "");
|
| | | }
|
| | |
|
| | | if (!PriorBundleConfig.audios.Contains(fileName))
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Audio, fileName);
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | File.Delete(file.FullName);
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | |
|
| | | files.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "effect"), files);
|
| | | foreach (var file in files)
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/effect"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var extersion = Path.GetExtension(file.FullName);
|
| | | var fileName = Path.GetFileName(file.FullName);
|
| | |
| | | fileName = fileName.Replace(extersion, "");
|
| | | }
|
| | |
|
| | | if (!PriorBundleConfig.effects.Contains(fileName))
|
| | | var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Effect, fileName);
|
| | | if (prior > AssetPrior)
|
| | | {
|
| | | File.Delete(file.FullName);
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | |
|
| | | tempFiles.Clear();
|
| | | FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/ui/sprite"), tempFiles);
|
| | | foreach (var file in tempFiles)
|
| | | {
|
| | | var fileName = Path.GetFileName(file.FullName);
|
| | | if (fileName == "loadingbg")
|
| | | {
|
| | | excludeFileFullNames.Add(file.FullName);
|
| | | }
|
| | | }
|
| | |
|
| | | for (int i = fromFiles.Count - 1; i >= 0; i--)
|
| | | {
|
| | | var item = fromFiles[i];
|
| | | if (excludeFileFullNames.Contains(item.FullName))
|
| | | {
|
| | | fromFiles.RemoveAt(i);
|
| | | }
|
| | | }
|
| | |
|
| | | var totalCount = fromFiles.Count;
|
| | | var completeCount = 0;
|
| | | foreach (var item in fromFiles)
|
| | | {
|
| | | var directory = Path.GetDirectoryName(item.FullName);
|
| | | if (!Directory.Exists(directory))
|
| | | {
|
| | | Directory.CreateDirectory(directory);
|
| | | }
|
| | |
|
| | | var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
|
| | | var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
|
| | | #if UNITY_ANDROID
|
| | | var extension = Path.GetExtension(item.FullName);
|
| | | if (extension == ".meta")
|
| | | {
|
| | | continue;
|
| | | }
|
| | |
|
| | | to = to + ".7z";
|
| | | SevenZipUtility.Compress(item.FullName, to);
|
| | | UnityEditor.EditorUtility.DisplayProgressBar("正在压缩资源", item.Name, (float)completeCount / totalCount);
|
| | | #elif UNITY_IOS
|
| | | File.Copy(item.FullName,to,true);
|
| | | #endif
|
| | |
|
| | | completeCount++;
|
| | | }
|
| | |
|
| | | EditorUtility.ClearProgressBar();
|
| | | for (int i = 0; i < halfPackages.Count; i++)
|
| | | {
|
| | | #if UNITY_ANDROID
|
| | |
| | | PlayerSettings.Android.keystorePass = versionConfig.keystorePassword;
|
| | | PlayerSettings.Android.keyaliasName = versionConfig.keystoreAlias;
|
| | | PlayerSettings.Android.keyaliasPass = versionConfig.keystoreAliasPassword;
|
| | | PlayerSettings.Android.targetSdkVersion = AndroidSdkVersions.AndroidApiLevel22;
|
| | | // PlayerSettings.Android.targetSdkVersion = AndroidSdkVersions.AndroidApiLevel22;
|
| | | PlayerSettings.Android.bundleVersionCode = VersionConfig.GetVersionNumber(versionConfig.version);
|
| | |
|
| | | PlayerSettings.enableInternalProfiler = _development;
|
| | |
| | | FileExtersion.DirectoryCopy(StringUtility.Contact(_sdkPath, "/ChannelDiff/Android/", versionConfig.appId), ANDROID_PLUGIN_PATH);
|
| | |
|
| | | var option = AssetDatabase.LoadAssetAtPath<Options>("Assets/Editor/Beebyte/Obfuscator/ObfuscatorOptions.asset");
|
| | | if (option!=null)
|
| | | if (option != null)
|
| | | {
|
| | | option.enabled = obfuscatorEnabled;
|
| | | EditorUtility.SetDirty(option);
|