UnityGameProjectsCode / RelianceGame / Save Data Control / RevertSettingsChanges.cs
RevertSettingsChanges.cs
Raw
using UnityEngine;

public class RevertSettingsChanges : MonoBehaviour
{
    SaveFileManager saveInfo;
    SettingsControl settingsControl;

    private void Start()
    {
        saveInfo = GameObject.Find("Persistent Object").GetComponent<SaveFileManager>();
        settingsControl = transform.parent.gameObject.GetComponent<SettingsControl>();
    }

    public void RevertOnPress()
    {
        //when leaving the settings menu without applying, this will revert the volume values back to what they were before changes were made
        float[] savedVolumes = saveInfo.volumes;
        float[] currentVolumes = new float[4];

        currentVolumes[0] = settingsControl.GetMasterVolume();
        currentVolumes[1] = settingsControl.GetEnvVolume();
        currentVolumes[2] = settingsControl.GetMusicVolume();
        currentVolumes[3] = settingsControl.GetSFXVolume();

        for (int i = 0; i < 4; i++)
        {
            savedVolumes[i] = Mathf.RoundToInt(savedVolumes[i]);

            if (savedVolumes[i] != currentVolumes[i])
            {
                settingsControl.ModifyAllVolumes(savedVolumes[0], savedVolumes[1], savedVolumes[2], savedVolumes[3]);
                break;
            }
        }
    }
}