소스 검색

调整编译过程,删除一些废弃的按钮

tanghai 2 년 전
부모
커밋
5165977dd2

+ 13 - 17
Book/1.1运行指南.md

@@ -9,31 +9,27 @@
 
 3. 启动UnityHub,打开(Open) -> 选中'ET/Unity'文件夹所在目录后打开工程
 
-4. 打开工程后,点击Unity菜单 -> Edit -> Preferences -> External Tools,点击下拉框'**External ScriptEditor**'选择**Rider**,Generate .csproj files for全部**不要勾选(□)**
+4. 在Project视图中选中'Assets/Resources/GlobalConfig',把AppType选择成'**Demo(状态同步)**'或者'**LockStep(帧同步)**'
 
-5. 点击Unity菜单 -> Assets -> Open C# Project 启动IDE
+5. Assets/Resources/GlobalConfig CodeMode选择**Client Server**,打开Unity菜单 -> ET -> BuildTool,然后**点击ReGenerateProjectFiles**
 
-6. 在Project视图中选中'Assets/Resources/GlobalConfig',把AppType选择成'**Demo(状态同步)**'或者'**LockStep(帧同步)**'
+6. 打开ET.sln,**编译整个ET.sln**,注意要翻墙,否则可能nuget包下载不下来,导致编译出错(翻墙后如果还有报错解决不了可以尝试先用VS打开ET.sln编译一次后再回到Rider重新编译一次)
 
-7. 打开Unity菜单 -> ET -> BuildTool,CodeMode选择**Client Server**,然后**点击ReGenerateProjectFiles**
+7. Unity中双击'Assets/Scenes'目录中的**Init**场景,点击Play(▶)即可运行
 
-8. 打开ET.sln,**编译整个ET.sln**,注意要翻墙,否则可能nuget包下载不下来,导致编译出错(翻墙后如果还有报错解决不了可以尝试先用VS打开ET.sln编译一次后再回到Rider重新编译一次)
+8. 帧同步默认是一个人匹配,如果需要多人匹配,修改**LSConstValue.cs**中的**MatchCount** 客户端服务端重启即可
 
-9. Unity中双击'Assets/Scenes'目录中的**Init**场景,点击Play(▶)即可运行
+9. 注意要独立启动服务器,右键UnityHub,以管理员身份运行UnityHub,然后启动Unity(没有管理员启动是不行的,因为服务端要开启http服务,普通权限开不了),  
+   停止Unity Play,点开Unity菜单->ET->Server Tools->Start Server(Single Process),这样就单独启动了服务端。打开Unity菜单 -> ET -> BuildTool中CodeMode改成Client,点击Unity Play,登录。  
+   如果还是连接不上报10037错误,注意看ET/Logs目录,看有没有Error日志。 如果要用rider启动服务器,rider也必须用管理员权限启动   
+   注意一定要用 netsh http delete urlacl 命令删除掉所有自己添加的urlacl,具体使用方法请谷歌  
 
-10. 帧同步默认是一个人匹配,如果需要多人匹配,修改**LSConstValue.cs**中的**MatchCount**即可
-
-11. 注意要独立启动服务器,右键UnityHub,以管理员身份运行UnityHub,然后启动Unity(没有管理员启动是不行的,因为服务端要开启http服务,普通权限开不了),  
-    停止Unity Play,点开Unity菜单->ET->Server Tools->Start Server(Single Process),这样就单独启动了服务端。打开Unity菜单 -> ET -> BuildTool中CodeMode改成Client,点击Unity Play,登录。  
-    如果还是连接不上报10037错误,注意看ET/Logs目录,看有没有Error日志。 如果要用rider启动服务器,rider也必须用管理员权限启动   
-    注意一定要用 netsh http delete urlacl 命令删除掉所有自己添加的urlacl,具体使用方法请谷歌  
-
-12. 有问题请论坛提问,贴出服务端error log跟客户端error log,没有日志无法回复  
+10. 有问题请论坛提问,贴出服务端error log跟客户端error log,没有日志无法回复  
 
 # 打包过程
 1. 点击HybridCLR -> Installer,点击安装,等待安装完成
 
