Kaynağa Gözat

ide工程可以切换编译Client跟ClientServer

tanghai 2 yıl önce
ebeveyn
işleme
ee4d6058c0

+ 0 - 30
ET.sln

@@ -53,10 +53,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNet.Loader", "DotNet\Loa
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.AllCodes", "Unity\Unity.AllCodes.csproj", "{BC8AF236-3AA6-2FE6-DCCB-E412FEC3C152}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.AllModel", "Unity\Unity.AllModel.csproj", "{B274D5FA-24BE-0EF2-8374-77D88F882F8D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.AllHotfix", "Unity\Unity.AllHotfix.csproj", "{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}"
-EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -331,30 +327,6 @@ Global
 		{BC8AF236-3AA6-2FE6-DCCB-E412FEC3C152}.Release|x64.Build.0 = Debug|Any CPU
 		{BC8AF236-3AA6-2FE6-DCCB-E412FEC3C152}.Release|x86.ActiveCfg = Debug|Any CPU
 		{BC8AF236-3AA6-2FE6-DCCB-E412FEC3C152}.Release|x86.Build.0 = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Debug|x64.Build.0 = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Debug|x86.Build.0 = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Release|Any CPU.Build.0 = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Release|x64.ActiveCfg = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Release|x64.Build.0 = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Release|x86.ActiveCfg = Debug|Any CPU
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D}.Release|x86.Build.0 = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Debug|x64.Build.0 = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Debug|x86.Build.0 = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Release|Any CPU.ActiveCfg = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Release|Any CPU.Build.0 = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Release|x64.ActiveCfg = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Release|x64.Build.0 = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Release|x86.ActiveCfg = Debug|Any CPU
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A}.Release|x86.Build.0 = Debug|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -377,8 +349,6 @@ Global
 		{9498BFB4-D9F5-C441-13E3-3F26F7700E29} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}
 		{C109842F-01DA-64D4-DBF2-00C6449E459E} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}
 		{BC8AF236-3AA6-2FE6-DCCB-E412FEC3C152} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}
-		{B274D5FA-24BE-0EF2-8374-77D88F882F8D} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}
-		{152061A0-80F4-0ADA-C8E3-F8EAEC23405A} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}
 		{89DD0821-4AE5-0EE7-65A0-445EF4C85913} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}
 		{D2D0DC3C-8414-F3B5-7B89-AEA449F00E4D} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}
 		{AB58BEC6-6A17-B4DC-A2EC-30AE7CA7216C} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}

+ 2 - 2
Unity/Assets/Resources/GlobalConfig.asset

@@ -12,5 +12,5 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 36527db572638af47b03c805671cba75, type: 3}
   m_Name: GlobalConfig
   m_EditorClassIdentifier: 
-  CodeMode: 3
-  CodeOptimization: 2
+  CodeMode: 1
+  BuildType: 0

+ 1 - 2
Unity/Assets/Scripts/Codes/Hotfix/Share/LockStep/LSHelper.cs

@@ -10,8 +10,7 @@ namespace ET
             FrameBuffer frameBuffer = self.FrameBuffer;
             
             // 回滚
-            byte[] dataBuffer = frameBuffer.GetDate(frame);
-            self.LSWorld = MongoHelper.Deserialize<LSWorld>(dataBuffer);
+            self.LSWorld = frameBuffer.GetLSWorld(frame);
 
             // 从回滚的地方重新执行预测的帧
             for (int i = frameBuffer.RealFrame + 1; i < frameBuffer.PredictionFrame; ++i)

+ 1 - 1
Unity/Assets/Scripts/Codes/Hotfix/Share/LockStep/RoomSystem.cs

