Jelajahi Sumber

增加YooConfig,用来配置EPlayMode

tanghai 1 tahun lalu
induk
melakukan
a30fe1a6e5

+ 0 - 6
Unity/Packages/com.et.loader/Editor/Assembly/AssemblyEditor.cs

@@ -33,12 +33,6 @@ namespace ET
         /// </summary>
         static void OnExitingEditMode()
         {
-            GlobalConfig globalConfig = Resources.Load<GlobalConfig>("GlobalConfig");
-            if (!globalConfig.EnableDll)
-            {
-                return;
-            }
-
             foreach (string dll in AssemblyTool.DllNames)
             {
                 string dllFile = $"{Application.dataPath}/../Library/ScriptAssemblies/{dll}.dll";

+ 3 - 1
Unity/Packages/com.et.loader/Editor/BuildEditor/BuildEditor.cs

@@ -34,6 +34,7 @@ namespace ET
         private BuildOptions buildOptions;
 
         private GlobalConfig globalConfig;
+        private YooConfig yooConfig;
 
         [MenuItem("ET/Build Tool", false, ETMenuItemPriority.BuildTool)]
         public static void ShowWindow()
@@ -44,6 +45,7 @@ namespace ET
         private void OnEnable()
         {
             globalConfig = AssetDatabase.LoadAssetAtPath<GlobalConfig>("Assets/Resources/GlobalConfig.asset");
+            yooConfig = AssetDatabase.LoadAssetAtPath<YooConfig>("Packages/com.et.yooassets/YooConfig.asset");
 
 #if UNITY_ANDROID
             activePlatform = PlatformType.Android;
@@ -85,7 +87,7 @@ namespace ET
                     return;
                 }
 
-                if (this.globalConfig.EPlayMode == EPlayMode.EditorSimulateMode)
+                if (this.yooConfig.EPlayMode == EPlayMode.EditorSimulateMode)
                 {
                     Log.Error("build package EPlayMode must not be EPlayMode.EditorSimulateMode, please select HostPlayMode");
                     return;

+ 0 - 14
Unity/Packages/com.et.loader/Editor/GlobalConfigEditor/GlobalConfigEditor.cs

@@ -26,13 +26,6 @@ namespace ET
                 EditorResHelper.SaveAssets(globalConfig);
                 AssemblyTool.DoCompile();
             }
-
-            bool enableDll = EditorGUILayout.Toggle("EnableDll", globalConfig.EnableDll);
-            if (enableDll != globalConfig.EnableDll)
-            {
-                globalConfig.EnableDll = enableDll;
-                EditorResHelper.SaveAssets(globalConfig);
-            }
             
             BuildType buildType = (BuildType)EditorGUILayout.EnumPopup("BuildType", globalConfig.BuildType);
             if (buildType != globalConfig.BuildType)
@@ -48,13 +41,6 @@ namespace ET
                 AssemblyTool.DoCompile();
             }
             
-            EPlayMode ePlayMode = (EPlayMode)EditorGUILayout.EnumPopup("EPlayMode", globalConfig.EPlayMode);
-            if (ePlayMode != globalConfig.EPlayMode)
-            {
-                globalConfig.EPlayMode = ePlayMode;
-                EditorResHelper.SaveAssets(globalConfig);
-            }
-            
             string sceneName = EditorGUILayout.TextField($"SceneName", globalConfig.SceneName);
             if (sceneName != globalConfig.SceneName)
             {

+ 2 - 1
Unity/Packages/com.et.loader/Editor/Unity.Loader.Editor.asmdef

@@ -7,7 +7,8 @@
         "HybridCLR.Runtime",
         "HybridCLR.Editor",
         "YooAsset",
-        "Unity.Core.Editor"
+        "Unity.Core.Editor",
+        "Unity.YooAssets"
     ],
     "includePlatforms": [
         "Editor"

+ 12 - 62
Unity/Packages/com.et.loader/Runtime/CodeLoader.cs

@@ -14,11 +14,9 @@ namespace ET
 
         private Dictionary<string, TextAsset> dlls;
         private Dictionary<string, TextAsset> aotDlls;
-        private bool enableDll;
 
         public void Awake()
         {
-            this.enableDll = Resources.Load<GlobalConfig>("GlobalConfig").EnableDll;
         }
 
         private async ETTask DownloadAsync()
@@ -62,36 +60,12 @@ namespace ET
             }
             else
             {
-                if (this.enableDll)
-                {
-                    byte[] modelAssBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.Model.dll.bytes"));
-                    byte[] modelPdbBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.Model.pdb.bytes"));
-                    byte[] modelViewAssBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.ModelView.dll.bytes"));
-                    byte[] modelViewPdbBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.ModelView.pdb.bytes"));
-                    this.modelAssembly = Assembly.Load(modelAssBytes, modelPdbBytes);
-                    this.modelViewAssembly = Assembly.Load(modelViewAssBytes, modelViewPdbBytes);
-                }
-                else
-                {
-                    Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
-                    foreach (Assembly ass in assemblies)
-                    {
-                        string name = ass.GetName().Name;
-                        if (name == "Unity.Model")
-                        {
-                            this.modelAssembly = ass;
-                        }
-                        else if (name == "Unity.ModelView")
-                        {
-                            this.modelViewAssembly = ass;
-                        }
-
-                        if (this.modelAssembly != null && this.modelViewAssembly != null)
-                        {
-                            break;
-                        }
-                    }
-                }
+                byte[] modelAssBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.Model.dll.bytes"));
+                byte[] modelPdbBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.Model.pdb.bytes"));
+                byte[] modelViewAssBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.ModelView.dll.bytes"));
+                byte[] modelViewPdbBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.ModelView.pdb.bytes"));
+                this.modelAssembly = Assembly.Load(modelAssBytes, modelPdbBytes);
+                this.modelViewAssembly = Assembly.Load(modelViewAssBytes, modelViewPdbBytes);
             }
             
             (Assembly hotfixAssembly, Assembly hotfixViewAssembly) = this.LoadHotfix();
@@ -130,36 +104,12 @@ namespace ET
             }
             else
             {
-                if (this.enableDll)
-                {
-                    hotfixAssBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.Hotfix.dll.bytes"));
-                    hotfixPdbBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.Hotfix.pdb.bytes"));
-                    hotfixViewAssBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.HotfixView.dll.bytes"));
-                    hotfixViewPdbBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.HotfixView.pdb.bytes"));
-                    hotfixAssembly = Assembly.Load(hotfixAssBytes, hotfixPdbBytes);
-                    hotfixViewAssembly = Assembly.Load(hotfixViewAssBytes, hotfixViewPdbBytes);
-                }
-                else
-                {
-                    Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
-                    foreach (Assembly ass in assemblies)
-                    {
-                        string name = ass.GetName().Name;
-                        if (name == "Unity.Hotfix")
-                        {
-                            hotfixAssembly = ass;
-                        }
-                        else if (name == "Unity.HotfixView")
-                        {
-                            hotfixViewAssembly = ass;
-                        }
-
-                        if (hotfixAssembly != null && hotfixViewAssembly != null)
-                        {
-                            break;
-                        }
-                    }
-                }
+                hotfixAssBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.Hotfix.dll.bytes"));
+                hotfixPdbBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.Hotfix.pdb.bytes"));
+                hotfixViewAssBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.HotfixView.dll.bytes"));
+                hotfixViewPdbBytes = File.ReadAllBytes(Path.Combine(Define.CodeDir, "Unity.HotfixView.pdb.bytes"));
+                hotfixAssembly = Assembly.Load(hotfixAssBytes, hotfixPdbBytes);
+                hotfixViewAssembly = Assembly.Load(hotfixViewAssBytes, hotfixViewPdbBytes);
             }
             
             return (hotfixAssembly, hotfixViewAssembly);

