From 54fad068f41ba7b0d2f16699a3f774be2a0d84e9 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 14 二月 2019 12:02:50 +0800
Subject: [PATCH] 3335 配置表读取重构。
---
Assets/Editor/Tool/ClientPackage.cs | 226 ++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 186 insertions(+), 40 deletions(-)
diff --git a/Assets/Editor/Tool/ClientPackage.cs b/Assets/Editor/Tool/ClientPackage.cs
index dea7c16..786d5a7 100644
--- a/Assets/Editor/Tool/ClientPackage.cs
+++ b/Assets/Editor/Tool/ClientPackage.cs
@@ -6,7 +6,8 @@
using System.IO;
using System.Text.RegularExpressions;
using System.Text;
-using TableConfig;
+
+using Beebyte.Obfuscator;
public class ClientPackage
{
@@ -18,6 +19,16 @@
public static string SDK_PLUGIN_PROJECT {
get { return LocalSave.GetString("SDK_PROJECT_PATH"); }
set { LocalSave.SetString("SDK_PROJECT_PATH", value); }
+ }
+
+ public static bool obfuscatorEnabled {
+ 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";
@@ -88,28 +99,63 @@
if (smallPackages.Count > 0)
{
- FileExtersion.DirectoryCopy(_assetBundlePath, ResourcesPath.Instance.StreamingAssetPath);
-
var files = new List<FileInfo>();
- FileExtersion.GetAllDirectoryFileInfos(ResourcesPath.Instance.StreamingAssetPath, files);
+ var builtInFiles = new List<FileInfo>();
+
+ FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, files);
foreach (var file in files)
{
var fileName = Path.GetFileName(file.FullName);
- if (fileName.Contains("builtin"))
+
+ if (file.FullName.Contains("builtin"))
{
+ builtInFiles.Add(file);
continue;
}
- if (file.FullName.Contains("config/Contact.txt")
- || file.FullName.Contains("config/HelpInfo.txt")
- || file.FullName.Contains("config/PriorBundle.txt")
- || file.FullName.Contains("config/PriorLanguage.txt"))
+ if (file.FullName.Contains("Contact.txt")
+ || file.FullName.Contains("HelpInfo.txt")
+ || file.FullName.Contains("PriorBundle.txt")
+ || file.FullName.Contains("PriorLanguage.txt")
+ || file.FullName.Contains("ApkUpdateUrl.txt"))
{
+ builtInFiles.Add(file);
continue;
}
File.Delete(file.FullName);
}
+
+ var totalCount = builtInFiles.Count;
+ var completeCount = 0;
+ foreach (var item in builtInFiles)
+ {
+ 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("姝e湪鍘嬬缉璧勬簮", item.Name, (float)completeCount / totalCount);
+#elif UNITY_IOS
+ File.Copy(item.FullName,to,true);
+#endif
+
+ completeCount++;
+ }
+
+ EditorUtility.ClearProgressBar();
for (int i = 0; i < smallPackages.Count; i++)
{
@@ -123,12 +169,15 @@
if (halfPackages.Count > 0)
{
- Config.Instance.LoadPriorBundleConfig();
- FileExtersion.DirectoryCopy(_assetBundlePath, ResourcesPath.Instance.StreamingAssetPath);
+ PriorBundleConfig.Init(true);
- 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);
@@ -137,15 +186,16 @@
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);
@@ -154,15 +204,16 @@
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);
@@ -171,15 +222,16 @@
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);
@@ -188,12 +240,61 @@
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 relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
+ var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
+ var directory = Path.GetDirectoryName(to);
+ if (!Directory.Exists(directory))
+ {
+ Directory.CreateDirectory(directory);
+ }
+#if UNITY_ANDROID
+ var extension = Path.GetExtension(item.FullName);
+ if (extension == ".meta")
+ {
+ continue;
+ }
+
+ to = to + ".7z";
+ SevenZipUtility.Compress(item.FullName, to);
+ UnityEditor.EditorUtility.DisplayProgressBar("姝e湪鍘嬬缉璧勬簮", 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
@@ -206,7 +307,36 @@
if (bigPackages.Count > 0)
{
- FileExtersion.DirectoryCopy(_assetBundlePath, ResourcesPath.Instance.StreamingAssetPath);
+ var fromFiles = new List<FileInfo>();
+ FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, fromFiles);
+
+ var totalCount = fromFiles.Count;
+ var completeCount = 0;
+ foreach (var item in fromFiles)
+ {
+ var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
+ var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
+ var directory = Path.GetDirectoryName(to);
+ if (!Directory.Exists(directory))
+ {
+ Directory.CreateDirectory(directory);
+ }
+#if UNITY_ANDROID
+ var extension = Path.GetExtension(item.FullName);
+ if (extension == ".meta")
+ {
+ continue;
+ }
+
+ to = to + ".7z";
+ SevenZipUtility.Compress(item.FullName, to);
+ UnityEditor.EditorUtility.DisplayProgressBar("姝e湪鍘嬬缉璧勬簮", item.Name, (float)completeCount / totalCount);
+#elif UNITY_IOS
+ File.Copy(item.FullName,to,true);
+#endif
+ completeCount++;
+ }
+
for (int i = 0; i < bigPackages.Count; i++)
{
#if UNITY_ANDROID
@@ -284,6 +414,14 @@
Debug.LogFormat("鎵цAndroid SDK 鏂囦欢鎷疯礉锛宖rom:{0};to:{1}", StringUtility.Contact(_sdkPath, "/Android/release"), ANDROID_PLUGIN_PATH);
FileExtersion.DirectoryCopy(StringUtility.Contact(_sdkPath, "/Android/release"), ANDROID_PLUGIN_PATH);
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)
+ {
+ option.enabled = obfuscatorEnabled;
+ EditorUtility.SetDirty(option);
+ }
+
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
@@ -319,7 +457,20 @@
DateTime outTime;
var correct = DateTime.TryParse(auditOutTime, out outTime);
+ var directory = Application.dataPath + Path.DirectorySeparatorChar + "Resources/Config";
+ if (Directory.Exists(directory))
+ {
+ Directory.CreateDirectory(directory);
+ }
File.WriteAllText(Application.dataPath + Path.DirectorySeparatorChar + "Resources/Config/AuditTime.txt", correct ? auditOutTime : "");
+
+ var option = AssetDatabase.LoadAssetAtPath<Options>("Assets/Editor/Beebyte/Obfuscator/ObfuscatorOptions.asset");
+ if (option!=null)
+ {
+ option.enabled = obfuscatorEnabled;
+ EditorUtility.SetDirty(option);
+ }
+
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
PlayerSettings.iOS.buildNumber = VersionConfig.Get().buildIndex.ToString();
@@ -340,7 +491,7 @@
{
try
{
- var newVersionConfigPath = StringUtility.Contact("Assets/Resources/ScriptableObject/Config/VersionConfig", ".asset");
+ var newVersionConfigPath = StringUtility.Contact("Assets/Resources/VersionConfig", ".asset");
var versionName = string.Empty;
var fromVersionConfig = GetVersionConfig(_publisher, out versionName);
var newVersionConfig = ScriptableObject.CreateInstance<VersionConfig>();
@@ -368,13 +519,8 @@
PlayerSettings.allowedAutorotateToPortraitUpsideDown = false;
PlayerSettings.bundleVersion = VersionConfig.GetVersionNumber(newVersionConfig.version).ToString();
- var grachicSettings = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/GraphicsSettings.asset")[0]);
- var lightmapStripping = grachicSettings.FindProperty("m_LightmapStripping");
- lightmapStripping.intValue = 0;
- var fogStripping = grachicSettings.FindProperty("m_FogStripping");
- fogStripping.intValue = 0;
-
- grachicSettings.ApplyModifiedProperties();
+ CSObjectWrapEditor.Generator.ClearAll();
+ CSObjectWrapEditor.Generator.GenAll();
}
catch (Exception ex)
{
--
Gitblit v1.8.0