From cb8f15ad884596b82d1fd2184caa3186c1de5180 Mon Sep 17 00:00:00 2001 From: Alex-Rachel <574809918@qq.com> Date: Thu, 5 Jun 2025 11:13:21 +0800 Subject: [PATCH] =?UTF-8?q?#157=20AssetsReference=E7=9A=84=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E9=94=80=E6=AF=81=E8=AE=A1=E6=95=B0=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #157 AssetsReference的自动销毁计数处理 --- .../Reference/AssetsReference.cs | 34 +++---------------- 1 file changed, 4 insertions(+), 30 deletions(-) diff --git a/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Reference/AssetsReference.cs b/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Reference/AssetsReference.cs index fd202a2f..5b16fb30 100644 --- a/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Reference/AssetsReference.cs +++ b/UnityProject/Assets/TEngine/Runtime/Module/ResourceModule/Reference/AssetsReference.cs @@ -23,8 +23,6 @@ namespace TEngine [DisallowMultipleComponent] public sealed class AssetsReference : MonoBehaviour { - private static readonly Dictionary _gameObjectCountMap = new Dictionary(); - [SerializeField] private GameObject sourceGameObject; @@ -52,17 +50,9 @@ namespace TEngine private void CheckRelease() { - if (_gameObjectCountMap.TryGetValue(sourceGameObject, out var count)) + if (sourceGameObject != null) { - if (count <= 1) - { - _gameObjectCountMap.Remove(sourceGameObject); - _resourceModule.UnloadAsset(sourceGameObject); - } - else - { - _gameObjectCountMap[sourceGameObject] = count - 1; - } + _resourceModule.UnloadAsset(sourceGameObject); } else { @@ -70,24 +60,9 @@ namespace TEngine } } - private void CheckAdd() - { - if (_gameObjectCountMap.TryGetValue(sourceGameObject, out var count)) - { - _gameObjectCountMap[sourceGameObject] = count + 1; - } - else - { - _gameObjectCountMap[sourceGameObject] = 1; - } - } - private void Awake() { - if (sourceGameObject != null) - { - _gameObjectCountMap[sourceGameObject] = _gameObjectCountMap.TryGetValue(sourceGameObject, out var count) ? count + 1 : 1; - } + sourceGameObject = null; } private void OnDestroy() @@ -128,7 +103,6 @@ namespace TEngine _resourceModule = resourceModule; sourceGameObject = source; - CheckAdd(); return this; } @@ -149,7 +123,7 @@ namespace TEngine return this; } - public static AssetsReference Instantiate(GameObject source, Transform parent = null, IResourceModule resourceModule = null) + internal static AssetsReference Instantiate(GameObject source, Transform parent = null, IResourceModule resourceModule = null) { if (source == null) {