Exemplo n.º 1
0
        void OnValidate()
        {
            targetComponent = null;
            targetTypeName  = null;
            selfComponent   = null;
            selfTypeName    = null;

            var refCtx = new ReflectionContext();

            foreach (var c in target.GetComponents <MonoBehaviour>())
            {
                var member = FindMember(refCtx, c, targetMemberName);
                if (member != null)
                {
                    targetComponent = c;
                    targetTypeName  = member.type.FullName;
                    targetMember    = member;
                }
            }

            if (isTwoWay)
            {
                foreach (var c in GetComponents <MonoBehaviour>())
                {
                    var member = FindMember(refCtx, c, selfMemberName);
                    if (member != null)
                    {
                        selfComponent = c;
                        selfTypeName  = member.type.FullName;
                        selfMember    = member;
                    }
                }
            }
        }
Exemplo n.º 2
0
        void Start()
        {
            var refCtx = new ReflectionContext();

            targetMember = FindMember(refCtx, targetComponent, targetMemberName);

            if (isTwoWay)
            {
                selfMember = FindMember(refCtx, selfComponent, selfMemberName);
                SetSelfValue(targetMember.Get(targetComponent));
                if (targetComponent is TwoWayBindable)
                {
                    ((TwoWayBindable)targetComponent).AddBinding(targetMemberName, this);
                }
            }
        }