Search code examples
c#unity-game-enginesliderinspector

Unity. Creating a inspector slider with custom values


How would I create a slider in Unity Inspector that slides between following values: {3, 5, 7, 9, 11, 13, 15}?

I can only find how to do a slider using range but as you can see I want my values to be odd between 3 and 15.

Tried doing this, but does not work:

[{3, 5, 7, 9, 11, 13, 15}]
public int mySliderOdd;

I am using C#.


Solution

  • Check "Whole numbers" on slider in editor and then write this script:

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;
    
    public class SliderScript : MonoBehaviour {
    
        float prevVal;
        Slider slider;
    
        void Start(){
    
            slider = GetComponent<Slider>();
            prevVal = slider.value;
    
            slider.onValueChanged.AddListener (delegate {ValueChangeCheck ();});
    
        }
    
        void ValueChangeCheck()
        {
    
           if (slider.value % 2 == 0) {   //check odd value
    
                slider.value = prevVal;
    
            } else {
    
                prevVal = slider.value;
    
            }
    
        }
    }