From ec357fa5fbf6197554bd66c66ff420f23b1502bd Mon Sep 17 00:00:00 2001
From: ALEXTANG <574809918@qq.com>
Date: Thu, 11 May 2023 23:22:00 +0800
Subject: [PATCH] Update AssetReference.cs
---
.../GameFramework/Resource/AssetReference.cs | 20 +++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/Assets/TEngine/Runtime/GameFramework/Resource/AssetReference.cs b/Assets/TEngine/Runtime/GameFramework/Resource/AssetReference.cs
index 99671dc1..68e086f2 100644
--- a/Assets/TEngine/Runtime/GameFramework/Resource/AssetReference.cs
+++ b/Assets/TEngine/Runtime/GameFramework/Resource/AssetReference.cs
@@ -17,11 +17,6 @@ namespace TEngine
private string _assetLocation;
private AssetGroup _assetGroup;
- ///
- /// 资源组。
- ///
- public AssetGroup AssetGroup => _assetGroup;
-
#pragma warning disable CS0628
public AssetReference Parent { protected set; get; }
#pragma warning restore CS0628
@@ -31,8 +26,8 @@ namespace TEngine
public AssetOperationHandle assetOperationHandle => _operationHandle;
public string AssetLocation => _assetLocation;
-
- private void Awake()
+
+ public void DirtyInitAssetGroup()
{
if (_assetGroup == null)
{
@@ -59,7 +54,7 @@ namespace TEngine
_operationHandle = null;
}
- if (_assetGroup == null)
+ if (_assetGroup != null)
{
AssetGroup.Release(_assetGroup);
_assetGroup = null;
@@ -75,6 +70,7 @@ namespace TEngine
/// 是否注册成功。
public bool Reference(AssetOperationHandle handle, string assetTag = "")
{
+ DirtyInitAssetGroup();
return _assetGroup.Reference(handle, assetTag);
}
@@ -85,6 +81,7 @@ namespace TEngine
///
public bool Release(string assetTag)
{
+ DirtyInitAssetGroup();
return _assetGroup.Release(assetTag);
}
@@ -95,6 +92,7 @@ namespace TEngine
///
public bool Release(AssetOperationHandle handle)
{
+ DirtyInitAssetGroup();
return _assetGroup.Release(handle);
}
@@ -107,6 +105,7 @@ namespace TEngine
/// 资源实例。
public T LoadAsset(string assetName) where T : Object
{
+ DirtyInitAssetGroup();
return _assetGroup.LoadAsset(assetName);
}
@@ -119,6 +118,7 @@ namespace TEngine
/// 资源实例。
public T LoadAsset(string assetName, Transform parent) where T : Object
{
+ DirtyInitAssetGroup();
return _assetGroup.LoadAsset(assetName, parent);
}
@@ -132,6 +132,7 @@ namespace TEngine
// ReSharper disable once ParameterHidesMember
public T LoadAsset(string assetName, out AssetOperationHandle assetOperationHandle) where T : Object
{
+ DirtyInitAssetGroup();
return _assetGroup.LoadAsset(assetName,out assetOperationHandle);
}
@@ -146,6 +147,7 @@ namespace TEngine
// ReSharper disable once ParameterHidesMember
public T LoadAsset(string assetName, Transform parent, out AssetOperationHandle assetOperationHandle) where T : Object
{
+ DirtyInitAssetGroup();
return _assetGroup.LoadAsset(assetName, parent,out assetOperationHandle);
}
@@ -158,6 +160,7 @@ namespace TEngine
public async UniTask LoadAssetAsync(string assetName, CancellationToken cancellationToken)
where T : Object
{
+ DirtyInitAssetGroup();
return await _assetGroup.LoadAssetAsync(assetName, cancellationToken);
}
@@ -169,6 +172,7 @@ namespace TEngine
/// 异步游戏物体实例。
public async UniTask LoadGameObjectAsync(string assetName, CancellationToken cancellationToken)
{
+ DirtyInitAssetGroup();
return await _assetGroup.LoadGameObjectAsync(assetName, cancellationToken);
}