You've already forked taptap2024_GJ_chidouren
69 lines
2.6 KiB
C#
69 lines
2.6 KiB
C#
using System;
|
|
using Framework.Audio;
|
|
using Framework.Timer;
|
|
using Framework.Utils.Extend;
|
|
using IcecreamView;
|
|
using UnityEngine;
|
|
using AudioType = Framework.Audio.AudioType;
|
|
|
|
namespace Views.Common
|
|
{
|
|
public class CommonAudioModule : IcecreamView.IC_AbstractModule
|
|
{
|
|
[Serializable]
|
|
public class AudioData
|
|
{
|
|
public SeAudio AudioName = SeAudio.None;
|
|
public bool IsLoop = false;
|
|
public float Volume = 1;
|
|
public float Delay = 0;
|
|
|
|
public AudioData (SeAudio audioName)
|
|
{
|
|
this.AudioName = audioName;
|
|
}
|
|
}
|
|
|
|
private TimeHandler _timeHandler;
|
|
[Header("页面打开时,环境音效缩放系数")]
|
|
public float BseVolumeScaleOffset = 1;
|
|
[Header("页面打开时,环境音效缩放时间")]
|
|
public float BseVolumeScaleTime = 0.35f;
|
|
|
|
[SerializeField] private AudioData _openAudioData = new AudioData (SeAudio.PanelPop_Pop01);
|
|
[SerializeField] private AudioData _closeAudioData= new AudioData (SeAudio.PanelPop_Pop02);
|
|
|
|
public override void OnOpenView (IC_ViewData msgData)
|
|
{
|
|
if (!BseVolumeScaleOffset.Compare(1f))
|
|
{
|
|
// AudioManager.Instance.SetGroupVolume(AudioType.BSE , AudioManager.Instance.BSEValue * BseVolumeScaleOffset , BseVolumeScaleTime);
|
|
AudioManager.Instance.SetGlobalVolume(AudioType.BGM , AudioManager.Instance.MusicValue * BseVolumeScaleOffset , BseVolumeScaleTime);
|
|
}
|
|
|
|
_timeHandler?.Kill ();
|
|
if (_openAudioData.AudioName != SeAudio.None)
|
|
{
|
|
_timeHandler = GameUpdateMgr.Instance.CreateTimer (_openAudioData.Delay , () =>
|
|
{
|
|
AudioManager.Instance.PlaySoundEffect (_openAudioData.AudioName , _openAudioData.Volume , 0 , _openAudioData.IsLoop);
|
|
});
|
|
}
|
|
}
|
|
|
|
public override void OnCloseView ()
|
|
{
|
|
if (!BseVolumeScaleOffset.Compare(1f))
|
|
{
|
|
// AudioManager.Instance.SetGroupVolume(AudioType.BSE , AudioManager.Instance.BSEValue , BseVolumeScaleTime);
|
|
AudioManager.Instance.SetGlobalVolume(AudioType.BGM , AudioManager.Instance.MusicValue , BseVolumeScaleTime);
|
|
}
|
|
|
|
_timeHandler?.Kill ();
|
|
if (_closeAudioData.AudioName != SeAudio.None)
|
|
{
|
|
AudioManager.Instance.PlaySoundEffect (_closeAudioData.AudioName , _closeAudioData.Volume , 0 , _closeAudioData.IsLoop);
|
|
}
|
|
}
|
|
}
|
|
} |