diff --git a/UnityProject/Assets/TEngine/Runtime/Extension/UnityExtension.cs b/UnityProject/Assets/TEngine/Runtime/Extension/UnityExtension.cs index 46ac4590..870c972a 100644 --- a/UnityProject/Assets/TEngine/Runtime/Extension/UnityExtension.cs +++ b/UnityProject/Assets/TEngine/Runtime/Extension/UnityExtension.cs @@ -134,8 +134,9 @@ namespace TEngine /// 是否使用原生分辨率。 /// 是否使用异步加载。 /// 指定资源包的名称。不传使用默认资源包 + /// 指定资源引用组。 public static void SetSprite(this UnityEngine.UI.Image image, string spriteName, bool isSetNativeSize = false, - bool isAsync = false, string customPackageName = "") + bool isAsync = false, string customPackageName = "",AssetReference assetReference = null) { if (image == null) { @@ -157,7 +158,14 @@ namespace TEngine image.SetNativeSize(); } - image.gameObject.GetOrAddComponent().Reference(operation, spriteName); + if (assetReference != null) + { + assetReference.Reference(operation, spriteName); + } + else + { + image.gameObject.GetOrAddComponent().Reference(operation, spriteName); + } } else { @@ -176,7 +184,15 @@ namespace TEngine image.SetNativeSize(); } - image.gameObject.GetOrAddComponent().Reference(operation, spriteName); + image.sprite = operation.AssetObject as Sprite; + if (assetReference != null) + { + assetReference.Reference(operation, spriteName); + } + else + { + image.gameObject.GetOrAddComponent().Reference(operation, spriteName); + } }, customPackageName: customPackageName); } } @@ -189,8 +205,9 @@ namespace TEngine /// 图片名称。 /// 是否使用异步加载。 /// 指定资源包的名称。不传使用默认资源包 + /// 指定资源引用组。 public static void SetSprite(this SpriteRenderer spriteRenderer, string spriteName, bool isAsync = false, - string customPackageName = "") + string customPackageName = "",AssetReference assetReference = null) { if (spriteRenderer == null) { @@ -208,7 +225,14 @@ namespace TEngine var operation = GameModule.Resource.LoadAssetGetOperation(spriteName, customPackageName: customPackageName); spriteRenderer.sprite = operation.AssetObject as Sprite; - spriteRenderer.gameObject.GetOrAddComponent().Reference(operation, spriteName); + if (assetReference != null) + { + assetReference.Reference(operation, spriteName); + } + else + { + spriteRenderer.gameObject.GetOrAddComponent().Reference(operation, spriteName); + } } else { @@ -222,7 +246,14 @@ namespace TEngine } spriteRenderer.sprite = operation.AssetObject as Sprite; - spriteRenderer.gameObject.GetOrAddComponent().Reference(operation, spriteName); + if (assetReference != null) + { + assetReference.Reference(operation, spriteName); + } + else + { + spriteRenderer.gameObject.GetOrAddComponent().Reference(operation, spriteName); + } }, customPackageName: customPackageName); } }