public static T Get( FindCompKind kind, Transform parent, Transform self, string childName, bool findInChildren, bool findInactive, T directComponent, bool instantiateFbxChildren = false ) { T component = null; switch (kind) { case FindCompKind.Direct: { component = directComponent; break; } case FindCompKind.FindUnderSelf: { if (self != null) { Transform node = self.FindDeep(childName, findInactive); if (node != null && !findInChildren) { component = node.GetComponent <T>(); } else if (node != null && findInChildren) { component = node.GetComponentInChildren <T>(findInactive); } } break; } case FindCompKind.FindUnderNode: { if (parent != null) { Transform node = parent.FindDeep(childName, findInactive); if (node != null && !findInChildren) { component = node.GetComponent <T>(); } else if (node != null && findInChildren) { component = node.GetComponentInChildren <T>(findInactive); } } break; } } return(component); }
public void SetDirect(T component) { this.kind = FindCompKind.Direct; this.directComponent = component; this.component = component; }