コード例 #1
0
 protected void UpdateProperty()
 {
     if (m_target != null)
     {
         var properties = m_target.GetProperties();
         m_property = FindProperty(properties);
     }
 }
コード例 #2
0
        private void FindTarget()
        {
            var parent = transform;

            while (parent != null)
            {
                var component = parent.GetComponent <IBindingTarget>();
                if (component != null)
                {
                    var properties = component.GetProperties();
                    var property   = FindProperty(properties);
                    if (IsPropertyValid(property))
                    {
                        m_property = property;
                        m_target   = component;
                        return;
                    }
                }
                parent = parent.parent;
            }
#if UNITY_EDITOR
            Debug.LogErrorFormat("[Binding] BindingTarget wasn't found for \"{0}\" by path \"{1}\" \nTransform: \"{2}\"", GetType().Name, m_path, transform.GetFullPath());
#endif
        }
コード例 #3
0
        private void SetPropertyInstanceName(Type propertyType, FieldInfo propertyField, BaseProperty property)
        {
            var fieldInfos = propertyType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);

            foreach (var fieldInfo in fieldInfos)
            {
                if (fieldInfo.Name == INSTANCE_FIELD_NAME)
                {
                    fieldInfo.SetValue(property, propertyField.Name);
                }
            }
        }
コード例 #4
0
 protected virtual bool IsPropertyValid(BaseProperty property)
 {
     return(property != null);
 }