瀏覽代碼

简化Logic的加载

tanghai 4 年之前
父節點
當前提交
49ba91f14c

+ 18 - 15
Unity/Assets/Editor/BuildEditor/BuildAssemblieEditor.cs

@@ -30,9 +30,14 @@ namespace ET
             AssetDatabase.Refresh();
         }
         
-        [MenuItem("Tools/BuildData")]
+        [MenuItem("Tools/BuildData _F6")]
         public static void BuildData()
         {
+            if (Define.CodeMode != Define.CodeMode_Reload)
+            {
+                throw new Exception("you code mode is not reload mode! please change Define.CodeMode");
+            }
+            
             BuildAssemblieEditor.BuildMuteAssembly("Data", new []
             {
                 "Codes/Model/",
@@ -41,24 +46,22 @@ namespace ET
         }
         
         
-        [MenuItem("Tools/BuildLogic")]
+        [MenuItem("Tools/BuildLogic _F7")]
         public static void BuildLogic()
         {
-            int random = RandomHelper.RandomNumber(100000000, 999999999);
-            string logicFile = $"Logic_{random}";
-            string logicVersionPath = Path.Combine(Define.BuildOutputDir, Define.LogicVersion);
-
-            if (File.Exists(logicVersionPath))
+            if (Define.CodeMode != Define.CodeMode_Reload)
             {
-                string oldLogicFile = File.ReadAllText(logicVersionPath);
-                if (oldLogicFile.Trim() != "")
-                {
-                    File.Delete(Path.Combine(Define.BuildOutputDir, $"{oldLogicFile}.dll"));
-                    File.Delete(Path.Combine(Define.BuildOutputDir, $"{oldLogicFile}.pdb"));
-                }
+                throw new Exception("you code mode is not reload mode! please change Define.CodeMode");
             }
-
-            File.WriteAllText(logicVersionPath, logicFile);
+            
+            string[] logicFiles = Directory.GetFiles(Define.BuildOutputDir, "Logic_*");
+            foreach (string file in logicFiles)
+            {
+                File.Delete(file);
+            }
+            
+            int random = RandomHelper.RandomNumber(100000000, 999999999);
+            string logicFile = $"Logic_{random}";
             
             BuildAssemblieEditor.BuildMuteAssembly(logicFile, new []
             {

+ 2 - 2
Unity/Assets/Editor/BuildEditor/ETBuildSettings.asset

@@ -13,7 +13,7 @@ MonoBehaviour:
   m_Name: ETBuildSettings
   m_EditorClassIdentifier: 
   clearFolder: 0
-  isBuildExe: 0
-  isContainAB: 0
+  isBuildExe: 1
+  isContainAB: 1
   buildType: 1
   buildAssetBundleOptions: 0

+ 9 - 3
Unity/Assets/Mono/CodeLoader.cs

@@ -81,9 +81,15 @@ namespace ET
 		public void LoadHotfix()
 		{
 			// 傻屌Unity在这里搞了个傻逼优化,认为同一个路径的dll,返回的程序集就一样。所以这里每次编译都要随机名字
-			string logicVersion = File.ReadAllText(Path.Combine(Define.BuildOutputDir, Define.LogicVersion));
-			byte[] assBytes = File.ReadAllBytes(Path.Combine(Define.BuildOutputDir, $"{logicVersion}.dll"));
-			byte[] pdbBytes = File.ReadAllBytes(Path.Combine(Define.BuildOutputDir, $"{logicVersion}.pdb"));
+			string[] logicFiles = Directory.GetFiles(Define.BuildOutputDir, "Logic_*.dll");
+			if (logicFiles.Length != 1)
+			{
+				throw new Exception("Logic dll count != 1");
+			}
+
+			string logicName = Path.GetFileNameWithoutExtension(logicFiles[0]);
+			byte[] assBytes = File.ReadAllBytes(Path.Combine(Define.BuildOutputDir, $"{logicName}.dll"));
+			byte[] pdbBytes = File.ReadAllBytes(Path.Combine(Define.BuildOutputDir, $"{logicName}.pdb"));
 
 			Assembly hotfixAssembly = Assembly.Load(assBytes, pdbBytes);
 			

+ 0 - 2
Unity/Assets/Mono/Define.cs

@@ -3,8 +3,6 @@
 	public static class Define
 	{
 		public const string BuildOutputDir = "./Temp/Bin/Debug";
-		
-		public const string LogicVersion = "LogicVersion.txt";
 
 		// 1 mono模式 2 ILRuntime模式 3 mono热重载模式
 		public static int CodeMode = 3;

+ 0 - 1
Unity/Assets/StreamingAssets/Version.txt

@@ -1 +0,0 @@
-{"Version":0,"TotalSize":0,"FileInfoDict":{"code.unity3d":{"File":"code.unity3d","MD5":"3fd5a101e91649734a4ee5bb18195d31","Size":37600},"code.unity3d.manifest":{"File":"code.unity3d.manifest","MD5":"7834f04df4f9cf7c7613cbb2d2d15020","Size":621},"config.unity3d":{"File":"config.unity3d","MD5":"031fba3dfe33371107394cd79dcbea7e","Size":1837},"config.unity3d.manifest":{"File":"config.unity3d.manifest","MD5":"58076bb3651456e7f2ca989c4bdb61ce","Size":624},"map.unity3d":{"File":"map.unity3d","MD5":"21486c5b1881a5a356dfd7a4b6a544b0","Size":340485},"map.unity3d.manifest":{"File":"map.unity3d.manifest","MD5":"6c91c8f4af267bde9587125a41912c0e","Size":1074},"StreamingAssets":{"File":"StreamingAssets","MD5":"c542ac37c050dc81d69ba9fde8794466","Size":1151},"StreamingAssets.manifest":{"File":"StreamingAssets.manifest","MD5":"eda6a4293269bf39721b07542f5435ec","Size":447},"uilobby.unity3d":{"File":"uilobby.unity3d","MD5":"d5fb2010adcbd5b2d46a667a679db458","Size":7892},"uilobby.unity3d.manifest":{"File":"uilobby.unity3d.manifest","MD5":"c07ac5ff750a61c2f8b050cbfdc2e132","Size":1244},"uilogin.unity3d":{"File":"uilogin.unity3d","MD5":"16b7802479f8d308a0020b603c570637","Size":8656},"uilogin.unity3d.manifest":{"File":"uilogin.unity3d.manifest","MD5":"e2c0e482a59b00da5586fdbfd42884da","Size":1336},"unit.unity3d":{"File":"unit.unity3d","MD5":"4a2d10861fec23cba4cebc4cefea1790","Size":573474},"unit.unity3d.manifest":{"File":"unit.unity3d.manifest","MD5":"ff94c0e02ee9af25ca96e8765d5beb85","Size":850},"Version.txt":{"File":"Version.txt","MD5":"0a55ff56e60511a87aea0b15c846c7f1","Size":1589}}}

+ 0 - 7
Unity/Assets/StreamingAssets/Version.txt.meta

@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: d0629e7fcea294e479c86a7b5fe33268
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 4 - 1
Unity/ProjectSettings/GraphicsSettings.asset

@@ -3,7 +3,7 @@
 --- !u!30 &1
 GraphicsSettings:
   m_ObjectHideFlags: 0
-  serializedVersion: 12
+  serializedVersion: 13
   m_Deferred:
     m_Mode: 1
     m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
@@ -37,6 +37,7 @@ GraphicsSettings:
   - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0}
   - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
   - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
+  - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}
   m_PreloadedShaders: []
   m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
     type: 0}
@@ -61,3 +62,5 @@ GraphicsSettings:
   m_AlbedoSwatchInfos: []
   m_LightsUseLinearIntensity: 0
   m_LightsUseColorTemperature: 0
+  m_LogWhenShaderIsCompiled: 0
+  m_AllowEnlightenSupportForUpgradedProject: 1

+ 1 - 1
Unity/ProjectSettings/ProjectSettings.asset

@@ -720,7 +720,7 @@ PlayerSettings:
     iPhone: 2
   scriptingBackend:
     Android: 0
-    Standalone: 0
+    Standalone: 1
     iPhone: 1
   il2cppCompilerConfiguration: {}
   managedStrippingLevel: {}

+ 1 - 1
Unity/ProjectSettings/UnityConnectSettings.asset

@@ -4,7 +4,7 @@
 UnityConnectSettings:
   m_ObjectHideFlags: 0
   serializedVersion: 1
-  m_Enabled: 1
+  m_Enabled: 0
   m_TestMode: 0
   m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
   m_EventUrl: https://cdp.cloud.unity3d.com/v1/events