-2. 用Rider编译整个ET.sln工程(翻墙后如果还有报错解决不了可以尝试先用VS打开ET.sln编译一次后再回到Rider重新编译一次)
+2. 点击Player按钮左边的Compile按钮进行编译
 
 3. 点击HybridCLR -> Generate -> All
 
@@ -41,14 +37,14 @@
 
 5. 打开YooAsset菜单 -> 点击AssetBundle Builder -> 点击下拉框'Copy Buildin File Option' -> 选择'Clear And Copy All' -> 点击'构建'
 
-6. 打开Unity菜单 -> ET -> BuildTool -> EPlayMode选择'HostPlayMode' -> 点击'BuildPackage',Windows下生成的exe在'ET/Release'里面
+6. Assets/Resources/GlobalConfig EPlayMode选择'HostPlayMode', 打开Unity菜单 -> ET -> BuildTool,点击'BuildPackage',Windows下生成的exe在'ET/Release'里面
 
 另:**请自行研究**YooAsset包管理库的使用方式([YooAsset官网](https://www.yooasset.com/)),若需要升级请自行替换'ET/Unity/Packages/YooAsset'
 
 # 热重载
 1. 若需要体验此功能,需要在Unity菜单 -> Edit -> Preferences -> General窗口的 'ScriptChangesWhilePlaying' 中 选择 '**RecompileAfterFinishedPlaying**'
 
-2. 运行后修改'Hotfix'或'HotfixView'的代码然后用Rider编译好对应的Hotfix工程,再在状态同步Demo中按'R'键
+2. 运行后修改代码,点击Player左边的Reload按钮即可
 
 # 注意事项:
 

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

@@ -19,9 +19,7 @@ namespace ET
     {
         private PlatformType activePlatform;
         private PlatformType platformType;
-        private bool clearFolder;
         private BuildOptions buildOptions;
-        private BuildAssetBundleOptions buildAssetBundleOptions = BuildAssetBundleOptions.None;
 
         private GlobalConfig globalConfig;
 
@@ -54,30 +52,9 @@ namespace ET
         private void OnGUI()
         {
             this.platformType = (PlatformType)EditorGUILayout.EnumPopup(platformType);
-            this.clearFolder = EditorGUILayout.Toggle("clean folder? ", clearFolder);
-            BuildType codeOptimization = (BuildType)EditorGUILayout.EnumPopup("BuildType ", this.globalConfig.BuildType);
-
-            if (codeOptimization != this.globalConfig.BuildType)
-            {
-                this.globalConfig.BuildType = codeOptimization;
-                EditorUtility.SetDirty(this.globalConfig);
-                AssetDatabase.SaveAssets();
-                BuildHelper.ReGenerateProjectFiles();
-            }
-
-            EditorGUILayout.LabelField("BuildAssetBundleOptions ");
-            this.buildAssetBundleOptions = (BuildAssetBundleOptions)EditorGUILayout.EnumFlagsField(this.buildAssetBundleOptions);
-
-            switch (this.globalConfig.BuildType)
-            {
-                case BuildType.None:
-                case BuildType.Debug:
-                    this.buildOptions = BuildOptions.BuildScriptsOnly;
-                    break;
-                case BuildType.Release:
-                    this.buildOptions = BuildOptions.BuildScriptsOnly;
-                    break;
-            }
+            
+            EditorGUILayout.LabelField("BuildOptions ");
+            this.buildOptions = (BuildOptions)EditorGUILayout.EnumFlagsField(this.buildOptions);
 
             GUILayout.Space(5);
 
@@ -115,36 +92,9 @@ namespace ET
                             break;
                     }
                 }
-                BuildHelper.Build(this.platformType, this.buildAssetBundleOptions, this.buildOptions, this.clearFolder);
+                BuildHelper.Build(this.platformType, this.buildOptions);
                 return;
             }
-
-            GUILayout.Label("");
-            GUILayout.Label("Code Compile:");
-            EditorGUI.BeginChangeCheck();
-            CodeMode codeMode = (CodeMode)EditorGUILayout.EnumPopup("CodeMode: ", this.globalConfig.CodeMode);
-            if (EditorGUI.EndChangeCheck())
-            {
-                EditorUtility.SetDirty(this.globalConfig);
-                AssetDatabase.SaveAssetIfDirty(this.globalConfig);
-                AssetDatabase.Refresh();
-            }
-
-            if (codeMode != this.globalConfig.CodeMode)
-            {
-                this.globalConfig.CodeMode = codeMode;
-                EditorUtility.SetDirty(this.globalConfig);
-                AssetDatabase.SaveAssets();
-                AssemblyTool.RefreshCodeMode(codeMode);
-            }
-
-            EPlayMode ePlayMode = (EPlayMode)EditorGUILayout.EnumPopup("EPlayMode: ", this.globalConfig.EPlayMode);
-            if (ePlayMode != this.globalConfig.EPlayMode)
-            {
-                this.globalConfig.EPlayMode = ePlayMode;
-                EditorUtility.SetDirty(this.globalConfig);
-                AssetDatabase.SaveAssets();
-            }
             
             if (GUILayout.Button("ReGenerateProjectFiles"))
             {

+ 1 - 13
Unity/Assets/Scripts/Editor/BuildEditor/BuildHelper.cs

@@ -59,7 +59,7 @@ namespace ET
             AssetDatabase.Refresh();
         }
 
-        public static void Build(PlatformType type, BuildAssetBundleOptions buildAssetBundleOptions, BuildOptions buildOptions, bool clearFolder)
+        public static void Build(PlatformType type, BuildOptions buildOptions)
         {
             BuildTarget buildTarget = BuildTarget.StandaloneWindows;
             string programName = "ET";
@@ -85,18 +85,6 @@ namespace ET
                     break;
             }
 
-            string fold = string.Format(BuildFolder, type);
-
-            if (clearFolder && Directory.Exists(fold))
-            {
-                Directory.Delete(fold, true);
-            }
-            Directory.CreateDirectory(fold);
-
-            Debug.Log("start build assetbundle");
-            BuildPipeline.BuildAssetBundles(fold, buildAssetBundleOptions, buildTarget);
-            Debug.Log("finish build assetbundle");
-
             AssetDatabase.Refresh();
             string[] levels = {
                 "Assets/Scenes/Init.unity",

+ 23 - 8
Unity/Assets/Scripts/Editor/GlobalConfigEditor/GlobalConfigEditor.cs

@@ -1,3 +1,4 @@
+using System;
 using UnityEditor;
 
 namespace ET
@@ -5,30 +6,44 @@ namespace ET
     [CustomEditor(typeof(GlobalConfig))]
     public class GlobalConfigEditor : Editor
     {
-        private CodeMode m_CurCodeMode;
-        private BuildType m_CurBuildType;
+        private CodeMode codeMode;
+        private BuildType buildType;
 
         private void OnEnable()
         {
             GlobalConfig globalConfig = (GlobalConfig)this.target;
-            m_CurCodeMode = globalConfig.CodeMode;
-            m_CurBuildType = globalConfig.BuildType;
+            this.codeMode = globalConfig.CodeMode;
+            globalConfig.BuildType = EditorUserBuildSettings.development? BuildType.Debug : BuildType.Release;
+            this.buildType = globalConfig.BuildType;
         }
 
         public override void OnInspectorGUI()
         {
             base.OnInspectorGUI();
             GlobalConfig globalConfig = (GlobalConfig)this.target;
-            if (m_CurCodeMode != globalConfig.CodeMode)
+            if (this.codeMode != globalConfig.CodeMode)
             {
-                m_CurCodeMode = globalConfig.CodeMode;
+                this.codeMode = globalConfig.CodeMode;
                 this.serializedObject.Update();
                 AssemblyTool.RefreshCodeMode(globalConfig.CodeMode);
             }
 
-            if (m_CurBuildType != globalConfig.BuildType)
+            if (this.buildType != globalConfig.BuildType)
             {
-                m_CurBuildType = globalConfig.BuildType;
+                this.buildType = globalConfig.BuildType;
+
+                switch (this.buildType)
+                {
+                    case BuildType.Debug:
+                        EditorUserBuildSettings.development = true;
+                        break;
+                    case BuildType.Release:
+                        EditorUserBuildSettings.development = false;
+                        break;
+                    default:
+                        throw new ArgumentOutOfRangeException();
+                }
+                
                 BuildHelper.ReGenerateProjectFiles();
             }
         }

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

@@ -12,7 +12,6 @@ namespace ET
     
     public enum BuildType
     {
-        None,
         Debug,
         Release,
     }