diff --git a/Assets/00.StaryEvo/Runtime/PlayerSettings/DomainConfig.cs b/Assets/00.StaryEvo/Runtime/PlayerSettings/DomainConfig.cs index 9c630ce..6ce10d8 100644 --- a/Assets/00.StaryEvo/Runtime/PlayerSettings/DomainConfig.cs +++ b/Assets/00.StaryEvo/Runtime/PlayerSettings/DomainConfig.cs @@ -16,6 +16,10 @@ namespace Stary.Evo /// [Sirenix.OdinInspector.ReadOnly] public string domain; + /// + /// 程序集 + /// + [Sirenix.OdinInspector.ReadOnly] public string assemblyName; /// /// 入口命名空间 /// diff --git a/Assets/00.StaryEvo/package.json b/Assets/00.StaryEvo/package.json index 97010e4..ab5f741 100644 --- a/Assets/00.StaryEvo/package.json +++ b/Assets/00.StaryEvo/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.main", - "version": "2.1.12", + "version": "2.1.13", "displayName": "00.StaryEvo", "description": "This is an Framework package(后台服务器版本,端口9527)", "unity": "2021.3", diff --git a/Assets/00.StaryEvoTools/Editor/Build/AutoBuildPackage.cs b/Assets/00.StaryEvoTools/Editor/Build/AutoBuildPackage.cs index c0c1480..19c3d42 100644 --- a/Assets/00.StaryEvoTools/Editor/Build/AutoBuildPackage.cs +++ b/Assets/00.StaryEvoTools/Editor/Build/AutoBuildPackage.cs @@ -1,7 +1,10 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; + +#if !UNITY_WEBGL using HybridCLR.Editor.Commands; +#endif using Newtonsoft.Json; using Sirenix.OdinInspector; using UnityEditor; @@ -38,10 +41,12 @@ namespace Stary.Evo.Editor /// public static void OneClickMark(List oneKeyBuildEntities) { +#if !UNITY_WEBGL //打dll CompileDllCommand.CompileDllActiveBuildTarget(); //拷贝dll MarkAdressable.AddHotfixAddressableDllAll(oneKeyBuildEntities); +#endif //标记全部资源 MarkAdressable.AddMarkAll(oneKeyBuildEntities); } diff --git a/Assets/00.StaryEvoTools/Editor/BuildAsset/BuildAssetWindow.cs b/Assets/00.StaryEvoTools/Editor/BuildAsset/BuildAssetWindow.cs index 1be0595..d6c1b98 100644 --- a/Assets/00.StaryEvoTools/Editor/BuildAsset/BuildAssetWindow.cs +++ b/Assets/00.StaryEvoTools/Editor/BuildAsset/BuildAssetWindow.cs @@ -11,8 +11,6 @@ using System.Collections.Generic; using System.IO; using System.IO.Compression; using System.Threading.Tasks; -using HybridCLR.Editor; -using HybridCLR.Editor.Commands; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Sirenix.OdinInspector; diff --git a/Assets/00.StaryEvoTools/Editor/BuildAsset/CreatAssetWindow.cs b/Assets/00.StaryEvoTools/Editor/BuildAsset/CreatAssetWindow.cs index 4ebd7b7..077e5ac 100644 --- a/Assets/00.StaryEvoTools/Editor/BuildAsset/CreatAssetWindow.cs +++ b/Assets/00.StaryEvoTools/Editor/BuildAsset/CreatAssetWindow.cs @@ -2,8 +2,10 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +#if !UNITY_WEBGL using HybridCLR.Editor; using HybridCLR.Editor.Settings; +#endif using Sirenix.OdinInspector; using Sirenix.OdinInspector.Editor; using UnityEditor; @@ -174,16 +176,7 @@ namespace Stary.Evo.Editor domainClassName = domainClassName.Replace('.', '_'); string architectureClassName = $"{domain}Architecture"; architectureClassName = architectureClassName.Replace('.', '_'); - //模块配置资源 - DomainConfig moduleConfig = CreateInstance(); - moduleConfig.domain = domain; - moduleConfig.className = domainClassName; - moduleConfig.mainPrefab = "Prefabs_" + gameObj.name; - moduleConfig.@namespace = domain; - AssetDatabase.CreateAsset(moduleConfig, $"Assets/Domain/{domain}/AddressableRes/Config/DomainConfig.asset"); - // - - + //编辑器配置资源 BuildAssetDataSetting buildAssetDataSetting = CreateInstance(); buildAssetDataSetting.packageName = domain; @@ -196,6 +189,17 @@ namespace Stary.Evo.Editor string configPath = $"Assets/Domain/{domain}/HotUpdate/{hotfixDomain}.asmdef"; AssemblyDefinitionAsset assemblyDefinitionAsset = AssetDatabase.LoadAssetAtPath(configPath); + + //模块配置资源 + DomainConfig moduleConfig = CreateInstance(); + moduleConfig.domain = domain; + moduleConfig.assemblyName = assemblyDefinitionAsset.name; + moduleConfig.className = domainClassName; + moduleConfig.mainPrefab = "Prefabs_" + gameObj.name; + moduleConfig.@namespace = domain; + AssetDatabase.CreateAsset(moduleConfig, $"Assets/Domain/{domain}/AddressableRes/Config/DomainConfig.asset"); + // +#if !UNITY_WEBGL if (domain != "Main") { // 将程序集定义添加到 HybridCLR 热更列表 @@ -220,6 +224,7 @@ namespace Stary.Evo.Editor HybridCLRSettings.Instance.hotUpdateAssemblyDefinitions = assemblies.ToArray(); HybridCLRSettings.Save(); } +#endif AssetDatabase.SaveAssets(); diff --git a/Assets/00.StaryEvoTools/Editor/BuildAsset/OneKeyBuildWindow.cs b/Assets/00.StaryEvoTools/Editor/BuildAsset/OneKeyBuildWindow.cs index 954e1b1..3f25278 100644 --- a/Assets/00.StaryEvoTools/Editor/BuildAsset/OneKeyBuildWindow.cs +++ b/Assets/00.StaryEvoTools/Editor/BuildAsset/OneKeyBuildWindow.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; -using HybridCLR.Editor.Commands; -using Newtonsoft.Json; using Sirenix.OdinInspector; using Sirenix.OdinInspector.Editor; using UnityEditor; diff --git a/Assets/00.StaryEvoTools/Editor/MarkAdressable/MarkAdressable.cs b/Assets/00.StaryEvoTools/Editor/MarkAdressable/MarkAdressable.cs index d293223..596c331 100644 --- a/Assets/00.StaryEvoTools/Editor/MarkAdressable/MarkAdressable.cs +++ b/Assets/00.StaryEvoTools/Editor/MarkAdressable/MarkAdressable.cs @@ -2,8 +2,9 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +#if !UNITY_WEBGL using HybridCLR.Editor; -using HybridCLR.Editor.Commands; +#endif using UnityEditor; using UnityEditor.U2D; using UnityEngine; @@ -34,7 +35,7 @@ namespace Stary.Evo.Editor { get { return Application.dataPath + "/Domain"; } } - +#if !UNITY_WEBGL public static void AddHotfixAddressableDll() { CopyDllHotUpdateAssembly(BuildAssetWindow.GetBuildPackageName(), @@ -104,7 +105,7 @@ namespace Stary.Evo.Editor FileUtility.Copy(hotfixDllPath, hotfixDllPathTarget, true); } } - +#endif public static void AddMarkAll(List oneKeyBUildEntities) { foreach (var oneKeyBUildEntity in oneKeyBUildEntities) diff --git a/Assets/00.StaryEvoTools/Editor/com.staryevo.tools.editor.asmdef b/Assets/00.StaryEvoTools/Editor/com.staryevo.tools.editor.asmdef index a1ee771..82253f4 100644 --- a/Assets/00.StaryEvoTools/Editor/com.staryevo.tools.editor.asmdef +++ b/Assets/00.StaryEvoTools/Editor/com.staryevo.tools.editor.asmdef @@ -5,18 +5,17 @@ "com.staryevo.tools.runtime", "com.stary.evo.editor", "com.stary.evo.runtime", - "HybridCLR.Runtime", - "HybridCLR.Editor", "com.stary.buildoriginality.editor", "com.stary.buildoriginality.runtime", "YooAsset", "YooAsset.Editor", "com.audiocore.runtime", "DOTween.Modules", - "ImmersalSDK", "Informationsave.runtime", "UniTask", - "Unity.ScriptableBuildPipeline.Editor" + "Unity.ScriptableBuildPipeline.Editor", + "HybridCLR.Editor", + "HybridCLR.Runtime" ], "includePlatforms": [ "Editor" diff --git a/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/HotFixDllState.cs b/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/HotFixDllState.cs index 8f1abf4..e9917de 100644 --- a/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/HotFixDllState.cs +++ b/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/HotFixDllState.cs @@ -3,7 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; using Cysharp.Threading.Tasks; +#if !UNITY_WEBGL using HybridCLR; +#endif using UnityEngine; using YooAsset; @@ -230,11 +232,6 @@ namespace Stary.Evo } } - public override UniTask OnEnterAsync() - { - return UniTask.CompletedTask; - } - private Type IsAssetLoaded(string assemblyName) { var assemblies = AppDomain.CurrentDomain.GetAssemblies(); @@ -253,26 +250,9 @@ namespace Stary.Evo #region 补充元数据 - // //补充元数据dll的列表 - // //通过RuntimeApi.LoadMetadataForAOTAssembly()函数来补充AOT泛型的原始元数据 - // private List AOTMetaAssemblyFiles { get; } =new() - // { - // "Android_mscorlib.dll", "Android_System.dll", "Android_System.Core.dll", - // }; - private readonly List _sAssetDatas = new(); - - // public byte[] ReadBytesFromStreamingAssets(string dllName) - // { - // if (_sAssetDatas.ContainsKey(dllName)) - // { - // return _sAssetDatas[dllName].bytes; - // } - // - // return Array.Empty(); - // } - + /// /// 为aot assembly加载原始metadata, 这个代码放aot或者热更新都行。 @@ -280,6 +260,7 @@ namespace Stary.Evo /// private void LoadMetadataForAOTAssemblies() { +#if !UNITY_WEBGL var mode = HomologousImageMode.SuperSet; // foreach (var aotDllName in AOTGenericReferences.PatchedAOTAssemblyList) foreach (var aotDll in _sAssetDatas) @@ -300,6 +281,7 @@ namespace Stary.Evo Debug.Log($"UnityEvo:【补元】{aotDll.name} 加载结果: {err} 字节数: {dllBytes.Length}"); } +#endif } #endregion diff --git a/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/ResStartState.cs b/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/ResStartState.cs index 9693e39..8f153c4 100644 --- a/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/ResStartState.cs +++ b/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/ResStartState.cs @@ -20,7 +20,14 @@ namespace Stary.Evo if (AppConfig.DeveloperMode) { domainConfig = param1 as DomainConfig; +#if UNITY_WEBGL + string typeName = $"{domainConfig.@namespace}.{domainConfig.className},{domainConfig.assemblyName}"; // 完整命名空间 + Type type = Type.GetType(typeName); +#else Type type = param2 as Type; +#endif + + GameObject mainPrefab = null; diff --git a/Assets/00.StaryEvoTools/Runtime/com.staryevo.tools.runtime.asmdef b/Assets/00.StaryEvoTools/Runtime/com.staryevo.tools.runtime.asmdef index c9e537d..bd6a345 100644 --- a/Assets/00.StaryEvoTools/Runtime/com.staryevo.tools.runtime.asmdef +++ b/Assets/00.StaryEvoTools/Runtime/com.staryevo.tools.runtime.asmdef @@ -5,12 +5,11 @@ "UniTask", "com.audiocore.runtime", "com.stary.evo.runtime", - "HybridCLR.Runtime", - "ImmersalSDK", "Informationsave.runtime", "DOTween.Modules", "com.stary.buildoriginality.runtime", - "YooAsset" + "YooAsset", + "HybridCLR.Runtime" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/00.StaryEvoTools/package.json b/Assets/00.StaryEvoTools/package.json index ee0b1d9..3c8500d 100644 --- a/Assets/00.StaryEvoTools/package.json +++ b/Assets/00.StaryEvoTools/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.tools", - "version": "1.4.13", + "version": "1.4.14", "displayName": "00.StaryEvo.Tools", "description": "This is an Framework package(后台服务器版本,端口9527)", "unity": "2021.3",