|
@@ -11,9 +11,9 @@ namespace GFGGame
|
|
|
private string currentName;
|
|
|
private AssetOperationHandle handle;
|
|
|
private Coroutine coroutine;
|
|
|
- private float storyDialogVolumn = 0.6f;
|
|
|
- private float storyDialogVolumnWhenVoice = 0.17f;
|
|
|
- private float storyDialogChangeValue = 0.3f;
|
|
|
+ private float normalVolumn = 1f;
|
|
|
+ private float curVolume = 1f;
|
|
|
+ private float changeValue = 0.01f;
|
|
|
|
|
|
private bool _isOn = true;
|
|
|
public bool isOn
|
|
@@ -24,12 +24,12 @@ namespace GFGGame
|
|
|
}
|
|
|
set
|
|
|
{
|
|
|
- if(_isOn != value)
|
|
|
+ if (_isOn != value)
|
|
|
{
|
|
|
_isOn = value;
|
|
|
- if(_isOn)
|
|
|
+ if (_isOn)
|
|
|
{
|
|
|
- if(currentName != null)
|
|
|
+ if (currentName != null)
|
|
|
{
|
|
|
PlayCroutine(currentName, true);
|
|
|
}
|
|
@@ -50,42 +50,43 @@ namespace GFGGame
|
|
|
isOn = LocalCache.GetBool(LauncherConfig.MUSIC_KEY, true);
|
|
|
}
|
|
|
|
|
|
- private void Start()
|
|
|
+ private void Start()
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- private void Update()
|
|
|
+ private void Update()
|
|
|
{
|
|
|
- if (player.clip == null)
|
|
|
+ if (player.clip == null || !isOn)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (VoiceManager.Instance.IsPlaying())
|
|
|
{
|
|
|
- if (player.volume > storyDialogVolumnWhenVoice)
|
|
|
- {
|
|
|
- player.volume -= storyDialogChangeValue * Time.deltaTime;
|
|
|
- player.volume = Mathf.Max(player.volume, storyDialogVolumnWhenVoice);
|
|
|
- }
|
|
|
+ curVolume = 0.17f;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (player.volume < storyDialogVolumn)
|
|
|
+ curVolume = normalVolumn;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (player.volume != curVolume)
|
|
|
+ {
|
|
|
+ player.volume = Mathf.Lerp(player.volume, curVolume, changeValue);
|
|
|
+ if (Mathf.Abs(player.volume - curVolume) <= 0.05)
|
|
|
{
|
|
|
- player.volume += storyDialogChangeValue * Time.deltaTime;
|
|
|
- player.volume = Mathf.Min(player.volume, storyDialogVolumn);
|
|
|
+ player.volume = curVolume;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void PlayCroutine(string path, bool must = false, float volume = 1.0f)
|
|
|
{
|
|
|
- if(currentName != path || must)
|
|
|
+ if (currentName != path || must)
|
|
|
{
|
|
|
currentName = path;
|
|
|
- if(coroutine != null)
|
|
|
+ if (coroutine != null)
|
|
|
{
|
|
|
StopCoroutine(coroutine);
|
|
|
}
|
|
@@ -118,7 +119,7 @@ namespace GFGGame
|
|
|
public void Pause()
|
|
|
{
|
|
|
player.Pause();
|
|
|
- }
|
|
|
+ }
|
|
|
public void UnPause()
|
|
|
{
|
|
|
player.UnPause();
|
|
@@ -129,9 +130,14 @@ namespace GFGGame
|
|
|
player?.Stop();
|
|
|
}
|
|
|
|
|
|
- public void SetDefaultStoryDialogVolume()
|
|
|
+ public void SetVolume(float volume)
|
|
|
+ {
|
|
|
+ player.volume = volume;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void SetNormalVolumn(float volume)
|
|
|
{
|
|
|
- player.volume = storyDialogVolumn;
|
|
|
+ normalVolumn = volume;
|
|
|
}
|
|
|
}
|
|
|
}
|