Add a option for randomized music
This commit is contained in:
@@ -520,6 +520,19 @@ public class BazookaManager : MonoBehaviour
|
||||
return bool.Parse(saveFile["settings"]["hideSocials"].ToString());
|
||||
}
|
||||
|
||||
public void SetSettingRandomMusic(bool value)
|
||||
{
|
||||
if (saveFile["settings"] == null) saveFile["settings"] = new JObject();
|
||||
saveFile["settings"]["randomMusic"] = value;
|
||||
}
|
||||
|
||||
public bool GetSettingRandomMusic()
|
||||
{
|
||||
if (saveFile["settings"] == null) return true;
|
||||
if (saveFile["settings"]["randomMusic"] == null) return true;
|
||||
return bool.Parse(saveFile["settings"]["randomMusic"].ToString());
|
||||
}
|
||||
|
||||
public void SetSettingMusicVolume(float value)
|
||||
{
|
||||
if (saveFile["settings"] == null) saveFile["settings"] = new JObject();
|
||||
|
||||
@@ -6,28 +6,35 @@ public class GameMusicHandler : MonoBehaviour
|
||||
public AudioClip[] audioClips;
|
||||
private AudioSource audioSource;
|
||||
private int lastIndex = -1;
|
||||
private int currentIndex = 0;
|
||||
private bool isPaused = false;
|
||||
|
||||
void Awake()
|
||||
void Start()
|
||||
{
|
||||
audioSource = GetComponent<AudioSource>();
|
||||
PlayRandomClip();
|
||||
PlayNextClip();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (!audioSource.isPlaying && !isPaused) PlayRandomClip();
|
||||
if (!audioSource.isPlaying && !isPaused) PlayNextClip();
|
||||
}
|
||||
|
||||
void PlayRandomClip()
|
||||
void PlayNextClip()
|
||||
{
|
||||
if (audioClips.Length == 0) return;
|
||||
|
||||
int index;
|
||||
do
|
||||
if (BazookaManager.Instance.GetSettingRandomMusic())
|
||||
{
|
||||
index = Random.Range(0, audioClips.Length);
|
||||
} while (audioClips.Length > 1 && index == lastIndex);
|
||||
do index = Random.Range(0, audioClips.Length);
|
||||
while (audioClips.Length > 1 && index == lastIndex);
|
||||
}
|
||||
else
|
||||
{
|
||||
index = currentIndex;
|
||||
currentIndex = (currentIndex + 1) % audioClips.Length;
|
||||
}
|
||||
|
||||
lastIndex = index;
|
||||
audioSource.clip = audioClips[index];
|
||||
|
||||
@@ -8,6 +8,7 @@ public class SettingsMenu : MonoBehaviour
|
||||
public Toggle setting2toggle;
|
||||
public Toggle setting3toggle;
|
||||
public Toggle setting4toggle;
|
||||
public Toggle setting5toggle;
|
||||
public Slider musicSlider;
|
||||
public Slider sfxSlider;
|
||||
public ColorPanel bgColorPanel;
|
||||
@@ -38,6 +39,7 @@ public class SettingsMenu : MonoBehaviour
|
||||
setting2toggle.isOn = BazookaManager.Instance.GetSettingShowFPS() == true;
|
||||
setting3toggle.isOn = BazookaManager.Instance.GetSettingVsync() == true;
|
||||
setting4toggle.isOn = BazookaManager.Instance.GetSettingHideSocials() == true;
|
||||
setting5toggle.isOn = BazookaManager.Instance.GetSettingRandomMusic() == true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -45,6 +47,7 @@ public class SettingsMenu : MonoBehaviour
|
||||
setting2toggle.isOn = BazookaManager.Instance.GetSettingShowFPS() == true;
|
||||
setting3toggle.interactable = false;
|
||||
setting4toggle.isOn = BazookaManager.Instance.GetSettingHideSocials() == true;
|
||||
setting5toggle.isOn = BazookaManager.Instance.GetSettingRandomMusic() == true;
|
||||
}
|
||||
setting1toggle.onValueChanged.AddListener(value =>
|
||||
{
|
||||
@@ -63,6 +66,7 @@ public class SettingsMenu : MonoBehaviour
|
||||
QualitySettings.vSyncCount = value ? 1 : -1;
|
||||
});
|
||||
setting4toggle.onValueChanged.AddListener(value => BazookaManager.Instance.SetSettingHideSocials(value));
|
||||
setting5toggle.onValueChanged.AddListener(value => BazookaManager.Instance.SetSettingRandomMusic(value));
|
||||
musicSlider.onValueChanged.AddListener(value =>
|
||||
{
|
||||
BazookaManager.Instance.SetSettingMusicVolume(value);
|
||||
|
||||
Reference in New Issue
Block a user