Update AssetReference.cs

This commit is contained in:
ALEXTANG
2023-05-11 23:22:00 +08:00
parent 1c2dec1381
commit ec357fa5fb

View File

@@ -17,11 +17,6 @@ namespace TEngine
private string _assetLocation; private string _assetLocation;
private AssetGroup _assetGroup; private AssetGroup _assetGroup;
/// <summary>
/// 资源组。
/// </summary>
public AssetGroup AssetGroup => _assetGroup;
#pragma warning disable CS0628 #pragma warning disable CS0628
public AssetReference Parent { protected set; get; } public AssetReference Parent { protected set; get; }
#pragma warning restore CS0628 #pragma warning restore CS0628
@@ -32,7 +27,7 @@ namespace TEngine
public string AssetLocation => _assetLocation; public string AssetLocation => _assetLocation;
private void Awake() public void DirtyInitAssetGroup()
{ {
if (_assetGroup == null) if (_assetGroup == null)
{ {
@@ -59,7 +54,7 @@ namespace TEngine
_operationHandle = null; _operationHandle = null;
} }
if (_assetGroup == null) if (_assetGroup != null)
{ {
AssetGroup.Release(_assetGroup); AssetGroup.Release(_assetGroup);
_assetGroup = null; _assetGroup = null;
@@ -75,6 +70,7 @@ namespace TEngine
/// <returns>是否注册成功。</returns> /// <returns>是否注册成功。</returns>
public bool Reference(AssetOperationHandle handle, string assetTag = "") public bool Reference(AssetOperationHandle handle, string assetTag = "")
{ {
DirtyInitAssetGroup();
return _assetGroup.Reference(handle, assetTag); return _assetGroup.Reference(handle, assetTag);
} }
@@ -85,6 +81,7 @@ namespace TEngine
/// <returns></returns> /// <returns></returns>
public bool Release(string assetTag) public bool Release(string assetTag)
{ {
DirtyInitAssetGroup();
return _assetGroup.Release(assetTag); return _assetGroup.Release(assetTag);
} }
@@ -95,6 +92,7 @@ namespace TEngine
/// <returns></returns> /// <returns></returns>
public bool Release(AssetOperationHandle handle) public bool Release(AssetOperationHandle handle)
{ {
DirtyInitAssetGroup();
return _assetGroup.Release(handle); return _assetGroup.Release(handle);
} }
@@ -107,6 +105,7 @@ namespace TEngine
/// <returns>资源实例。</returns> /// <returns>资源实例。</returns>
public T LoadAsset<T>(string assetName) where T : Object public T LoadAsset<T>(string assetName) where T : Object
{ {
DirtyInitAssetGroup();
return _assetGroup.LoadAsset<T>(assetName); return _assetGroup.LoadAsset<T>(assetName);
} }
@@ -119,6 +118,7 @@ namespace TEngine
/// <returns>资源实例。</returns> /// <returns>资源实例。</returns>
public T LoadAsset<T>(string assetName, Transform parent) where T : Object public T LoadAsset<T>(string assetName, Transform parent) where T : Object
{ {
DirtyInitAssetGroup();
return _assetGroup.LoadAsset<T>(assetName, parent); return _assetGroup.LoadAsset<T>(assetName, parent);
} }
@@ -132,6 +132,7 @@ namespace TEngine
// ReSharper disable once ParameterHidesMember // ReSharper disable once ParameterHidesMember
public T LoadAsset<T>(string assetName, out AssetOperationHandle assetOperationHandle) where T : Object public T LoadAsset<T>(string assetName, out AssetOperationHandle assetOperationHandle) where T : Object
{ {
DirtyInitAssetGroup();
return _assetGroup.LoadAsset<T>(assetName,out assetOperationHandle); return _assetGroup.LoadAsset<T>(assetName,out assetOperationHandle);
} }
@@ -146,6 +147,7 @@ namespace TEngine
// ReSharper disable once ParameterHidesMember // ReSharper disable once ParameterHidesMember
public T LoadAsset<T>(string assetName, Transform parent, out AssetOperationHandle assetOperationHandle) where T : Object public T LoadAsset<T>(string assetName, Transform parent, out AssetOperationHandle assetOperationHandle) where T : Object
{ {
DirtyInitAssetGroup();
return _assetGroup.LoadAsset<T>(assetName, parent,out assetOperationHandle); return _assetGroup.LoadAsset<T>(assetName, parent,out assetOperationHandle);
} }
@@ -158,6 +160,7 @@ namespace TEngine
public async UniTask<T> LoadAssetAsync<T>(string assetName, CancellationToken cancellationToken) public async UniTask<T> LoadAssetAsync<T>(string assetName, CancellationToken cancellationToken)
where T : Object where T : Object
{ {
DirtyInitAssetGroup();
return await _assetGroup.LoadAssetAsync<T>(assetName, cancellationToken); return await _assetGroup.LoadAssetAsync<T>(assetName, cancellationToken);
} }
@@ -169,6 +172,7 @@ namespace TEngine
/// <returns>异步游戏物体实例。</returns> /// <returns>异步游戏物体实例。</returns>
public async UniTask<GameObject> LoadGameObjectAsync(string assetName, CancellationToken cancellationToken) public async UniTask<GameObject> LoadGameObjectAsync(string assetName, CancellationToken cancellationToken)
{ {
DirtyInitAssetGroup();
return await _assetGroup.LoadGameObjectAsync(assetName, cancellationToken); return await _assetGroup.LoadGameObjectAsync(assetName, cancellationToken);
} }