113 lines
2.0 KiB
C#
113 lines
2.0 KiB
C#
|
using SRF;
|
|||
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.Audio;
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
public class AudioManager : MonoSingleton<AudioManager>
|
|||
|
{
|
|||
|
private Queue<string> _CVFiles = new Queue<string>();
|
|||
|
private AudioSource _cvSouce;
|
|||
|
private readonly float _cvCDTime = 0.2f;
|
|||
|
private float _cvCDTimer = 0;
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
private float _musicVolume;
|
|||
|
|
|||
|
public float MusicVolume
|
|||
|
{
|
|||
|
get => _musicVolume;
|
|||
|
set => _musicVolume = value;
|
|||
|
}
|
|||
|
|
|||
|
private float _seVolume;
|
|||
|
|
|||
|
public float SEVolume
|
|||
|
{
|
|||
|
get => _seVolume;
|
|||
|
set => _seVolume = value;
|
|||
|
}
|
|||
|
|
|||
|
private float _cvVolume;
|
|||
|
private Queue<AudioSource> _cacheAudioSource;
|
|||
|
|
|||
|
public float CVVolume
|
|||
|
{
|
|||
|
get => _cvVolume;
|
|||
|
set => _cvVolume = value;
|
|||
|
}
|
|||
|
|
|||
|
public override void Init()
|
|||
|
{
|
|||
|
_cvSouce = gameObject.GetComponentOrAdd<AudioSource>();
|
|||
|
_cvSouce.name = "CVSource";
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
public void PlayMusic(string name)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public void PlaySE(string name)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public void PlayCV(string name)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public void PlayCVInQueue(string name)
|
|||
|
{
|
|||
|
_CVFiles.Enqueue(name);
|
|||
|
}
|
|||
|
|
|||
|
private void Update()
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
|||
|
if (_CVFiles.Count > 0)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>
|
|||
|
if (_cvSouce.isPlaying)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA>ȴ<EFBFBD>0.5<EFBFBD><EFBFBD>
|
|||
|
if (_cvCDTimer < _cvCDTime)
|
|||
|
{
|
|||
|
_cvCDTimer += Time.deltaTime;
|
|||
|
return;
|
|||
|
}
|
|||
|
_cvCDTimer = 0;
|
|||
|
|
|||
|
var name = _CVFiles.Dequeue();
|
|||
|
var clip = GetAudioClip("CV", name);
|
|||
|
_cvSouce.clip = clip;
|
|||
|
_cvSouce.Play();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void StopMusic()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public void StopSE()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public void StopCV()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private AudioClip GetAudioClip(string type, string path)
|
|||
|
{
|
|||
|
var retVal = Resources.Load<AudioClip>($"{type}/{path}");
|
|||
|
return retVal;
|
|||
|
}
|
|||
|
}
|