From 9aef4d4081a837bdf1ce9b6872faa1e70329b9dc Mon Sep 17 00:00:00 2001 From: tpxxn <351765204@qq.com> Date: Wed, 11 Jun 2025 11:16:25 +0800 Subject: [PATCH] =?UTF-8?q?SetSpriteExtension=20=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implement/SetSpriteExtensions.cs | 12 ++++++----- .../Extension/Implement/SetSpriteObject.cs | 20 ++++++++++++------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Extension/Implement/SetSpriteExtensions.cs b/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Extension/Implement/SetSpriteExtensions.cs index 762e1803..73072cad 100644 --- a/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Extension/Implement/SetSpriteExtensions.cs +++ b/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Extension/Implement/SetSpriteExtensions.cs @@ -12,10 +12,11 @@ public static class SetSpriteExtensions /// UI/Image。 /// 资源定位地址。 /// 是否使用原始分辨率。 + /// 设置完Sprite的回调 /// 取消设置资源的Token。 - public static void SetSprite(this Image image, string location, bool setNativeSize = false, CancellationToken cancellationToken = default) + public static void SetSprite(this Image image, string location, bool setNativeSize = false, Action callback = null, CancellationToken cancellationToken = default) { - ResourceExtComponent.Instance.SetAssetByResources(SetSpriteObject.Create(image, location, setNativeSize, cancellationToken)).Forget(); + ResourceExtComponent.Instance.SetAssetByResources(SetSpriteObject.Create(image, location, setNativeSize, callback, cancellationToken)).Forget(); } /// @@ -23,12 +24,13 @@ public static class SetSpriteExtensions /// /// 2D/SpriteRender。 /// 资源定位地址。 + /// 设置完Sprite的回调 /// 取消设置资源的Token。 - public static void SetSprite(this SpriteRenderer spriteRenderer, string location, CancellationToken cancellationToken = default) + public static void SetSprite(this SpriteRenderer spriteRenderer, string location, Action callback = null, CancellationToken cancellationToken = default) { - ResourceExtComponent.Instance.SetAssetByResources(SetSpriteObject.Create(spriteRenderer, location, cancellationToken)).Forget(); + ResourceExtComponent.Instance.SetAssetByResources(SetSpriteObject.Create(spriteRenderer, location, callback, cancellationToken)).Forget(); } - + /// /// 设置子图片。 /// diff --git a/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Extension/Implement/SetSpriteObject.cs b/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Extension/Implement/SetSpriteObject.cs index cdfb66e2..4455d21c 100644 --- a/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Extension/Implement/SetSpriteObject.cs +++ b/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Extension/Implement/SetSpriteObject.cs @@ -22,12 +22,12 @@ namespace TEngine [ShowInInspector] #endif private SetType _setType; - + #if ODIN_INSPECTOR [ShowInInspector] #endif private Image _image; - + #if ODIN_INSPECTOR [ShowInInspector] #endif @@ -41,13 +41,15 @@ namespace TEngine public string Location { get; private set; } private bool _setNativeSize = false; - + Action _imageCallback; + Action _spriteCallback; + private CancellationToken _cancellationToken; public void SetAsset(Object asset) { _sprite = (Sprite)asset; - + if (_cancellationToken.IsCancellationRequested) return; @@ -58,10 +60,12 @@ namespace TEngine { _image.SetNativeSize(); } + _imageCallback?.Invoke(_image); } else if (_spriteRenderer != null) { _spriteRenderer.sprite = _sprite; + _spriteCallback?.Invoke(_spriteRenderer); } } @@ -90,7 +94,7 @@ namespace TEngine _setNativeSize = false; } - public static SetSpriteObject Create(Image image, string location, bool setNativeSize = false, CancellationToken cancellationToken = default) + public static SetSpriteObject Create(Image image, string location, bool setNativeSize = false, Action callback = null, CancellationToken cancellationToken = default) { SetSpriteObject item = MemoryPool.Acquire(); item._image = image; @@ -98,16 +102,18 @@ namespace TEngine item.Location = location; item._cancellationToken = cancellationToken; item._setType = SetType.Image; + item._imageCallback = callback; return item; } - - public static SetSpriteObject Create(SpriteRenderer spriteRenderer, string location, CancellationToken cancellationToken = default) + + public static SetSpriteObject Create(SpriteRenderer spriteRenderer, string location, Action callback = null, CancellationToken cancellationToken = default) { SetSpriteObject item = MemoryPool.Acquire(); item._spriteRenderer = spriteRenderer; item.Location = location; item._cancellationToken = cancellationToken; item._setType = SetType.SpriteRender; + item._spriteCallback = callback; return item; } }