UnityGameProjectsCode / RelianceGame / Save Data Control / SettingsSliderSendValue.cs
SettingsSliderSendValue.cs
Raw
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class SettingsSliderSendValue : MonoBehaviour
{
    SettingsControl sControl;

    public TextMeshProUGUI volumeValueText;

    private void Awake()
    {
        sControl = GameObject.Find("SettingsUI").GetComponent<SettingsControl>();
    }

    private void Start()
    {
        UpdateValues();
    }

    public void UpdateValues()
    {
        string parentName = gameObject.transform.parent.gameObject.name;

        Debug.Log(sControl.GetMasterVolume());

        switch (parentName)
        {
            case "Master Volume Text":
                GetComponent<Slider>().value = sControl.GetMasterVolume();
                break;
            case "Environment Sounds Text":
                GetComponent<Slider>().value = sControl.GetEnvVolume();
                break;
            case "Music Volume Text":
                GetComponent<Slider>().value = sControl.GetMusicVolume();
                break;
            case "Sound Effects Volume Text":
                GetComponent<Slider>().value = sControl.GetSFXVolume();
                break;
        }

        volumeValueText.text = GetComponent<Slider>().value.ToString();

        Debug.Log("Inital values set in Sliders");
    }

    public void SendValueToSettingsControl()
    {
        Debug.Log("Sending value");
        float volumeValue = GetComponent<Slider>().value;

        string parentName = gameObject.transform.parent.gameObject.name;

        switch (parentName)
        {
            case "Master Volume Text":
                sControl.SetMasterVolume(volumeValue);
                break;
            case "Environment Sounds Text":
                sControl.SetEnvVolume(volumeValue);
                break;
            case "Music Volume Text":
                sControl.SetMusicVolume(volumeValue);
                break;
            case "Sound Effects Volume Text":
                sControl.SetSFXVolume(volumeValue);
                break;
        }

        volumeValueText.text = volumeValue.ToString();
    }
}