+ 0 - 4
Unity/Packages/com.et.loader/Runtime/MonoBehaviour/GlobalConfig.cs

@@ -21,12 +21,8 @@ namespace ET
     {
         public CodeMode CodeMode;
 
-        public bool EnableDll;
-
         public BuildType BuildType;
 
         public string SceneName;
-
-        public EPlayMode EPlayMode;
     }
 }

+ 1 - 2
Unity/Packages/com.et.loader/Runtime/MonoBehaviour/Init.cs

@@ -33,8 +33,7 @@ namespace ET
             World.Instance.AddSingleton<TimeInfo>();
             World.Instance.AddSingleton<FiberManager>();
 
-            GlobalConfig globalConfig = Resources.Load<GlobalConfig>("GlobalConfig");
-            await World.Instance.AddSingleton<ResourcesComponent>().CreatePackageAsync("DefaultPackage", globalConfig.EPlayMode, true);
+            await World.Instance.AddSingleton<ResourcesComponent>().CreatePackageAsync("DefaultPackage", true);
             
             World.Instance.AddSingleton<CodeLoader>().Start().Coroutine();
         }

+ 15 - 0
Unity/Packages/com.et.yooassets/Resources/YooConfig.asset

@@ -0,0 +1,15 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8570ed0540364879bf384bbaec0c0424, type: 3}
+  m_Name: YooConfig
+  m_EditorClassIdentifier: 
+  EPlayMode: 0

+ 8 - 0
Unity/Packages/com.et.yooassets/Resources/YooConfig.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f08980bcc58f01c4c95f1597012e069e
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 2
Unity/Packages/com.et.yooassets/Runtime/ResourcesComponent.cs

@@ -42,8 +42,9 @@ namespace ET
             YooAssets.Destroy();
         }
 
-        public async ETTask CreatePackageAsync(string packageName, EPlayMode ePlayMode, bool isDefault = false)
+        public async ETTask CreatePackageAsync(string packageName, bool isDefault = false)
         {
+            YooConfig yooConfig = Resources.Load<YooConfig>("YooConfig");
             ResourcePackage package = YooAssets.CreatePackage(packageName);
             if (isDefault)
             {
@@ -51,7 +52,7 @@ namespace ET
             }
 
             // 编辑器下的模拟模式
-            switch (ePlayMode)
+            switch (yooConfig.EPlayMode)
             {
                 case EPlayMode.EditorSimulateMode:
                 {

+ 11 - 0
Unity/Packages/com.et.yooassets/Runtime/YooConfig.cs

@@ -0,0 +1,11 @@
+using UnityEngine;
+using YooAsset;
+
+namespace ET
+{
+    [CreateAssetMenu(menuName = "ET/YooConfig", fileName = "YooConfig", order = 0)]
+    public class YooConfig: ScriptableObject
+    {
+        public EPlayMode EPlayMode;
+    }
+}

+ 3 - 0
Unity/Packages/com.et.yooassets/Runtime/YooConfig.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 8570ed0540364879bf384bbaec0c0424
+timeCreated: 1714238556