public static Object[] GetFiltered(Type type, SelectionMode mode)
{
ArrayList list = new ArrayList();
if ((type == typeof(Component)) || type.IsSubclassOf(typeof(Component)))
{
Transform[] transforms = GetTransforms(mode);
foreach (Transform transform in transforms)
{
Component component = transform.GetComponent(type);
if (component != null)
{
list.Add(component);
}
}
}
else if ((type == typeof(GameObject)) || type.IsSubclassOf(typeof(GameObject)))
{
Transform[] transformArray3 = GetTransforms(mode);
foreach (Transform transform2 in transformArray3)
{
list.Add(transform2.gameObject);
}
}
else
{
Object[] objectsMode = GetObjectsMode(mode);
foreach (Object obj2 in objectsMode)
{
if ((obj2 != null) && ((obj2.GetType() == type) || obj2.GetType().IsSubclassOf(type)))
{
list.Add(obj2);
}
}
}
return (Object[]) list.ToArray(typeof(Object));
}