public GradientSlotControlView(GradientInputMaterialSlot slot) { m_Slot = slot; AddStyleSheetPath("Styles/Controls/GradientSlotControlView"); m_GradientObject = ScriptableObject.CreateInstance <GradientObject>(); m_GradientObject.gradient = new Gradient(); m_SerializedObject = new SerializedObject(m_GradientObject); m_GradientObject.gradient.SetKeys(m_Slot.value.colorKeys, m_Slot.value.alphaKeys); m_GradientObject.gradient.mode = m_Slot.value.mode; var gradientField = new GradientField() { value = m_GradientObject.gradient }; gradientField.OnValueChanged(OnValueChanged); Add(gradientField); }
public GradientControlView(string label, AbstractMaterialNode node, PropertyInfo propertyInfo) { m_Node = node; m_PropertyInfo = propertyInfo; AddStyleSheetPath("Styles/Controls/GradientControlView"); if (propertyInfo.PropertyType != typeof(Gradient)) { throw new ArgumentException("Property must be of type Gradient.", "propertyInfo"); } new GUIContent(label ?? ObjectNames.NicifyVariableName(propertyInfo.Name)); m_GradientObject = ScriptableObject.CreateInstance <GradientObject>(); m_GradientObject.gradient = new Gradient(); m_SerializedObject = new SerializedObject(m_GradientObject); var gradient = (Gradient)m_PropertyInfo.GetValue(m_Node, null); m_GradientObject.gradient.SetKeys(gradient.colorKeys, gradient.alphaKeys); m_GradientObject.gradient.mode = gradient.mode; var gradientPanel = new VisualElement { name = "gradientPanel" }; if (!string.IsNullOrEmpty(label)) { gradientPanel.Add(new Label(label)); } var gradientField = new GradientField() { value = m_GradientObject.gradient }; gradientField.OnValueChanged(OnValueChanged); gradientPanel.Add(gradientField); Add(gradientPanel); }