protected void UpdateProperty() { if (m_target != null) { var properties = m_target.GetProperties(); m_property = FindProperty(properties); } }
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 }
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); } } }
protected virtual bool IsPropertyValid(BaseProperty property) { return(property != null); }