개요
유니티 기본 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 |