@@ -22,7 +22,7 @@ namespace ET
         public static void Update(this Room self, OneFrameMessages oneFrameMessages)
         {
             // 保存当前帧场景数据
-            self.FrameBuffer.SaveDate(self.FrameBuffer.PredictionFrame, MongoHelper.Serialize(self.LSWorld));
+            self.FrameBuffer.SaveLSWorld(self.FrameBuffer.PredictionFrame, self.LSWorld);
             
             // 设置输入到每个LSUnit身上
             LSWorld lsWorld = self.LSWorld;

+ 13 - 22
Unity/Assets/Scripts/Codes/Model/Share/LockStep/FrameBuffer.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.IO;
 
 namespace ET
 {
@@ -12,32 +13,17 @@ namespace ET
         private const int TotalFrameCount = 128;
         
         private readonly List<OneFrameMessages> messageBuffer = new(TotalFrameCount);
-        private readonly List<byte[]> dataBuffer = new(TotalFrameCount);
+        private readonly List<MemoryBuffer> dataBuffer = new(TotalFrameCount);
 
         public FrameBuffer()
         {
             for (int i = 0; i < this.dataBuffer.Capacity; ++i)
             {
                 this.messageBuffer.Add(new OneFrameMessages());
-                this.dataBuffer.Add(null);
+                this.dataBuffer.Add(new MemoryBuffer(10240));
             }
         }
-/*
-        public void AddRealFrame(OneFrameMessages message)
-        {
-            if (message.Frame != this.RealFrame + 1)
-            {
-                throw new Exception($"add real frame error: {message.Frame} {this.RealFrame}");
-            }
-            this.RealFrame = message.Frame;
-            AddFrame(message);
-        }
-
-        public void AddFrame(OneFrameMessages message)
-        {
-            this.messageBuffer[message.Frame % TotalFrameCount] = message;
-        }
-        */
+        
         public OneFrameMessages GetFrame(int frame)
         {
             if (frame < 0)
@@ -49,14 +35,19 @@ namespace ET
             return oneFrameMessages;
         }
 
-        public void SaveDate(int frame, byte[] data)
+        public LSWorld GetLSWorld(int frame)
         {
-            this.dataBuffer[frame % TotalFrameCount] = data;
+            MemoryBuffer memoryBuffer = this.dataBuffer[frame % TotalFrameCount];
+            return MongoHelper.Deserialize(typeof (LSWorld), memoryBuffer) as LSWorld;
         }
 
-        public byte[] GetDate(int frame)
+        public void SaveLSWorld(int frame, LSWorld lsWorld)
         {
-            return this.dataBuffer[frame % TotalFrameCount];
+            MemoryBuffer memoryBuffer = this.dataBuffer[frame % TotalFrameCount];
+            memoryBuffer.Seek(0, SeekOrigin.Begin);
+            memoryBuffer.SetLength(0);
+            MongoHelper.Serialize(lsWorld, memoryBuffer);
+            memoryBuffer.Seek(0, SeekOrigin.Begin);
         }
     }
 }

+ 31 - 49
Unity/Assets/Scripts/Editor/AssetPostProcessor/OnGenerateCSProjectProcessor.cs

@@ -77,49 +77,10 @@ namespace ET
                         @"Assets\Scripts\Codes\ModelView\**\*.cs %(RecursiveDir)%(FileName)%(Extension)");
                 }
                 
