From f10a89180e0603fb0a0c55596e970c7811e7a821 Mon Sep 17 00:00:00 2001 From: ALEXTANG <574809918@qq.com> Date: Thu, 28 Mar 2024 15:55:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=BE=B9=E7=8E=A9=E8=BE=B9?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=EF=BC=8C=E5=90=88=E7=90=86=E5=8C=96webgl?= =?UTF-8?q?=E4=B8=8B=E7=9A=84=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 支持边玩边下载,合理化webgl下的流程 --- .../GameScripts/Main/Procedure/ProcedureInitPackage.cs | 9 ++------- .../Main/Procedure/ProcedureUpdateManifest.cs | 8 ++++++++ .../Editor/Inspector/ResourceModuleInspector.cs | 4 ++++ .../Runtime/Modules/ResourceModule/ResourceModule.cs | 10 ++++++++++ 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureInitPackage.cs b/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureInitPackage.cs index 123f7e65..a3ffc2ca 100644 --- a/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureInitPackage.cs +++ b/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureInitPackage.cs @@ -78,7 +78,8 @@ namespace GameMain ChangeState(procedureOwner); } // 可更新模式。 - else if (playMode == EPlayMode.HostPlayMode) + else if (playMode == EPlayMode.HostPlayMode || + playMode == EPlayMode.WebPlayMode) { // 打开启动UI。 UILoadMgr.Show(UIDefine.UILoadUpdate); @@ -86,12 +87,6 @@ namespace GameMain Log.Info("Updatable resource mode detected."); ChangeState(procedureOwner); } - // 可更新模式。 - else if (playMode == EPlayMode.WebPlayMode) - { - Log.Info("WebPlayMode resource mode detected."); - ChangeState(procedureOwner); - } else { Log.Error("UnKnow resource mode detected Please check???"); diff --git a/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureUpdateManifest.cs b/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureUpdateManifest.cs index 301408eb..89b053e7 100644 --- a/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureUpdateManifest.cs +++ b/UnityProject/Assets/GameScripts/Main/Procedure/ProcedureUpdateManifest.cs @@ -35,6 +35,14 @@ namespace GameMain //更新成功 //注意:保存资源版本号作为下次默认启动的版本! operation.SavePackageVersion(); + + if (GameModule.Resource.PlayMode == EPlayMode.WebPlayMode || + GameModule.Resource.UpdatableWhilePlaying) + { + // 边玩边下载还可以拓展首包支持。 + ChangeState(procedureOwner); + return; + } ChangeState(procedureOwner); } else diff --git a/UnityProject/Assets/TEngine/Editor/Inspector/ResourceModuleInspector.cs b/UnityProject/Assets/TEngine/Editor/Inspector/ResourceModuleInspector.cs index 8a9cac43..1a70d5d0 100644 --- a/UnityProject/Assets/TEngine/Editor/Inspector/ResourceModuleInspector.cs +++ b/UnityProject/Assets/TEngine/Editor/Inspector/ResourceModuleInspector.cs @@ -22,6 +22,7 @@ namespace TEngine.Editor.Inspector }; private SerializedProperty m_PlayMode = null; + private SerializedProperty m_UpdatableWhilePlaying = null; private SerializedProperty m_VerifyLevel = null; private SerializedProperty m_Milliseconds = null; private SerializedProperty m_ReadWritePathType = null; @@ -72,6 +73,8 @@ namespace TEngine.Editor.Inspector m_ReadWritePathType.enumValueIndex = (int)(ReadWritePathType)EditorGUILayout.EnumPopup("Read-Write Path Type", t.ReadWritePathType); } + EditorGUILayout.PropertyField(m_UpdatableWhilePlaying); + EditorGUI.EndDisabledGroup(); int milliseconds = EditorGUILayout.DelayedIntField("Milliseconds", m_Milliseconds.intValue); @@ -221,6 +224,7 @@ namespace TEngine.Editor.Inspector private void OnEnable() { m_PlayMode = serializedObject.FindProperty("playMode"); + m_UpdatableWhilePlaying = serializedObject.FindProperty("m_UpdatableWhilePlaying"); m_VerifyLevel = serializedObject.FindProperty("VerifyLevel"); m_Milliseconds = serializedObject.FindProperty("Milliseconds"); m_ReadWritePathType = serializedObject.FindProperty("m_ReadWritePathType"); diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs index bd85d52f..1d70231c 100644 --- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs +++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs @@ -74,6 +74,16 @@ namespace TEngine #endif } } + + /// + /// 是否支持边玩边下载。 + /// + [SerializeField] private bool m_UpdatableWhilePlaying = false; + + /// + /// 是否支持边玩边下载。 + /// + public bool UpdatableWhilePlaying => m_UpdatableWhilePlaying; /// /// 下载文件校验等级。