protected void PauseMusicControl(AudioAsset au, bool isPause, float fadeTime = 0.5f) { if (isPause) { //Debug.Log("PauseMusicControl Pause : "+ au.PlayState); if (au.PlayState == AudioPlayState.Playing) { au.SetPlayState(AudioPlayState.Pause); //Debug.Log("PauseMusicControl Pause"); AddFade(au, VolumeFadeType.FadeOut, fadeTime, 0, null, (value) => { //Debug.LogWarning("PauseMusicControl Pause fade CallBack"); value.Pause(); }, null); } } else { //Debug.Log("PauseMusicControl play : "+ au.PlayState); if (au.PlayState == AudioPlayState.Pause) { au.Play(); AddFade(au, VolumeFadeType.FadeIn, fadeTime, 0, null, null, null); } } }
protected void PlayClip(AudioAsset au, string audioName, bool isLoop = true, float volumeScale = 1, float delay = 0f, float pitch = 1) { if (!ResourcesConfigManager.GetIsExitRes(audioName)) { Debug.LogError("不存在音频:" + audioName); return; } //if (au.PlayState == AudioPlayState.Playing) // au.Stop(); UnloadClip(au); au.AssetName = audioName; AudioClip ac = GetAudioClip(au.AssetName); au.audioSource.clip = ac; au.audioSource.loop = isLoop; au.audioSource.pitch = pitch; au.VolumeScale = volumeScale; au.Play(delay); }
protected void PlayMusicControl(AudioAsset au, string audioName, bool isLoop = true, float volumeScale = 1, float delay = 0f, float fadeTime = 0.5f, string flag = "") { if (au.AssetName == audioName) { au.audioSource.loop = isLoop; if (au.PlayState != AudioPlayState.Playing) { AddFade(au, VolumeFadeType.FadeIn, fadeTime, delay, flag, null, null); au.Play(); } } else { if (au.PlayState != AudioPlayState.Playing) { fadeTime = fadeTime / 2f; } AddFade(au, VolumeFadeType.FadeOut2In, fadeTime, delay, flag, null, (value) => { PlayClip(value, audioName, isLoop, volumeScale, delay); }); } }