Просмотр исходного кода

GlobalConfig增加CodeOptimization,根据不同的值生成AllCode工程
目前CodeOptimization为Release下,已经无GC

tanghai 2 лет назад
Родитель
Сommit
b1d1060c22

+ 1 - 0
Unity/Assets/Resources/GlobalConfig.asset

@@ -13,3 +13,4 @@ MonoBehaviour:
   m_Name: GlobalConfig
   m_EditorClassIdentifier: 
   CodeMode: 3
+  CodeOptimization: 2

+ 1 - 0
Unity/Assets/Scripts/Codes/Model/Share/Module/Message/OpcodeHelper.cs

@@ -35,6 +35,7 @@ namespace ET
             return opcode >= OpcodeRangeDefine.InnerMinOpcode;
         }
 
+        [Conditional("DEBUG")]
         public static void LogMsg(Scene scene, object message)
         {
             ushort opcode = NetServices.Instance.GetOpcode(message.GetType());

+ 9 - 8
Unity/Assets/Scripts/Core/Module/Log/Log.cs

@@ -1,14 +1,17 @@
 using System;
+using System.Diagnostics;
 
 namespace ET
 {
     public static class Log
     {
+        [Conditional("DEBUG")]
         public static void Trace(string msg)
         {
             Logger.Instance.Trace(msg);
         }
 
+        [Conditional("DEBUG")]
         public static void Debug(string msg)
         {
             Logger.Instance.Debug(msg);
@@ -19,11 +22,7 @@ namespace ET
             Logger.Instance.Info(msg);
         }
 
-        public static void TraceInfo(string msg)
-        {
-            Logger.Instance.Trace(msg);
-        }
-
+        [Conditional("DEBUG")]
         public static void Warning(string msg)
         {
             Logger.Instance.Warning(msg);
@@ -39,17 +38,19 @@ namespace ET
             Logger.Instance.Error(msg);
         }
 
+        [Conditional("DEBUG")]
         public static void Console(string msg)
         {
             Logger.Instance.Console(msg);
         }
         
 #if DOTNET
+        [Conditional("DEBUG")]
         public static void Trace(ref System.Runtime.CompilerServices.DefaultInterpolatedStringHandler message)
         {
             Logger.Instance.Trace(message.ToStringAndClear());
         }
-
+        [Conditional("DEBUG")]
         public static void Warning(ref System.Runtime.CompilerServices.DefaultInterpolatedStringHandler message)
         {
             Logger.Instance.Warning(message.ToStringAndClear());
@@ -59,7 +60,7 @@ namespace ET
         {
             Logger.Instance.Info(message.ToStringAndClear());
         }
-
+        [Conditional("DEBUG")]
         public static void Debug(ref System.Runtime.CompilerServices.DefaultInterpolatedStringHandler message)
         {
             Logger.Instance.Debug(message.ToStringAndClear());
@@ -69,7 +70,7 @@ namespace ET
         {
             Logger.Instance.Error(message.ToStringAndClear());
         }
-        
+        [Conditional("DEBUG")]
         public static void Console(ref System.Runtime.CompilerServices.DefaultInterpolatedStringHandler message)
         {
             Logger.Instance.Console(message.ToStringAndClear());

+ 8 - 5
Unity/Assets/Scripts/Editor/AssetPostProcessor/OnGenerateCSProjectProcessor.cs

@@ -4,6 +4,7 @@ using UnityEngine;
 using System.Xml;
 using System.IO;
 using System.Text;
+using UnityEditor.Compilation;
 
 namespace ET
 {
@@ -40,11 +41,6 @@ namespace ET
             }
             else
             {
-                if (Define.IsDebug)
-                {
-                    content = content.Replace("<Optimize>false</Optimize>", "<Optimize>true</Optimize>");
-                }
-                
                 if (path.EndsWith("Unity.Hotfix.csproj"))
                 {
                     content = content.Replace("<Compile Include=\"Assets\\Scripts\\Empty\\Hotfix\\Empty.cs\" />", string.Empty);
@@ -122,6 +118,13 @@ namespace ET
                 
                 if (path.EndsWith("Unity.AllCodes.csproj"))
                 {
+                    GlobalConfig globalConfig = Resources.Load<GlobalConfig>("GlobalConfig");
+                    if (globalConfig.CodeOptimization == CodeOptimization.Release)
+                    {
+                        content = content.Replace("<Optimize>false</Optimize>", "<Optimize>true</Optimize>");
+                        content = content.Replace(";DEBUG;", ";");
+                    }
+
                     content = content.Replace("<Compile Include=\"Assets\\Scripts\\Empty\\AllCodes\\Empty.cs\" />", string.Empty);
                     content = content.Replace("<None Include=\"Assets\\Scripts\\Empty\\AllCodes\\Unity.AllCodes.asmdef\" />", string.Empty);
 

+ 14 - 7
Unity/Assets/Scripts/Editor/BuildEditor/BuildEditor.cs

@@ -34,7 +34,6 @@ namespace ET
 		private bool clearFolder;
 		private bool isBuildExe;
 		private bool isContainAB;
-		private CodeOptimization codeOptimization = CodeOptimization.Debug;
 		private BuildOptions buildOptions;
 		private BuildAssetBundleOptions buildAssetBundleOptions = BuildAssetBundleOptions.None;
 
@@ -72,11 +71,19 @@ namespace ET
 			this.clearFolder = EditorGUILayout.Toggle("clean folder? ", clearFolder);
 			this.isBuildExe = EditorGUILayout.Toggle("build exe?", this.isBuildExe);
 			this.isContainAB = EditorGUILayout.Toggle("contain assetsbundle?", this.isContainAB);
-			this.codeOptimization = (CodeOptimization)EditorGUILayout.EnumPopup("CodeOptimization ", this.codeOptimization);
+			CodeOptimization codeOptimization = (CodeOptimization)EditorGUILayout.EnumPopup("CodeOptimization ", this.globalConfig.CodeOptimization);
+			
+			if (codeOptimization != this.globalConfig.CodeOptimization)
+			{
+				this.globalConfig.CodeOptimization = codeOptimization;
+				EditorUtility.SetDirty(this.globalConfig);
+				AssetDatabase.SaveAssets();
+			}
+			
 			EditorGUILayout.LabelField("BuildAssetBundleOptions ");
 			this.buildAssetBundleOptions = (BuildAssetBundleOptions)EditorGUILayout.EnumFlagsField(this.buildAssetBundleOptions);
 			
-			switch (this.codeOptimization)
+			switch (this.globalConfig.CodeOptimization)
 			{
 				case CodeOptimization.None:
 				case CodeOptimization.Debug:
@@ -135,8 +142,8 @@ namespace ET
 					throw new Exception("now in UseMemoryPack mode, you should use ide Build Unity.AllCodes project!");
 				}
 				
-				BuildAssembliesHelper.BuildModel(this.codeOptimization, globalConfig);
-				BuildAssembliesHelper.BuildHotfix(this.codeOptimization, globalConfig);
+				BuildAssembliesHelper.BuildModel(this.globalConfig.CodeOptimization, globalConfig);
+				BuildAssembliesHelper.BuildHotfix(this.globalConfig.CodeOptimization, globalConfig);
 
 				AfterCompiling();
 				
@@ -153,7 +160,7 @@ namespace ET
 				{
 					throw new Exception("now in UseMemoryPack mode, you should use ide Build Unity.AllCodes project!");
 				}
-				BuildAssembliesHelper.BuildModel(this.codeOptimization, globalConfig);
+				BuildAssembliesHelper.BuildModel(this.globalConfig.CodeOptimization, globalConfig);
 
 				AfterCompiling();
 				
@@ -170,7 +177,7 @@ namespace ET
 				{
 					throw new Exception("now in UseMemoryPack mode, you should use ide Build Unity.AllCodes project!");
 				}
-				BuildAssembliesHelper.BuildHotfix(this.codeOptimization, globalConfig);
+				BuildAssembliesHelper.BuildHotfix(this.globalConfig.CodeOptimization, globalConfig);
 
 				AfterCompiling();
 				

+ 3 - 1
Unity/Assets/Scripts/Loader/MonoBehaviour/GlobalConfig.cs

@@ -1,4 +1,5 @@
-using UnityEngine;
+using UnityEditor.Compilation;
+using UnityEngine;
 
 namespace ET
 {
@@ -13,5 +14,6 @@ namespace ET
     public class GlobalConfig: ScriptableObject
     {
         public CodeMode CodeMode;
+        public CodeOptimization CodeOptimization;
     }
 }

+ 2 - 2
Unity/ProjectSettings/ProjectSettings.asset

@@ -841,7 +841,7 @@ PlayerSettings:
   scriptingDefineSymbols:
     Android: UNITY;SINGLE_THREAD
     Server: UNITY
-    Standalone: UNITY;SINGLE_THREAD;ENABLE_VIEW;ENABLE_CODES
+    Standalone: UNITY;SINGLE_THREAD;ENABLE_VIEW
     WebGL: UNITY
     iPhone: UNITY;SINGLE_THREAD;ENABLE_CODES
   additionalCompilerArguments: {}
@@ -850,7 +850,7 @@ PlayerSettings:
   scriptingBackend:
     Android: 1
     Server: 0
-    Standalone: 1
+    Standalone: 0
     iPhone: 1
   il2cppCompilerConfiguration: {}
   managedStrippingLevel: {}