본문 바로가기

이전 게시물들/유니티

ToBeCuBe에 사용된 옵션 세팅

개요

유니티 기본 UI(슬라이더, 버튼, 패널 등)와 PlayerPrefs를 이용해 간단하게 만들었습니다.

 

코드

    //유니티 기본 UI를 이용한 옵션입니다.
    public Slider bgmSlider;
    public Text bgmValueText;
    public Slider soundSlider;
    public Text soundValueText;
    public Slider sensSlider;
    public Text sensValueText;

    //슬라이더 값이 변경 될 때 호출해줄 함수들입니다.
    public void BgmVolumeChange()
    {
        bgmAudioSource.volume = bgmSlider.value;
        bgmValueText.text = (bgmSlider.value * 100).ToString("N0");
    }
    public void SoundVolumeChange()
    {
        //BGM은 하나의 오디오 소스지만 효과음을 내는 오디오 소스는 다수이므로 여러개를 처리해줍니다.
        foreach (AudioSource audioSource in soundAudioSource)
        {
            audioSource.volume = soundSlider.value;
        }
        soundValueText.text =  (soundSlider.value * 100).ToString("N0");
        //소리크기가 변경된 효과음을 한번 들려줍니다.
        soundAudioSource[0].Play();
    }
    public void SensChange()
    {
        player.SetSwipeSensitivity(sensSlider.value);
        sensValueText.text = (sensSlider.value * 100).ToString("N0");
    }

    //버튼이 눌리면 호출되는 함수입나다.  누르면 On/Off를 스위치합니다. 
    public void GridSwitching()
    {
        gridObj.SetActive(!gridObj.activeSelf);
        gridButtonText.text = gridObj.activeSelf ? "ON" : "OFF";
    }

    //옵션 정보를 PlayerPrefs로 기록하는 함수입니다.
    public void SetOptionInfo()
    {
        PlayerPrefs.SetInt("grid", gridObj.activeSelf ? 1 : 0);
        PlayerPrefs.SetFloat("bgm", bgmSlider.value);
        PlayerPrefs.SetFloat("sound", soundSlider.value);
        PlayerPrefs.SetFloat("sens", sensSlider.value);
    }

    //최초에 PlayerPrePrefs에서 옵션 정보를 받아오는 함수입니다.
    void GetOptionInfo()
    {
        bool grid = PlayerPrefs.GetInt("grid", 1) == 1 ? true : false;
        float bgm = PlayerPrefs.GetFloat("bgm", 0.5f);
        float sound = PlayerPrefs.GetFloat("sound", 0.5f);
        float sens = PlayerPrefs.GetFloat("sens", 0.15f);


        bgmSlider.value = bgm;
        soundSlider.value = sound;
        sensSlider.value = sens;

        BgmVolumeChange();
        SoundVolumeChange();
        SensChange();
        gridObj.SetActive(grid);
        gridButtonText.text = grid ? "ON" : "OFF";
    }

'이전 게시물들 > 유니티' 카테고리의 다른 글

유니티 가상 조이스틱(브롤 스타즈 방식)  (0) 2020.04.29
리지드바디와 이동, 회전, 애니메이션  (0) 2020.04.28
플렛폼 구분  (0) 2020.04.19
오브젝트 풀링  (0) 2020.04.18
스와이프와 터치  (0) 2020.04.18