예제 #1
0
    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);
    }
예제 #2
0
 public void SetDirect(T component)
 {
     this.kind            = FindCompKind.Direct;
     this.directComponent = component;
     this.component       = component;
 }