69 lines
1.5 KiB
C#
69 lines
1.5 KiB
C#
|
using UnityEngine;
|
|||
|
|
|||
|
namespace RuntimeInspectorNamespace
|
|||
|
{
|
|||
|
public class HierarchyDataTransform : HierarchyData
|
|||
|
{
|
|||
|
private string cachedName;
|
|||
|
public override string Name
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
if( cachedName == null )
|
|||
|
cachedName = transform ? transform.name : "<destroyed>";
|
|||
|
|
|||
|
return cachedName;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override int ChildCount { get { return ( !isSearchEntry && transform ) ? transform.childCount : 0; } }
|
|||
|
public override Transform BoundTransform { get { return transform; } }
|
|||
|
public override bool IsActive { get { return transform ? transform.gameObject.activeInHierarchy : true; } }
|
|||
|
|
|||
|
private Transform transform;
|
|||
|
private bool isSearchEntry;
|
|||
|
|
|||
|
public void Initialize( Transform transform, bool isSearchEntry )
|
|||
|
{
|
|||
|
this.transform = transform;
|
|||
|
this.isSearchEntry = isSearchEntry;
|
|||
|
}
|
|||
|
|
|||
|
public override Transform GetChild( int index )
|
|||
|
{
|
|||
|
return transform.GetChild( index );
|
|||
|
}
|
|||
|
|
|||
|
public void ResetCachedName()
|
|||
|
{
|
|||
|
cachedName = null;
|
|||
|
|
|||
|
if( children != null )
|
|||
|
{
|
|||
|
for( int i = children.Count - 1; i >= 0; i-- )
|
|||
|
children[i].ResetCachedName();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void RefreshNameOf( Transform target )
|
|||
|
{
|
|||
|
if( ReferenceEquals( transform, target ) )
|
|||
|
cachedName = target.name;
|
|||
|
else if( children != null )
|
|||
|
{
|
|||
|
for( int i = children.Count - 1; i >= 0; i-- )
|
|||
|
children[i].RefreshNameOf( target );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void PoolData()
|
|||
|
{
|
|||
|
parent = null;
|
|||
|
cachedName = null;
|
|||
|
m_depth = 0;
|
|||
|
m_height = 0;
|
|||
|
|
|||
|
PoolChildrenList();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|