コード例 #1
0
        public void Initialize <TOwner>(TOwner instance, IDataSetProvider provider, string propName)
        {
            if (Owner != null && Property != null)
            {
                return;
            }

            Owner = new PropertyOwner <TOwner>(instance);

            var parameter = Parameter.Get(provider);
            var knownType = KnownType.GetKnownType(typeof(TOwner));

            if (knownType != null)
            {
                bool isParametrized = parameter != null && !Constant;
                var  type           = isParametrized ? parameter.GetHoldType().Type : _localValue.HoldType.Type;
                Property = knownType.GetProperty <TOwner>(type, propName);

                if (_localValue == null)
                {
                    _localValue = new Variant(type);
                }

                if (Constant)
                {
                    Owner.CallSetter(Property, isParametrized ? parameter.Value : _localValue);
                }
            }
        }
コード例 #2
0
        public IValue CreateValue()
        {
#if UNITY_EDITOR
            var knownType = KnownType.GetKnownType(HoldType.Type);
            if (knownType != null)
            {
                return(knownType.CreateValue(this));
            }
            else
            {
                Debug.LogErrorFormat("Known type for {0} not found! Unable to crate IValue.", HoldType.Type);
                return(null);
            }
#else
            return(GetKnownType(HoldType.Type).CreateValue(this));
#endif
        }
コード例 #3
0
        public void Initialize <TOwner>(TOwner instance, string propName)
        {
            if (Owner != null && Property != null)
            {
                return;
            }

            Owner = new PropertyOwner <TOwner>(instance);

            var knownType = KnownType.GetKnownType(typeof(TOwner));

            if (knownType != null)
            {
                Property = knownType.GetProperty <TOwner>(Parameter.HoldType.Type, propName);

                if (Constant)
                {
                    Owner.CallSetter(Property, Parameter);
                }
            }
        }