-                if (path.EndsWith("Unity.AllModel.csproj"))
-                {
-                    content = content.Replace("<Compile Include=\"Assets\\Scripts\\Empty\\AllModel\\Empty.cs\" />", string.Empty);
-                    content = content.Replace("<None Include=\"Assets\\Scripts\\Empty\\AllModel\\Unity.AllModel.asmdef\" />", string.Empty);
-
-                    content = GenerateCustomProject(path, content,
-                        @"Assets\Scripts\Codes\Model\Server\**\*.cs Server\%(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\Model\Client\**\*.cs Client\%(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\Model\Share\**\*.cs Share\%(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\Model\Generate\ClientServer\**\*.cs Generate\%(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\ModelView\**\*.cs %(RecursiveDir)%(FileName)%(Extension)"
-                        );
-                    content = content.Replace("<Target Name=\"AfterBuild\" />",
-                        "   <Target Name=\"AfterBuild\">\n" +
-                        $"       <Copy SourceFiles=\"$(TargetDir)/$(TargetName).dll\" DestinationFiles=\"$(ProjectDir)/{Define.CodeDir}/Model.dll.bytes\" ContinueOnError=\"false\" />\n" +
-                        $"       <Copy SourceFiles=\"$(TargetDir)/$(TargetName).pdb\" DestinationFiles=\"$(ProjectDir)/{Define.CodeDir}/Model.pdb.bytes\" ContinueOnError=\"false\" />\n" +
-                        $"       <Copy SourceFiles=\"$(TargetDir)/$(TargetName).dll\" DestinationFiles=\"$(ProjectDir)/{Define.BuildOutputDir}/Model.dll\" ContinueOnError=\"false\" />\n" +
-                        $"       <Copy SourceFiles=\"$(TargetDir)/$(TargetName).pdb\" DestinationFiles=\"$(ProjectDir)/{Define.BuildOutputDir}/Model.pdb\" ContinueOnError=\"false\" />\n" +
-                        "   </Target>\n");
-                }
-                
-                if (path.EndsWith("Unity.AllHotfix.csproj"))
-                {
-                    content = content.Replace("<Compile Include=\"Assets\\Scripts\\Empty\\AllHotfix\\Empty.cs\" />", string.Empty);
-                    content = content.Replace("<None Include=\"Assets\\Scripts\\Empty\\AllHotfix\\Unity.AllHotfix.asmdef\" />", string.Empty);
-
-                    content = GenerateCustomProject(path, content,
-                        @"Assets\Scripts\Codes\Hotfix\**\*.cs %(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\HotfixView\**\*.cs %(RecursiveDir)%(FileName)%(Extension)"
-                        );
-                    content = content.Replace("<Target Name=\"AfterBuild\" />",
-                        "   <Target Name=\"AfterBuild\">\n" +
-                        $"       <Copy SourceFiles=\"$(TargetDir)/$(TargetName).dll\" DestinationFiles=\"$(ProjectDir)/{Define.CodeDir}/Hotfix.dll.bytes\" ContinueOnError=\"false\" />\n" +
-                        $"       <Copy SourceFiles=\"$(TargetDir)/$(TargetName).pdb\" DestinationFiles=\"$(ProjectDir)/{Define.CodeDir}/Hotfix.pdb.bytes\" ContinueOnError=\"false\" />\n" +
-                        $"       <Copy SourceFiles=\"$(TargetDir)/$(TargetName).dll\" DestinationFiles=\"$(ProjectDir)/{Define.BuildOutputDir}/Hotfix.dll\" ContinueOnError=\"false\" />\n" +
-                        $"       <Copy SourceFiles=\"$(TargetDir)/$(TargetName).pdb\" DestinationFiles=\"$(ProjectDir)/{Define.BuildOutputDir}/Hotfix.pdb\" ContinueOnError=\"false\" />\n" +
-                        "   </Target>\n");
-                }
-                
                 if (path.EndsWith("Unity.AllCodes.csproj"))
                 {
                     GlobalConfig globalConfig = Resources.Load<GlobalConfig>("GlobalConfig");
-                    if (globalConfig.CodeOptimization == CodeOptimization.Release)
+                    if (globalConfig.BuildType == BuildType.Release)
                     {
                         content = content.Replace("<Optimize>false</Optimize>", "<Optimize>true</Optimize>");
                         content = content.Replace(";DEBUG;", ";");
@@ -128,15 +89,36 @@ namespace ET
                     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);
 
-                    content = GenerateCustomProject(path, content,
-                        @"Assets\Scripts\Codes\Model\Server\**\*.cs Server\%(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\Model\Client\**\*.cs Client\%(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\Model\Share\**\*.cs Share\%(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\Model\Generate\ClientServer\**\*.cs Generate\%(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\Hotfix\**\*.cs %(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\ModelView\**\*.cs %(RecursiveDir)%(FileName)%(Extension)",
-                        @"Assets\Scripts\Codes\HotfixView\**\*.cs %(RecursiveDir)%(FileName)%(Extension)"
-                        );
+                    string[] files = Array.Empty<string>();
+                    switch (globalConfig.CodeMode)
+                    {
+                        case CodeMode.Client:
+                            files = new[]
+                            {
+                                @"Assets\Scripts\Codes\Model\Client\**\*.cs Client\%(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\Model\Share\**\*.cs Share\%(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\Model\Generate\Client\**\*.cs Generate\%(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\Hotfix\Client\**\*.cs %(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\Hotfix\Share\**\*.cs %(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\ModelView\**\*.cs %(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\HotfixView\**\*.cs %(RecursiveDir)%(FileName)%(Extension)"
+                            };
+                            break;
+                        case CodeMode.ClientServer:
+                            files = new[]
+                            {
+                                @"Assets\Scripts\Codes\Model\Server\**\*.cs Server\%(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\Model\Client\**\*.cs Client\%(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\Model\Share\**\*.cs Share\%(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\Model\Generate\ClientServer\**\*.cs Generate\%(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\Hotfix\**\*.cs %(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\ModelView\**\*.cs %(RecursiveDir)%(FileName)%(Extension)",
+                                @"Assets\Scripts\Codes\HotfixView\**\*.cs %(RecursiveDir)%(FileName)%(Extension)"
+                            };
+                            break;
+                    }
+
+                    content = GenerateCustomProject(path, content, files);
                     content = content.Replace("<Target Name=\"AfterBuild\" />",
                         "   <Target Name=\"AfterBuild\">\n" +
                         $"       <Copy SourceFiles=\"$(TargetDir)/$(TargetName).dll\" DestinationFiles=\"$(ProjectDir)/{Define.CodeDir}/Model.dll.bytes\" ContinueOnError=\"false\" />\n" +

+ 4 - 4
Unity/Assets/Scripts/Editor/BuildEditor/BuildAssembliesHelper.cs

@@ -11,7 +11,7 @@ namespace ET
 {
     public static class BuildAssembliesHelper
     {
-        public static void BuildModel(CodeOptimization codeOptimization, GlobalConfig globalConfig)
+        public static void BuildModel(BuildType codeOptimization, GlobalConfig globalConfig)
         {
             List<string> codes;
 
@@ -56,7 +56,7 @@ namespace ET
             Debug.Log("copy Model.dll to Bundles/Code success!");
         }
 
-        public static void BuildHotfix(CodeOptimization codeOptimization, GlobalConfig globalConfig)
+        public static void BuildHotfix(BuildType codeOptimization, GlobalConfig globalConfig)
         {
             string[] logicFiles = Directory.GetFiles(Define.BuildOutputDir, "Hotfix_*");
             foreach (string file in logicFiles)
@@ -109,7 +109,7 @@ namespace ET
 
         private static void BuildMuteAssembly(
             string assemblyName, List<string> CodeDirectorys,
-            string[] additionalReferences, CodeOptimization codeOptimization, CodeMode codeMode = CodeMode.Client)
+            string[] additionalReferences, BuildType codeOptimization, CodeMode codeMode = CodeMode.Client)
         {
             if (!Directory.Exists(Define.BuildOutputDir))
             {
@@ -157,7 +157,7 @@ namespace ET
 
             BuildTargetGroup buildTargetGroup = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget);
 
-            assemblyBuilder.compilerOptions.CodeOptimization = codeOptimization;
+            assemblyBuilder.compilerOptions.CodeOptimization = (CodeOptimization)codeOptimization;
             assemblyBuilder.compilerOptions.ApiCompatibilityLevel = PlayerSettings.GetApiCompatibilityLevel(buildTargetGroup);
             // assemblyBuilder.compilerOptions.ApiCompatibilityLevel = ApiCompatibilityLevel.NET_4_6;
 

+ 9 - 63
Unity/Assets/Scripts/Editor/BuildEditor/BuildEditor.cs

@@ -20,12 +20,6 @@ namespace ET
 		MacOS,
 		Linux
 	}
-	
-	public enum BuildType
-	{
-		Development,
-		Release,
-	}
 
 	public class BuildEditor : EditorWindow
 	{
@@ -71,11 +65,11 @@ 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);
-			CodeOptimization codeOptimization = (CodeOptimization)EditorGUILayout.EnumPopup("CodeOptimization ", this.globalConfig.CodeOptimization);
+			BuildType codeOptimization = (BuildType)EditorGUILayout.EnumPopup("BuildType ", this.globalConfig.BuildType);
 			
-			if (codeOptimization != this.globalConfig.CodeOptimization)
+			if (codeOptimization != this.globalConfig.BuildType)
 			{
-				this.globalConfig.CodeOptimization = codeOptimization;
+				this.globalConfig.BuildType = codeOptimization;
 				EditorUtility.SetDirty(this.globalConfig);
 				AssetDatabase.SaveAssets();
 			}
@@ -83,13 +77,13 @@ namespace ET
 			EditorGUILayout.LabelField("BuildAssetBundleOptions ");
 			this.buildAssetBundleOptions = (BuildAssetBundleOptions)EditorGUILayout.EnumFlagsField(this.buildAssetBundleOptions);
 			
-			switch (this.globalConfig.CodeOptimization)
+			switch (this.globalConfig.BuildType)
 			{
-				case CodeOptimization.None:
-				case CodeOptimization.Debug:
+				case BuildType.None:
+				case BuildType.Debug:
 					this.buildOptions = BuildOptions.Development | BuildOptions.ConnectWithProfiler;
 					break;
-				case CodeOptimization.Release:
+				case BuildType.Release:
 					this.buildOptions = BuildOptions.None;
 					break;
 			}
@@ -130,58 +124,10 @@ namespace ET
 				EditorUtility.SetDirty(this.globalConfig);
 				AssetDatabase.SaveAssets();
 			}
-			
-			if (GUILayout.Button("BuildModelAndHotfix"))
-			{
-				if (Define.EnableCodes)
-				{
-					throw new Exception("now in ENABLE_CODES mode, do not need Build!");
-				}
-				if (SerializeHelper.UseMemoryPack)
-				{
-					throw new Exception("now in UseMemoryPack mode, you should use ide Build Unity.AllCodes project!");
-				}
-				
-				BuildAssembliesHelper.BuildModel(this.globalConfig.CodeOptimization, globalConfig);
-				BuildAssembliesHelper.BuildHotfix(this.globalConfig.CodeOptimization, globalConfig);
 
-				AfterCompiling();
-				
-				ShowNotification("Build Model And Hotfix Success!");
-			}
-			
-			if (GUILayout.Button("BuildModel"))
+			if (GUILayout.Button("ReGenerateProjectFiles"))
 			{
-				if (Define.EnableCodes)
-				{
-					throw new Exception("now in ENABLE_CODES mode, do not need Build!");
-				}
-				if (SerializeHelper.UseMemoryPack)
-				{
-					throw new Exception("now in UseMemoryPack mode, you should use ide Build Unity.AllCodes project!");
-				}
-				BuildAssembliesHelper.BuildModel(this.globalConfig.CodeOptimization, globalConfig);
-
-				AfterCompiling();
-				
-				ShowNotification("Build Model Success!");
-			}
-			
-			if (GUILayout.Button("BuildHotfix"))
-			{
-				if (Define.EnableCodes)
-				{
-					throw new Exception("now in ENABLE_CODES mode, do not need Build!");
-				}
-				if (SerializeHelper.UseMemoryPack)
-				{
-					throw new Exception("now in UseMemoryPack mode, you should use ide Build Unity.AllCodes project!");
-				}
-				BuildAssembliesHelper.BuildHotfix(this.globalConfig.CodeOptimization, globalConfig);
-
-				AfterCompiling();
-				
-				ShowNotification("Build Hotfix Success!");
+				BuildHelper.ReGenerateProjectFiles();
 			}
 			
 			if (GUILayout.Button("ExcelExporter"))

+ 0 - 8
Unity/Assets/Scripts/Empty/AllHotfix.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 145d237b357c142828a4367b157bd2a0
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 1
Unity/Assets/Scripts/Empty/AllHotfix/Empty.cs

@@ -1 +0,0 @@
-//用于自动生成工程项目的占位脚本,请勿移除或修改

+ 0 - 11
Unity/Assets/Scripts/Empty/AllHotfix/Empty.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 40691c691d6f84e41baccfa582995eef
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 21
Unity/Assets/Scripts/Empty/AllHotfix/Unity.AllHotfix.asmdef

@@ -1,21 +0,0 @@
-{
-    "name": "Unity.AllHotfix",
-    "rootNamespace": "ET",
-    "references": [
-        "Unity.AllModel",
-        "Unity.ThirdParty",
-        "Unity.Core",
-        "Unity.Mathematics",
-        "Unity.Loader",
-        "MemoryPack"
-    ],
-    "includePlatforms": [],
-    "excludePlatforms": [],
-    "allowUnsafeCode": true,
-    "overrideReferences": false,
-    "precompiledReferences": [],
-    "autoReferenced": true,
-    "defineConstraints": [],
-    "versionDefines": [],
-    "noEngineReferences": false
-}

+ 0 - 7
Unity/Assets/Scripts/Empty/AllHotfix/Unity.AllHotfix.asmdef.meta

@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 4d44f3e295a424180985a9e3b669a622
-AssemblyDefinitionImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
Unity/Assets/Scripts/Empty/AllModel.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: d9047ea8e8abb4acfa9b45893fc26a62
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 1
Unity/Assets/Scripts/Empty/AllModel/Empty.cs

@@ -1 +0,0 @@
-//用于自动生成工程项目的占位脚本,请勿移除或修改

+ 0 - 11
Unity/Assets/Scripts/Empty/AllModel/Empty.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: f4b3e914665ac483faa99a65622465b8
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 20
Unity/Assets/Scripts/Empty/AllModel/Unity.AllModel.asmdef

@@ -1,20 +0,0 @@
-{
-    "name": "Unity.AllModel",
-    "rootNamespace": "ET",
-    "references": [
-        "Unity.ThirdParty",
-        "Unity.Core",
-        "Unity.Mathematics",
-        "MemoryPack",
-        "Unity.Loader"
-    ],
-    "includePlatforms": [],
-    "excludePlatforms": [],
-    "allowUnsafeCode": true,
-    "overrideReferences": false,
-    "precompiledReferences": [],
-    "autoReferenced": true,
-    "defineConstraints": [],
-    "versionDefines": [],
-    "noEngineReferences": false
-}

+ 0 - 7
Unity/Assets/Scripts/Empty/AllModel/Unity.AllModel.asmdef.meta

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

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

@@ -1,5 +1,6 @@
 using UnityEditor.Compilation;
 using UnityEngine;
+using UnityEngine.Serialization;
 
 namespace ET
 {
@@ -10,10 +11,18 @@ namespace ET
         ClientServer = 3,
     }
     
+    public enum BuildType
+    {
+        None,
+        Debug,
+        Release,
+    }
+    
     [CreateAssetMenu(menuName = "ET/CreateGlobalConfig", fileName = "GlobalConfig", order = 0)]
     public class GlobalConfig: ScriptableObject
     {
         public CodeMode CodeMode;
-        public CodeOptimization CodeOptimization;
+        
+        public BuildType BuildType;
     }
 }