mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
@@ -23,8 +23,6 @@ namespace TEngine
|
|||||||
[DisallowMultipleComponent]
|
[DisallowMultipleComponent]
|
||||||
public sealed class AssetsReference : MonoBehaviour
|
public sealed class AssetsReference : MonoBehaviour
|
||||||
{
|
{
|
||||||
private static readonly Dictionary<GameObject, int> _gameObjectCountMap = new Dictionary<GameObject, int>();
|
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject sourceGameObject;
|
private GameObject sourceGameObject;
|
||||||
|
|
||||||
@@ -52,17 +50,9 @@ namespace TEngine
|
|||||||
|
|
||||||
private void CheckRelease()
|
private void CheckRelease()
|
||||||
{
|
{
|
||||||
if (_gameObjectCountMap.TryGetValue(sourceGameObject, out var count))
|
if (sourceGameObject != null)
|
||||||
{
|
{
|
||||||
if (count <= 1)
|
_resourceModule.UnloadAsset(sourceGameObject);
|
||||||
{
|
|
||||||
_gameObjectCountMap.Remove(sourceGameObject);
|
|
||||||
_resourceModule.UnloadAsset(sourceGameObject);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_gameObjectCountMap[sourceGameObject] = count - 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
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()
|
private void Awake()
|
||||||
{
|
{
|
||||||
if (sourceGameObject != null)
|
sourceGameObject = null;
|
||||||
{
|
|
||||||
_gameObjectCountMap[sourceGameObject] = _gameObjectCountMap.TryGetValue(sourceGameObject, out var count) ? count + 1 : 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
@@ -128,7 +103,6 @@ namespace TEngine
|
|||||||
|
|
||||||
_resourceModule = resourceModule;
|
_resourceModule = resourceModule;
|
||||||
sourceGameObject = source;
|
sourceGameObject = source;
|
||||||
CheckAdd();
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,7 +123,7 @@ namespace TEngine
|
|||||||
return this;
|
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)
|
if (source == null)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user