private static UnityObject ResolveSingle(object target, GameObject gameObject, RuntimeMember member, RequiredAttribute attribute)
 {
     var single = (attribute as RequiredSingleAttribute).FromResources ?
         Resources.FindObjectsOfTypeAll(member.Type).FirstOrDefault() :
         UnityObject.FindObjectOfType(member.Type);
     #if dbg
     Debug.Log("found single " + single + " for " + memberType.Name + " in " + target);
     #endif
     return single;
 }
        private static UnityObject ResolveFromTargetGO(object target, GameObject gameObject, RuntimeMember member, RequiredAttribute attribute)
        {
            if (member.Type == typeof(GameObject))
            {
                return gameObject;
            }

            var c = gameObject.GetComponent(member.Type);
            if (c == null)
            {
                if ((attribute as RequiredFromThisAttribute).Add)
                {
            #if dbg
                    Debug.Log("adding component " + memberType.Name + " to " + gameObject.name);
            #endif
                    c = gameObject.AddComponent(member.Type);
                }
            }
            return c;
        }
 private static UnityObject ResolveFromTargetParents(object target, GameObject gameObject, RuntimeMember member, RequiredAttribute attribute)
 {
     return ResolveFromTargetRelative(target, gameObject, member, attribute as RequiredFromRelativeAttribute,
         gameObject.GetOrAddParentAtPath, gameObject.GetParentAtPath, gameObject.GetComponentInParent);
 }
 private static UnityObject DontResolve(object target, GameObject gameObject, RuntimeMember member, RequiredAttribute attribute)
 {
     return null;
 }
 private static UnityObject ResolveFromTargetParents(object target, GameObject gameObject, RuntimeMember member, RequiredAttribute attribute)
 {
     return(ResolveFromTargetRelative(target, gameObject, member, attribute as RequiredFromRelativeAttribute,
                                      gameObject.GetOrAddParentAtPath, gameObject.GetParentAtPath, gameObject.GetComponentInParent));
 }
        private static UnityObject ResolveFromTargetGO(object target, GameObject gameObject, RuntimeMember member, RequiredAttribute attribute)
        {
            if (member.Type == typeof(GameObject))
            {
                return(gameObject);
            }

            var c = gameObject.GetComponent(member.Type);

            if (c == null)
            {
                if ((attribute as RequiredFromThisAttribute).Add)
                {
#if dbg
                    Debug.Log("adding component " + memberType.Name + " to " + gameObject.name);
#endif
                    c = gameObject.AddComponent(member.Type);
                }
            }
            return(c);
        }
        private static UnityObject ResolveSingle(object target, GameObject gameObject, RuntimeMember member, RequiredAttribute attribute)
        {
            var single = (attribute as RequiredSingleAttribute).FromResources ?
                         Resources.FindObjectsOfTypeAll(member.Type).FirstOrDefault() :
                         UnityObject.FindObjectOfType(member.Type);

#if dbg
            Debug.Log("found single " + single + " for " + memberType.Name + " in " + target);
#endif
            return(single);
        }
 private static UnityObject DontResolve(object target, GameObject gameObject, RuntimeMember member, RequiredAttribute attribute)
 {
     return(null);
 }