using System; using System.Threading.Tasks; using TinaX.UIKit.Components; using UnityEngine.UI; namespace TinaX.UIKit { public static class UImageExtensions { public static void SetSpritePath(this Image image, string loadPath) { var xImage = _GetXImageOrCreate(ref image); xImage.SetSpritePath(loadPath); } public static Task SetSpritePathAsync(this Image image, string loadPath) { var xImage = _GetXImageOrCreate(ref image); return xImage.SetSpritePathAsync(loadPath); } public static void SetSpritePathAsync(this Image image, string loadPath, Action callback) { var xImage = _GetXImageOrCreate(ref image); xImage.SetSpritePathAsync(loadPath, callback); } public static void ClearLoadedSprite(this Image image) { var xImage = image.GetComponent(); if (xImage == null) return; xImage.ClearLoadedSprite(); } private static XImage _GetXImageOrCreate(ref Image image) { var ximg = image.GetComponent(); if(ximg == null) { ximg = image.gameObject.AddComponent(); } return ximg; } } }