Пример #1
0
    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
        }
    }
Пример #2
0
    private Data_Settings currentSettingsData; //현재 세팅 데이터.

    public void OnApply(Data_Settings data)
    {
        //세팅을 확정하고...
        ApplySettings(data);
        StartCoroutine(SaveSettingsData());
        //ㄹㅇ 저장시킨다
    }
Пример #3
0
    /// <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);
    }
Пример #4
0
    public void LoadAudioSettings()
    {
        Data_Settings data = Data_SaveSystem.LoadAudio();

        masterVolume = data.SoundMaster;
        musicVolume  = data.SoundMusic;
        SFXVolume    = data.SoundSFX;
    }
Пример #5
0
    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);
    }
Пример #6
0
    /// <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);
    }
Пример #7
0
    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();
    }
Пример #8
0
    /// <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;
    }
Пример #9
0
 /// <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);
     }
 }
Пример #10
0
    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);
        }
    }
Пример #11
0
    //여기서부터 세팅 매니저에서 가져옴
    /// <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());
        //ㄹㅇ 저장시킨다
    }
Пример #12
0
    /// <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();
    }
Пример #13
0
    /// <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);
    }
Пример #14
0
 public void OnCancel(Data_Settings data)
 {
     ApplySettings(data);
     //확정은 아는데 저장은 안함ㅋㅋ
     //그 이유는 게임매니저에 있다.
 }
Пример #15
0
 /// <summary>
 /// 데이터를 넣어서 생성합니다.
 /// </summary>
 /// <param name="data">이 데이터가 넣어집니다.</param>
 public Data_Settings(Data_Settings data)
 {
     CopyFrom(data);
 }
Пример #16
0
 /// <summary>
 /// 기본 세팅 데이터를 만들어서 반환합니다.
 /// </summary>
 /// <returns></returns>
 public Data_Settings GetDefaultSettingsData()
 {
     currentSettingsData = new Data_Settings();
     return(currentSettingsData);
 }
Пример #17
0
 public void SetCurrentData_Settings(Data_Settings _d)
 {
     currentData_Settings = new Data_Settings(_d);
 }