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;
}
}