protected override void DrawContent() { FloatSliderAttribute attr = GetAttr <FloatSliderAttribute>(); if (drawer == null) { drawer = new FloatSliderDrawer(); drawer.IsExpandWidth = attr.IsExpandWidth; drawer.Text = ItemDrawer.Label; drawer.OnValueChanged = (value) => { ItemDrawer.Value = value; }; drawer.Value = (float)ItemDrawer.Value; } float leftValue = attr.MinValue; float rightValue = attr.MaxValue; if (!string.IsNullOrEmpty(attr.MinValueMemberName)) { leftValue = DrawerUtility.GetMemberValue <float>(attr.MinValueMemberName, ItemDrawer.Target); } if (!string.IsNullOrEmpty(attr.MaxValueMemberName)) { rightValue = DrawerUtility.GetMemberValue <float>(attr.MaxValueMemberName, ItemDrawer.Target); } drawer.MinValue = leftValue; drawer.MaxValue = rightValue; drawer.OnGUILayout(); }
protected override void OnDrawProperty(string label) { FloatSliderAttribute attr = GetAttr <FloatSliderAttribute>(); float leftValue = attr.LeftValue; float rightValue = attr.RightValue; if (!string.IsNullOrEmpty(attr.LeftValueMemberName)) { leftValue = NativeDrawerUtility.GetMemberValue <float>(attr.LeftValueMemberName, DrawerProperty.Target); } if (!string.IsNullOrEmpty(attr.RightValueMemberName)) { rightValue = NativeDrawerUtility.GetMemberValue <float>(attr.RightValueMemberName, DrawerProperty.Target); } label = label ?? ""; float value = DrawerProperty.GetValue <float>(); EditorGUI.BeginChangeCheck(); { value = EditorGUILayout.Slider(label, value, leftValue, rightValue); } if (EditorGUI.EndChangeCheck()) { DrawerProperty.Value = value; } }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { FloatSliderAttribute floatSliderAttribute = attribute as FloatSliderAttribute; if (property.propertyType == SerializedPropertyType.Float) { EditorGUI.Slider(position, property, floatSliderAttribute.m_ValueMin, floatSliderAttribute.m_ValueMax); } else { EditorGUI.LabelField(position, label, "(FloatSliderProperty can only be used with float attributes)"); } }