From ef17cd851b56abec77a3a7f25ef87800afec7cbd Mon Sep 17 00:00:00 2001
From: Weekend <872285171@qq.com>
Date: Sat, 18 Nov 2023 21:44:24 +0800
Subject: [PATCH 1/3] =?UTF-8?q?add:=E4=BC=98=E5=8C=96=E5=88=86=E5=8C=85?=
=?UTF-8?q?=E4=B8=8B=E8=BD=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ResourceManager.Services.cs | 27 +++++++++++--------
.../Modules/ResourceModule/ResourceManager.cs | 4 +--
2 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.Services.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.Services.cs
index ea94cc1b..7e09b9d5 100644
--- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.Services.cs
+++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.Services.cs
@@ -12,7 +12,7 @@ namespace TEngine
private class GameDecryptionServices : IDecryptionServices
{
private const byte OffSet = 32;
-
+
public ulong LoadFromFileOffset(DecryptFileInfo fileInfo)
{
return OffSet;
@@ -25,7 +25,8 @@ namespace TEngine
public Stream LoadFromStream(DecryptFileInfo fileInfo)
{
- BundleStream bundleStream = new BundleStream(fileInfo.FilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
+ BundleStream bundleStream =
+ new BundleStream(fileInfo.FilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
return bundleStream;
}
@@ -34,7 +35,7 @@ namespace TEngine
return 1024;
}
}
-
+
///
/// 默认的分发资源查询服务类
///
@@ -44,40 +45,43 @@ namespace TEngine
{
throw new NotImplementedException();
}
+
public bool QueryDeliveryFiles(string packageName, string fileName)
{
return false;
}
}
-
+
///
/// 远程文件查询服务类。
///
- private class RemoteServices: IRemoteServices
+ private class RemoteServices : IRemoteServices
{
private readonly string _defaultHostServer;
private readonly string _fallbackHostServer;
+ private string _packageName;
- public RemoteServices()
+ public RemoteServices(string packageName)
{
_defaultHostServer = SettingsUtils.FrameworkGlobalSettings.HostServerURL;
_fallbackHostServer = SettingsUtils.FrameworkGlobalSettings.FallbackHostServerURL;
+ _packageName = packageName;
}
-
+
public RemoteServices(string defaultHostServer, string fallbackHostServer)
{
_defaultHostServer = defaultHostServer;
_fallbackHostServer = fallbackHostServer;
}
-
+
public string GetRemoteMainURL(string fileName)
{
- return $"{_defaultHostServer}/{fileName}";
+ return $"{_defaultHostServer}/{_packageName}/{fileName}";
}
public string GetRemoteFallbackURL(string fileName)
{
- return $"{_fallbackHostServer}/{fileName}";
+ return $"{_defaultHostServer}/{_packageName}/{fileName}";
}
}
}
@@ -86,7 +90,8 @@ namespace TEngine
{
public const byte KEY = 128;
- public BundleStream(string path, FileMode mode, FileAccess access, FileShare share) : base(path, mode, access, share)
+ public BundleStream(string path, FileMode mode, FileAccess access, FileShare share) : base(path, mode, access,
+ share)
{
}
diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs
index 4893dd9f..47c9cd3a 100644
--- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs
+++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs
@@ -384,7 +384,7 @@ namespace TEngine
createParameters.DecryptionServices = new GameDecryptionServices();
createParameters.BuildinQueryServices = new BuiltinQueryServices();
createParameters.DeliveryQueryServices = new DefaultDeliveryQueryServices();
- createParameters.RemoteServices = new RemoteServices();
+ createParameters.RemoteServices = new RemoteServices(targetPackageName);
initializationOperation = package.InitializeAsync(createParameters);
}
@@ -395,7 +395,7 @@ namespace TEngine
var createParameters = new WebPlayModeParameters();
createParameters.DecryptionServices = new GameDecryptionServices();
createParameters.BuildinQueryServices = new BuiltinQueryServices();
- createParameters.RemoteServices = new RemoteServices();
+ createParameters.RemoteServices = new RemoteServices(targetPackageName);
initializationOperation = package.InitializeAsync(createParameters);
}
From 69be3cfa23435aaa23d0d69bf2ba64dc6ab966fa Mon Sep 17 00:00:00 2001
From: Weekend <872285171@qq.com>
Date: Sun, 19 Nov 2023 01:41:47 +0800
Subject: [PATCH 2/3] =?UTF-8?q?update:=E7=BB=9F=E4=B8=80WebGL=E5=B9=B3?=
=?UTF-8?q?=E5=8F=B0=E4=B8=8E=E5=85=B6=E4=BB=96=E5=B9=B3=E5=8F=B0=E7=9A=84?=
=?UTF-8?q?=E8=BF=9C=E7=A8=8B=E7=83=AD=E6=9B=B4=E8=B5=84=E6=BA=90=E5=BC=95?=
=?UTF-8?q?=E7=94=A8=E6=96=B9=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Modules/ResourceModule/BuiltinQueryMgr.cs | 12 ----------
.../ResourceManager.Services.cs | 23 +++++++++++++++++++
.../Modules/ResourceModule/ResourceManager.cs | 5 +++-
3 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/BuiltinQueryMgr.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/BuiltinQueryMgr.cs
index 83c75f91..55d686b6 100644
--- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/BuiltinQueryMgr.cs
+++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/BuiltinQueryMgr.cs
@@ -10,18 +10,6 @@ namespace TEngine
public const string RootFolderName = "yoo";
}
- ///
- /// 内置文件查询服务类。
- ///
- public class BuiltinQueryServices : IBuildinQueryServices
- {
- public bool QueryStreamingAssets(string packageName, string fileName)
- {
- // 注意:fileName包含文件格式
- return BuiltinQueryMgr.FileExists(packageName, fileName);
- }
- }
-
#if UNITY_EDITOR
///
/// 内置资源资源查询帮助类。
diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.Services.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.Services.cs
index 7e09b9d5..011f0bd0 100644
--- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.Services.cs
+++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.Services.cs
@@ -84,6 +84,29 @@ namespace TEngine
return $"{_defaultHostServer}/{_packageName}/{fileName}";
}
}
+
+ ///
+ /// 内置文件查询服务类。
+ ///
+ public class BuiltinQueryServices : IBuildinQueryServices
+ {
+ public bool QueryStreamingAssets(string packageName, string fileName)
+ {
+ // 注意:fileName包含文件格式
+ return BuiltinQueryMgr.FileExists(packageName, fileName);
+ }
+ }
+
+ ///
+ /// WebGL内置文件查询服务类。WebGL平台不需要内置查询,直接使用远程热更资源。
+ ///
+ public class WebGLBuiltinQueryServices : IBuildinQueryServices
+ {
+ public bool QueryStreamingAssets(string packageName, string fileName)
+ {
+ return true;
+ }
+ }
}
public class BundleStream : FileStream
diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs
index 47c9cd3a..048317f6 100644
--- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs
+++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs
@@ -394,8 +394,11 @@ namespace TEngine
YooAssets.SetCacheSystemDisableCacheOnWebGL();
var createParameters = new WebPlayModeParameters();
createParameters.DecryptionServices = new GameDecryptionServices();
- createParameters.BuildinQueryServices = new BuiltinQueryServices();
+ createParameters.BuildinQueryServices = new WebGLBuiltinQueryServices();
createParameters.RemoteServices = new RemoteServices(targetPackageName);
+ // WebGL运行模式下,直接使用远程热更资源。
+ createParameters.BuildinRootDirectory = SettingsUtils.FrameworkGlobalSettings.HostServerURL;
+ createParameters.SandboxRootDirectory = SettingsUtils.FrameworkGlobalSettings.HostServerURL;
initializationOperation = package.InitializeAsync(createParameters);
}
From 866c440479a6a3134611b99014ed9efa8a2ccf54 Mon Sep 17 00:00:00 2001
From: Weekend <872285171@qq.com>
Date: Sun, 19 Nov 2023 02:01:15 +0800
Subject: [PATCH 3/3] =?UTF-8?q?add:=E5=88=9D=E5=A7=8B=E5=8C=96Package?=
=?UTF-8?q?=E6=B5=81=E7=A8=8B=E4=B8=AD=E5=A2=9E=E5=8A=A0webgl=E5=B9=B3?=
=?UTF-8?q?=E5=8F=B0=E6=9B=B4=E6=96=B0update=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Main/Procedure/ProcedureInitPackage.cs | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureInitPackage.cs b/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureInitPackage.cs
index b87efb4f..69d2081d 100644
--- a/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureInitPackage.cs
+++ b/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureInitPackage.cs
@@ -29,7 +29,8 @@ namespace GameMain
private async UniTaskVoid InitPackage(ProcedureOwner procedureOwner)
{
- if (GameModule.Resource.PlayMode == EPlayMode.HostPlayMode)
+ if (GameModule.Resource.PlayMode == EPlayMode.HostPlayMode ||
+ GameModule.Resource.PlayMode == EPlayMode.WebPlayMode)
{
if (SettingsUtils.EnableUpdateData())
{
@@ -44,7 +45,8 @@ namespace GameMain
if (!string.IsNullOrEmpty(updateData.FallbackHostServerURL))
{
- SettingsUtils.FrameworkGlobalSettings.FallbackHostServerURL = updateData.FallbackHostServerURL;
+ SettingsUtils.FrameworkGlobalSettings.FallbackHostServerURL =
+ updateData.FallbackHostServerURL;
}
}
}
@@ -60,9 +62,9 @@ namespace GameMain
{
//热更新阶段文本初始化
LoadText.Instance.InitConfigData(null);
-
+
GameEvent.Send(RuntimeId.ToRuntimeId("RefreshVersion"));
-
+
EPlayMode playMode = GameModule.Resource.PlayMode;
// 编辑器模式。
@@ -107,7 +109,9 @@ namespace GameMain
// 打开启动UI。
UILoadMgr.Show(UIDefine.UILoadUpdate, $"资源初始化失败!");
- UILoadTip.ShowMessageBox($"资源初始化失败!点击确认重试 \n \n 原因{initializationOperation.Error}", MessageShowType.TwoButton,
+ UILoadTip.ShowMessageBox(
+ $"资源初始化失败!点击确认重试 \n \n 原因{initializationOperation.Error}",
+ MessageShowType.TwoButton,
LoadStyle.StyleEnum.Style_Retry
, () => { Retry(procedureOwner); }, UnityEngine.Application.Quit);
}