コード例 #1
0
        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();
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        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)");
            }
        }