From d04cffe3877052f99c6528d2b1836bd71b557829 Mon Sep 17 00:00:00 2001
From: stary <834207172@qq.COM>
Date: Sat, 18 Apr 2026 12:00:41 +0800
Subject: [PATCH] 111
---
.../Runtime/PlayerSettings/DomainConfig.cs | 4 +++
Assets/00.StaryEvo/package.json | 2 +-
.../Editor/Build/AutoBuildPackage.cs | 5 ++++
.../Editor/BuildAsset/BuildAssetWindow.cs | 2 --
.../Editor/BuildAsset/CreatAssetWindow.cs | 25 ++++++++++-------
.../Editor/BuildAsset/OneKeyBuildWindow.cs | 2 --
.../Editor/MarkAdressable/MarkAdressable.cs | 7 +++--
.../Editor/com.staryevo.tools.editor.asmdef | 7 ++---
.../Runtime/HybridLoad/Fsm/HotFixDllState.cs | 28 ++++---------------
.../Runtime/HybridLoad/Fsm/ResStartState.cs | 7 +++++
.../Runtime/com.staryevo.tools.runtime.asmdef | 5 ++--
Assets/00.StaryEvoTools/package.json | 2 +-
12 files changed, 47 insertions(+), 49 deletions(-)
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",