private static VFXSlot CreateSub(VFXProperty property, Direction direction) { var desc = VFXLibrary.GetSlot(property.type); if (desc != null) { var slot = desc.CreateInstance(); slot.m_Direction = direction; slot.m_Property = property; foreach (var subInfo in property.SubProperties()) { var subSlot = CreateSub(subInfo, direction); if (slot.property.attributes.attributes.OfType <MinMaxAttribute>().Any()) { var parentRange = property.attributes.FindRange(); subSlot.UpdateAttributes(new VFXPropertyAttributes(new RangeAttribute(parentRange.x, parentRange.y)), false); } if (subSlot != null) { subSlot.Attach(slot, false); } } return(slot); } throw new InvalidOperationException(string.Format("Unable to create slot for property {0} of type {1}", property.name, property.type)); }
private static VFXSlot CreateSub(VFXProperty property, Direction direction) { var desc = VFXLibrary.GetSlot(property.type); if (desc != null) { var slot = desc.CreateInstance(); slot.m_Direction = direction; slot.m_Property = property; foreach (var subInfo in property.SubProperties()) { var subSlot = CreateSub(subInfo, direction); if (subSlot != null) { subSlot.Attach(slot, false); } } return(slot); } throw new InvalidOperationException(string.Format("Unable to create slot for property {0} of type {1}", property.name, property.type)); }