public override void Initialize(USTimelineBase timeline) { var numberOfChildren = Children.Count; if (PropertyFieldInfo.Property != null) { numberOfChildren = USPropertyMemberUtility.GetNumberOfMembers(PropertyFieldInfo.Property.PropertyType); } else if (PropertyFieldInfo.Field != null) { numberOfChildren = USPropertyMemberUtility.GetNumberOfMembers(PropertyFieldInfo.Field.FieldType); } if (numberOfChildren != Children.Count) { Children.Clear(); for (var index = 0; index < numberOfChildren; index++) { var postFix = ""; if (PropertyFieldInfo.Property != null) { postFix = USPropertyMemberUtility.GetAdditionalMemberName(PropertyFieldInfo.Property.PropertyType, index); } else if (PropertyFieldInfo.Field != null) { postFix = USPropertyMemberUtility.GetAdditionalMemberName(PropertyFieldInfo.Field.FieldType, index); } var preFix = PropertyFieldInfo.Name; var propertyMemberItem = CreateInstance <USPropertyMemberHierarchyItem>(); propertyMemberItem.PostFix = postFix; propertyMemberItem.Prefix = preFix; propertyMemberItem.CurveIndex = index; propertyMemberItem.Initialize(PropertyTimeline); var propertyInfo = PropertyTimeline.GetProperty(preFix, PropertyFieldInfo.Component); if (propertyInfo != null) { propertyMemberItem.Curve = propertyInfo.curves[index]; propertyInfo.InternalName = MappedType; } Children.Add(propertyMemberItem as IUSHierarchyItem); } } }
public PropertyFieldInfo(Component component, FieldInfo field) { Component = component; Field = field; MappedType = USPropertyMemberUtility.GetUnityPropertyNameFromUSProperty(Name, component); }
public PropertyFieldInfo(Component component, PropertyInfo property) { Component = component; Property = property; MappedType = USPropertyMemberUtility.GetUnityPropertyNameFromUSProperty(Name, component); }