fix destroy logic with lists/dicts

This commit is contained in:
sinaioutlander
2020-11-16 22:44:47 +11:00
parent 91d5fc284f
commit 5207b1a1c4
3 changed files with 12 additions and 21 deletions

View File

@ -43,6 +43,7 @@ namespace UnityExplorer.Inspectors.Reflection
public void Destroy() public void Destroy()
{ {
if (this.m_mainContent)
GameObject.Destroy(this.m_mainContent); GameObject.Destroy(this.m_mainContent);
} }

View File

@ -65,8 +65,6 @@ namespace UnityExplorer.Inspectors.Reflection
{ {
RefIDictionary = Value as IDictionary; RefIDictionary = Value as IDictionary;
if (Value != null)
{
if (m_subContentParent.activeSelf) if (m_subContentParent.activeSelf)
{ {
GetCacheEntries(); GetCacheEntries();
@ -74,9 +72,6 @@ namespace UnityExplorer.Inspectors.Reflection
} }
else else
m_recacheWanted = true; m_recacheWanted = true;
}
else
m_entries.Clear();
base.OnValueUpdated(); base.OnValueUpdated();
} }
@ -122,7 +117,7 @@ namespace UnityExplorer.Inspectors.Reflection
} }
#if CPP #if CPP
if (RefIDictionary == null && !Value.IsNullOrDestroyed()) if (RefIDictionary == null && Value != null)
RefIDictionary = EnumerateWithReflection(); RefIDictionary = EnumerateWithReflection();
#endif #endif

View File

@ -49,8 +49,6 @@ namespace UnityExplorer.Inspectors.Reflection
RefIEnumerable = Value as IEnumerable; RefIEnumerable = Value as IEnumerable;
RefIList = Value as IList; RefIList = Value as IList;
if (Value != null)
{
if (m_subContentParent.activeSelf) if (m_subContentParent.activeSelf)
{ {
GetCacheEntries(); GetCacheEntries();
@ -58,9 +56,6 @@ namespace UnityExplorer.Inspectors.Reflection
} }
else else
m_recacheWanted = true; m_recacheWanted = true;
}
else
m_entries.Clear();
base.OnValueUpdated(); base.OnValueUpdated();
} }
@ -108,7 +103,7 @@ namespace UnityExplorer.Inspectors.Reflection
} }
#if CPP #if CPP
if (RefIEnumerable == null && !Value.IsNullOrDestroyed()) if (RefIEnumerable == null && Value != null)
RefIEnumerable = EnumerateWithReflection(); RefIEnumerable = EnumerateWithReflection();
#endif #endif