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,7 +43,8 @@ namespace UnityExplorer.Inspectors.Reflection
public void Destroy()
{
GameObject.Destroy(this.m_mainContent);
if (this.m_mainContent)
GameObject.Destroy(this.m_mainContent);
}
public virtual void UpdateValue()

View File

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

View File

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