#slider On value change event

1 messages · Page 1 of 1 (latest)

thorny verge
#

Hi, so I'm currently struggle with this.
the float value can save and load normaly but somehow the whole number it just save as 0 then load it.
here is the video for a closer look
also here is the code and some extra images
thanks

#

slider On value change event

flat rock
#

[]cb

hallow gulchBOT
#

Use codeblocks to send code in a message!

To make a codeblock, surround your code with ```
To use C# syntax highlighting add cs after the three back ticks.

For example:
```cs
Console.WriteLine("Hello World");
```

Produces:

Console.WriteLine("Hello World");

To send lengthy code, paste it into https://paste.myst.rs/ and send the link of the paste into chat.

thorny verge
#
    void Start(){
        LoadSlider();
    }
#region Setting - slider
    public void Z_SetSliderValue(string NewSliderName){ // called in event slider
        // get value by name
        float RefValue = SliderList.Find(RefSSlider => RefSSlider.SliderName == NewSliderName).slider.value;
        // compare if it different
        if (PlayerPrefs.GetFloat(NewSliderName) != RefValue){
            // save the value as int or float
            if (SliderList.Find(RefSlider => RefSlider.SliderName == NewSliderName).IsFloatNumber){
                PlayerPrefs.SetFloat(NewSliderName, RefValue);
            } else PlayerPrefs.SetInt(NewSliderName, (int)RefValue);
            PlayerPrefs.Save();
            Debug.Log("Save: " + NewSliderName + " " + PlayerPrefs.GetFloat(NewSliderName));
        }
    }
    void LoadSlider(){
        foreach(var RefSlider in SliderList){
            RefSlider.slider.wholeNumbers = !RefSlider.IsFloatNumber;
            RefSlider.slider.minValue = RefSlider.MinSetting;
            RefSlider.slider.maxValue = RefSlider.MaxSetting;
            RefSlider.slider.value = RefSlider.IsFloatNumber ? PlayerPrefs.GetFloat(RefSlider.SliderName) : PlayerPrefs.GetInt(RefSlider.SliderName);
            // Debug.Log("Load Value: " + RefSlider.SliderName + " " + PlayerPrefs.GetFloat(RefSlider.SliderName));
        }
    }
    [SerializeField] List<SliderProp> SliderList;
    [Serializable] public class SliderProp {
        public string SliderName;
        public Slider slider;
        public bool IsFloatNumber = true;
        public int MinSetting, MaxSetting;
    }
#

here you go