From 213aaed426f093dab4eee0198d6c3b497fdbf020 Mon Sep 17 00:00:00 2001 From: Weekend <872285171@qq.com> Date: Wed, 15 Nov 2023 14:40:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?add:=E5=88=9D=E5=A7=8B=E5=8C=96=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E8=B5=84=E6=BA=90=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ResourceModule/IResourceManager.cs | 3 ++- .../Modules/ResourceModule/ResourceManager.cs | 22 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/IResourceManager.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/IResourceManager.cs index 639a5226..b8f96b13 100644 --- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/IResourceManager.cs +++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/IResourceManager.cs @@ -86,8 +86,9 @@ namespace TEngine /// /// 初始化操作。 /// + /// 指定资源包的名称。不传使用默认资源包 /// - InitializationOperation InitPackage(); + InitializationOperation InitPackage(string packageName = ""); /// /// 卸载资源。 diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs index 9c172386..2bdb714a 100644 --- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs +++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs @@ -15,7 +15,7 @@ namespace TEngine #region Propreties /// - /// 资源包名称。 + /// 默认资源包名称。 /// public string PackageName { get; set; } = "DefaultPackage"; @@ -332,18 +332,24 @@ namespace TEngine /// 初始化资源包裹。 /// /// 初始化资源包裹操作句柄。 - public InitializationOperation InitPackage() + public InitializationOperation InitPackage(string packageName = "") { // 创建默认的资源包 - string packageName = PackageName; - var package = YooAssets.TryGetPackage(packageName); + var targetPackageName = string.IsNullOrEmpty(packageName) || packageName.Equals(PackageName) + ? PackageName + : packageName; + var package = YooAssets.TryGetPackage(targetPackageName); if (package == null) { - package = YooAssets.CreatePackage(packageName); - YooAssets.SetDefaultPackage(package); + package = YooAssets.CreatePackage(targetPackageName); } - DefaultPackage = package; + // 设置默认资源包 + if (targetPackageName.Equals(PackageName)) + { + YooAssets.SetDefaultPackage(package); + DefaultPackage = package; + } #if UNITY_EDITOR //编辑器模式使用。 @@ -359,7 +365,7 @@ namespace TEngine if (playMode == EPlayMode.EditorSimulateMode) { var createParameters = new EditorSimulateModeParameters(); - createParameters.SimulateManifestFilePath = EditorSimulateModeHelper.SimulateBuild(packageName); + createParameters.SimulateManifestFilePath = EditorSimulateModeHelper.SimulateBuild(targetPackageName); initializationOperation = package.InitializeAsync(createParameters); } From af822add2cb76b44652115c1bf0a99ad3751b5a1 Mon Sep 17 00:00:00 2001 From: Weekend <872285171@qq.com> Date: Wed, 15 Nov 2023 15:14:47 +0800 Subject: [PATCH 2/3] =?UTF-8?q?add:=E4=B8=8B=E8=BD=BD=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=8C=85=E4=B8=AD=E6=8C=87=E5=AE=9A=E5=9C=B0=E5=9D=80=E7=9A=84?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/ResourceModule/ResourceModule.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs index 919a1d62..e5d6fa91 100644 --- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs +++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs @@ -306,6 +306,27 @@ namespace TEngine } } + /// + /// 创建资源下载器,用于下载当前资源版本指定地址的资源文件。 + /// + /// 资源地址 + /// 指定资源包的名称。不传使用默认资源包 + public ResourceDownloaderOperation CreateResourceDownloader(string location, string packageName = "") + { + if (string.IsNullOrEmpty(packageName)) + { + var package = YooAssets.GetPackage(this.packageName); + Downloader = package.CreateResourceDownloader(location, downloadingMaxNum, failedTryAgain); + return Downloader; + } + else + { + var package = YooAssets.GetPackage(packageName); + Downloader = package.CreateResourceDownloader(location, downloadingMaxNum, failedTryAgain); + return Downloader; + } + } + /// /// 清理包裹未使用的缓存文件。 /// From 4385123976f25dbbbe8586ef9a7a3339609bad3c Mon Sep 17 00:00:00 2001 From: Weekend <872285171@qq.com> Date: Wed, 15 Nov 2023 15:39:04 +0800 Subject: [PATCH 3/3] =?UTF-8?q?add:=E8=AE=BE=E7=BD=AE=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=94=AF=E6=8C=81=E4=BB=8E=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=8C=85=E4=B8=AD=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runtime/Extension/UnityExtension.cs | 26 ++++++++++++------- .../ResourceModule/IResourceManager.cs | 4 +-- .../Modules/ResourceModule/ResourceManager.cs | 6 ++--- .../Modules/ResourceModule/ResourceModule.cs | 17 +++++++----- 4 files changed, 32 insertions(+), 21 deletions(-) diff --git a/UnityProject/Assets/TEngine/Runtime/Extension/UnityExtension.cs b/UnityProject/Assets/TEngine/Runtime/Extension/UnityExtension.cs index 98760532..7e6a7127 100644 --- a/UnityProject/Assets/TEngine/Runtime/Extension/UnityExtension.cs +++ b/UnityProject/Assets/TEngine/Runtime/Extension/UnityExtension.cs @@ -132,7 +132,9 @@ namespace TEngine /// 图片名称。 /// 是否使用原生分辨率。 /// 是否使用异步加载。 - public static void SetSprite(this UnityEngine.UI.Image image, string spriteName, bool isSetNativeSize = false, bool isAsync = false) + /// 指定资源包的名称。不传使用默认资源包 + public static void SetSprite(this UnityEngine.UI.Image image, string spriteName, bool isSetNativeSize = false, + bool isAsync = false, string customPackageName = "") { if (image == null) { @@ -147,7 +149,8 @@ namespace TEngine { if (!isAsync) { - image.sprite = GameModule.Resource.LoadAsset(spriteName); + image.sprite = + GameModule.Resource.LoadAsset(spriteName, customPackageName: customPackageName); if (isSetNativeSize) { image.SetNativeSize(); @@ -167,7 +170,7 @@ namespace TEngine { image.SetNativeSize(); } - }); + }, customPackageName: customPackageName); } } } @@ -178,7 +181,9 @@ namespace TEngine /// Image组件。 /// 图片名称。 /// 是否使用异步加载。 - public static void SetSprite(this SpriteRenderer spriteRenderer, string spriteName, bool isAsync = false) + /// 指定资源包的名称。不传使用默认资源包 + public static void SetSprite(this SpriteRenderer spriteRenderer, string spriteName, bool isAsync = false, + string customPackageName = "") { if (spriteRenderer == null) { @@ -193,7 +198,8 @@ namespace TEngine { if (!isAsync) { - spriteRenderer.sprite = GameModule.Resource.LoadAsset(spriteName); + spriteRenderer.sprite = + GameModule.Resource.LoadAsset(spriteName, customPackageName: customPackageName); } else { @@ -205,11 +211,11 @@ namespace TEngine } spriteRenderer.sprite = operation.AssetObject as Sprite; - }); + }, customPackageName: customPackageName); } } } - + /// /// 查找子节点。 /// @@ -221,7 +227,7 @@ namespace TEngine var findTrans = transform.Find(path); return findTrans != null ? findTrans : null; } - + /// /// 根据名字找到子节点,主要用于dummy接口。 /// @@ -252,7 +258,7 @@ namespace TEngine return null; } - + [TypeInferenceRule(TypeInferenceRules.TypeReferencedByFirstArgument)] public static Component FindChildComponent(this Type type, Transform transform, string path) { @@ -264,7 +270,7 @@ namespace TEngine return null; } - + public static T FindChildComponent(this Transform transform, string path) where T : Component { var findTrans = transform.Find(path); diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/IResourceManager.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/IResourceManager.cs index b8f96b13..912044ea 100644 --- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/IResourceManager.cs +++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/IResourceManager.cs @@ -86,9 +86,9 @@ namespace TEngine /// /// 初始化操作。 /// - /// 指定资源包的名称。不传使用默认资源包 + /// 指定资源包的名称。不传使用默认资源包 /// - InitializationOperation InitPackage(string packageName = ""); + InitializationOperation InitPackage(string customPackageName = ""); /// /// 卸载资源。 diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs index 2bdb714a..4893dd9f 100644 --- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs +++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceManager.cs @@ -332,12 +332,12 @@ namespace TEngine /// 初始化资源包裹。 /// /// 初始化资源包裹操作句柄。 - public InitializationOperation InitPackage(string packageName = "") + public InitializationOperation InitPackage(string customPackageName = "") { // 创建默认的资源包 - var targetPackageName = string.IsNullOrEmpty(packageName) || packageName.Equals(PackageName) + var targetPackageName = string.IsNullOrEmpty(customPackageName) || customPackageName.Equals(PackageName) ? PackageName - : packageName; + : customPackageName; var package = YooAssets.TryGetPackage(targetPackageName); if (package == null) { diff --git a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs index c50ab81b..6c1a79d7 100644 --- a/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs +++ b/UnityProject/Assets/TEngine/Runtime/Modules/ResourceModule/ResourceModule.cs @@ -230,10 +230,11 @@ namespace TEngine /// /// 初始化操作。 /// + /// 指定资源包的名称。不传使用默认资源包 /// - public InitializationOperation InitPackage() + public InitializationOperation InitPackage(string customPackageName = "") { - return m_ResourceManager.InitPackage(); + return m_ResourceManager.InitPackage(customPackageName); } /// @@ -528,7 +529,8 @@ namespace TEngine public T LoadAsset(string location, Transform parent, bool needInstance = true, bool needCache = false, string customPackageName = "") where T : UnityEngine.Object { - return m_ResourceManager.LoadAsset(location, parent, needInstance, needCache, packageName: customPackageName); + return m_ResourceManager.LoadAsset(location, parent, needInstance, needCache, + packageName: customPackageName); } /// @@ -559,7 +561,8 @@ namespace TEngine public T LoadAsset(string location, Transform parent, out AssetOperationHandle handle, bool needCache = false, string customPackageName = "") where T : UnityEngine.Object { - return m_ResourceManager.LoadAsset(location, parent, out handle, needCache, packageName: customPackageName); + return m_ResourceManager.LoadAsset(location, parent, out handle, needCache, + packageName: customPackageName); } /// @@ -673,7 +676,8 @@ namespace TEngine /// 要加载资源的类型。 /// 异步资源实例。 public async UniTask LoadAssetAsync(string location, CancellationToken cancellationToken = default, - bool needInstance = true, bool needCache = false, string customPackageName = "") where T : UnityEngine.Object + bool needInstance = true, bool needCache = false, string customPackageName = "") + where T : UnityEngine.Object { return await m_ResourceManager.LoadAssetAsync(location, cancellationToken, needInstance, needCache, packageName: customPackageName); @@ -720,7 +724,8 @@ namespace TEngine public async UniTask LoadRawAssetAsync(string location, CancellationToken cancellationToken = default, string customPackageName = "") { - return await m_ResourceManager.LoadRawAssetAsync(location, cancellationToken, packageName: customPackageName); + return await m_ResourceManager.LoadRawAssetAsync(location, cancellationToken, + packageName: customPackageName); } ///