mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
Update UnityExtension.cs
This commit is contained in:
@@ -134,8 +134,9 @@ namespace TEngine
|
|||||||
/// <param name="isSetNativeSize">是否使用原生分辨率。</param>
|
/// <param name="isSetNativeSize">是否使用原生分辨率。</param>
|
||||||
/// <param name="isAsync">是否使用异步加载。</param>
|
/// <param name="isAsync">是否使用异步加载。</param>
|
||||||
/// <param name="customPackageName">指定资源包的名称。不传使用默认资源包</param>
|
/// <param name="customPackageName">指定资源包的名称。不传使用默认资源包</param>
|
||||||
|
/// <param name="assetReference">指定资源引用组。</param>
|
||||||
public static void SetSprite(this UnityEngine.UI.Image image, string spriteName, bool isSetNativeSize = false,
|
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)
|
if (image == null)
|
||||||
{
|
{
|
||||||
@@ -157,8 +158,15 @@ namespace TEngine
|
|||||||
image.SetNativeSize();
|
image.SetNativeSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (assetReference != null)
|
||||||
|
{
|
||||||
|
assetReference.Reference(operation, spriteName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
image.gameObject.GetOrAddComponent<AssetReference>().Reference(operation, spriteName);
|
image.gameObject.GetOrAddComponent<AssetReference>().Reference(operation, spriteName);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GameModule.Resource.LoadAssetAsync<Sprite>(spriteName, operation =>
|
GameModule.Resource.LoadAssetAsync<Sprite>(spriteName, operation =>
|
||||||
@@ -176,7 +184,15 @@ namespace TEngine
|
|||||||
image.SetNativeSize();
|
image.SetNativeSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
image.sprite = operation.AssetObject as Sprite;
|
||||||
|
if (assetReference != null)
|
||||||
|
{
|
||||||
|
assetReference.Reference(operation, spriteName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
image.gameObject.GetOrAddComponent<AssetReference>().Reference(operation, spriteName);
|
image.gameObject.GetOrAddComponent<AssetReference>().Reference(operation, spriteName);
|
||||||
|
}
|
||||||
}, customPackageName: customPackageName);
|
}, customPackageName: customPackageName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -189,8 +205,9 @@ namespace TEngine
|
|||||||
/// <param name="spriteName">图片名称。</param>
|
/// <param name="spriteName">图片名称。</param>
|
||||||
/// <param name="isAsync">是否使用异步加载。</param>
|
/// <param name="isAsync">是否使用异步加载。</param>
|
||||||
/// <param name="customPackageName">指定资源包的名称。不传使用默认资源包</param>
|
/// <param name="customPackageName">指定资源包的名称。不传使用默认资源包</param>
|
||||||
|
/// <param name="assetReference">指定资源引用组。</param>
|
||||||
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 = "")
|
string customPackageName = "",AssetReference assetReference = null)
|
||||||
{
|
{
|
||||||
if (spriteRenderer == null)
|
if (spriteRenderer == null)
|
||||||
{
|
{
|
||||||
@@ -208,8 +225,15 @@ namespace TEngine
|
|||||||
var operation = GameModule.Resource.LoadAssetGetOperation<Sprite>(spriteName, customPackageName: customPackageName);
|
var operation = GameModule.Resource.LoadAssetGetOperation<Sprite>(spriteName, customPackageName: customPackageName);
|
||||||
spriteRenderer.sprite = operation.AssetObject as Sprite;
|
spriteRenderer.sprite = operation.AssetObject as Sprite;
|
||||||
|
|
||||||
|
if (assetReference != null)
|
||||||
|
{
|
||||||
|
assetReference.Reference(operation, spriteName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
spriteRenderer.gameObject.GetOrAddComponent<AssetReference>().Reference(operation, spriteName);
|
spriteRenderer.gameObject.GetOrAddComponent<AssetReference>().Reference(operation, spriteName);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GameModule.Resource.LoadAssetAsync<Sprite>(spriteName, operation =>
|
GameModule.Resource.LoadAssetAsync<Sprite>(spriteName, operation =>
|
||||||
@@ -222,7 +246,14 @@ namespace TEngine
|
|||||||
}
|
}
|
||||||
|
|
||||||
spriteRenderer.sprite = operation.AssetObject as Sprite;
|
spriteRenderer.sprite = operation.AssetObject as Sprite;
|
||||||
|
if (assetReference != null)
|
||||||
|
{
|
||||||
|
assetReference.Reference(operation, spriteName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
spriteRenderer.gameObject.GetOrAddComponent<AssetReference>().Reference(operation, spriteName);
|
spriteRenderer.gameObject.GetOrAddComponent<AssetReference>().Reference(operation, spriteName);
|
||||||
|
}
|
||||||
}, customPackageName: customPackageName);
|
}, customPackageName: customPackageName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user