public IEnumerator LoadData_Settings() { yield return(StartCoroutine(CreatePath(eDataType.SETTINGS, currentDataSlot))); string path = currentFilePath; yield return(StartCoroutine(fileManager.ReadText(settingsFileName, path))); if (!string.IsNullOrEmpty(fileManager.readText_Result)) { var loadedData = JsonUtility.FromJson <Data_Settings>(fileManager.readText_Result); currentData_Settings = loadedData; } else // 없을 경우 { Debug.Log("세팅 데이터 파일이 없습니다. 기본 데이터 파일을 생성합니다."); var defaultData = new Data_Settings(); currentData_Settings = defaultData; yield return(StartCoroutine(SaveData_Settings())); #if UNITY_EDITOR AssetDatabase.Refresh(); #endif } }
private Data_Settings currentSettingsData; //현재 세팅 데이터. public void OnApply(Data_Settings data) { //세팅을 확정하고... ApplySettings(data); StartCoroutine(SaveSettingsData()); //ㄹㅇ 저장시킨다 }
/// <summary> /// UI에 보여지는 값들을 변경시킵니다. /// </summary> /// <param name="_data"></param> private void UpdateValue(Data_Settings _data) { masterSlider.value = GetFloat(_data.masterVolume); bgmSlider.value = GetFloat(_data.bgmVolume); sfxSlider.value = GetFloat(_data.sfxVolume); UpdateMuteButtonImage(masterMute, masterSlider, _data.muteMasterVolume); UpdateMuteButtonImage(bgmMute, bgmSlider, _data.muteBgmVolume); UpdateMuteButtonImage(sfxMute, sfxSlider, _data.muteSfxVolume); masterPer.text = ChangePerText(masterSlider.value); bgmPer.text = ChangePerText(bgmSlider.value); sfxPer.text = ChangePerText(sfxSlider.value); if (_data.isFullScreenMode == true) { fullScreenToggle.isOn = true; } else { windowScreenToggle.isOn = true; } // brightnessSlider.value = GetFloat(_data.brightness); }
public void LoadAudioSettings() { Data_Settings data = Data_SaveSystem.LoadAudio(); masterVolume = data.SoundMaster; musicVolume = data.SoundMusic; SFXVolume = data.SoundSFX; }
private void ApplySettings(Data_Settings data) { GameManager.Instance.settingsManager.audioMixer.SetFloat("bgmVolume", Mathf.Log(Mathf.Lerp(0.001f, 1, (float)System.Convert.ToDouble(data.bgmVolume))) * 20); GameManager.Instance.settingsManager.audioMixer.SetFloat("sfxVolume", Mathf.Log(Mathf.Lerp(0.001f, 1, (float)System.Convert.ToDouble(data.sfxVolume))) * 20); //LocalizationManager.Instance.SetLocalizationLanguage(data.language); //LocalizationManager.Instance.UpdateLocalization(); currentSettingsData = new Data_Settings(data); }
/// <summary> /// 데이터를 설정하고, 반영도 합니다. /// </summary> /// <param name="data"></param> private void SetData(Data_Settings data) { currentSettingsData = new Data_Settings(data); originalSettingsData = new Data_Settings(data); currentSettingsData = data; UpdateValue(data); ApplySettings(data); }
public static void SaveAudio(AudioManager audioManager) { BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + "/audio.data"; FileStream stream = new FileStream(path, FileMode.Create); Data_Settings data = new Data_Settings(audioManager); formatter.Serialize(stream, data); Debug.Log("Saved in " + path); stream.Close(); }
/// <summary> /// 해당하는 데이터를 자신에게 복사해 넣습니다. /// </summary> /// <param name="data">복사되어서 넣어질 테이터</param> public void CopyFrom(Data_Settings data) { this.isFullScreenMode = data.isFullScreenMode; this.masterVolume = data.masterVolume; this.bgmVolume = data.bgmVolume; this.sfxVolume = data.sfxVolume; this.muteMasterVolume = data.muteMasterVolume; this.muteBgmVolume = data.muteBgmVolume; this.muteSfxVolume = data.muteSfxVolume; this.brightness = data.brightness; this.resolution = data.resolution; }
/// <summary> /// 데이터가 같으면 true를 리턴합니다. /// </summary> public bool Equal(Data_Settings data) { if (this.isFullScreenMode == data.isFullScreenMode && this.masterVolume == data.masterVolume && this.bgmVolume == data.bgmVolume && this.sfxVolume == data.sfxVolume && this.muteMasterVolume == data.muteMasterVolume && this.muteBgmVolume == data.muteBgmVolume && this.muteSfxVolume == data.muteSfxVolume && this.brightness == data.brightness && this.resolution == data.resolution) { return(true); } else { return(false); } }
public static Data_Settings LoadAudio() { string path = Application.persistentDataPath + "/audio.data"; if (File.Exists(path)) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Open); Data_Settings data = formatter.Deserialize(stream) as Data_Settings; stream.Close(); return(data); } else { Debug.LogError("Save file not found in " + path); return(null); } }
//여기서부터 세팅 매니저에서 가져옴 /// <summary> /// 세팅 데이터를 실제 반영시키고, 세팅데이터를 정말로, SaveLoadManager를 통해 저장합니다. /// </summary> /// <param name="data"></param> public void OnApply(Data_Settings data) { //세팅을 확정하고... ApplySettings(data); //if (data != originalSettingsData) // 오리지널 데이터와 가져온 데이터가 다를 경우에만 저장 //{//오리지널 데이터와 가져온 데이터가 같다는 것은, 그냥 변경점이 없다는 것이기 때문에... originalSettingsData = new Data_Settings(data); SaveLoadManager.Instance.SetCurrentData_Settings(data); StartCoroutine(SaveLoadManager.Instance.SaveData_Settings()); UpdateValue(data); //} //StartCoroutine(SaveSettingsData()); //ㄹㅇ 저장시킨다 }
/// <summary> /// UI에 보여지고 있는 값들을 data로 옮깁니다. /// </summary> /// <param name="data"></param> private void ApplySetting(Data_Settings data) { data.masterVolume = GetString(masterSlider.value); data.sfxVolume = GetString(sfxSlider.value); data.bgmVolume = GetString(bgmSlider.value); // data.brightness = GetString(brightnessSlider.value); data.muteMasterVolume = !masterSlider.interactable; data.muteBgmVolume = !bgmSlider.interactable; data.muteSfxVolume = !sfxSlider.interactable; if (fullScreenToggle.isOn == true) { data.isFullScreenMode = true; } else { data.isFullScreenMode = false; } //data.language = (Language)languageSelector.GetCurrentIndex(); }
/// <summary> /// data를 오디오 믹서 등 실제 설정에 반역하고, currentData를 data로 변경합니다. /// </summary> /// <param name="data">변경할 세팅 데이터</param> private void ApplySettings(Data_Settings data) { if (data.muteMasterVolume == false) { audioMixer.SetFloat("masterVolume", Mathf.Log(Mathf.Lerp(0.001f, 1, (float)System.Convert.ToDouble(data.masterVolume))) * 20); } else { audioMixer.SetFloat("masterVolume", Mathf.Log(Mathf.Lerp(0.001f, 1, (float)System.Convert.ToDouble(0f))) * 20); } if (data.muteBgmVolume == false) { audioMixer.SetFloat("bgmVolume", Mathf.Log(Mathf.Lerp(0.001f, 1, (float)System.Convert.ToDouble(data.bgmVolume))) * 20); } else { audioMixer.SetFloat("bgmVolume", Mathf.Log(Mathf.Lerp(0.001f, 1, (float)System.Convert.ToDouble(0f))) * 20); } if (data.muteSfxVolume == false) { audioMixer.SetFloat("sfxVolume", Mathf.Log(Mathf.Lerp(0.001f, 1, (float)System.Convert.ToDouble(data.sfxVolume))) * 20); } else { audioMixer.SetFloat("sfxVolume", Mathf.Log(Mathf.Lerp(0.001f, 1, (float)System.Convert.ToDouble(0f))) * 20); } // GameManager.Instance.settingsManager. // GameManager.Instance.settingsManager. //LocalizationManager.Instance.SetLocalizationLanguage(data.language); //LocalizationManager.Instance.UpdateLocalization(); currentSettingsData = new Data_Settings(data); }
public void OnCancel(Data_Settings data) { ApplySettings(data); //확정은 아는데 저장은 안함ㅋㅋ //그 이유는 게임매니저에 있다. }
/// <summary> /// 데이터를 넣어서 생성합니다. /// </summary> /// <param name="data">이 데이터가 넣어집니다.</param> public Data_Settings(Data_Settings data) { CopyFrom(data); }
/// <summary> /// 기본 세팅 데이터를 만들어서 반환합니다. /// </summary> /// <returns></returns> public Data_Settings GetDefaultSettingsData() { currentSettingsData = new Data_Settings(); return(currentSettingsData); }
public void SetCurrentData_Settings(Data_Settings _d) { currentData_Settings = new Data_Settings(_d); }