在游戏初始化时会执行音乐音效初始化逻辑,首先它会创建两个AudioSource用于播放背景音乐和音效.
- 背景音乐加载后循环播放.
- 音效播放时先检查是否已加载,若加载直接播放;若没有加载,先加载音效资源,播放,然后缓存起来供下次使用.
支持格式
| Audio Interchange File Format |
.aiff / .aif |
|
| Ultimate Soundtracker module |
.mod |
|
| Impulse Tracker module |
.it |
|
| Scream Tracker module |
.s3m |
|
音效逻辑
public void Init()
{
InitBackground();
audioSource = Camera.main.gameObject.AddComponent<AudioSource>();
}
private void InitBackground()
{
var source = Camera.main.gameObject.AddComponent<AudioSource>();
source.loop = true;
var path = ExcelManager.settings_audio[1].path;
var asset = ServiceCenter.GetService<IAssetManager>().Load(path, AssetType.AudioClip);
source.clip = asset.Cast<AudioClip>();
source.Play();
}
public void Play(string path)
{
CheckClip(path);
audioSource.clip = audioClips[path];
audioSource.Play();
}
private void CheckClip(string path)
{
if (!audioClips.ContainsKey(path))
{
var asset = ServiceCenter.GetService<IAssetManager>().Load(path, AssetType.AudioClip);
audioClips.Add(path, asset.Cast<AudioClip>());
}
}
音效资源都是通过配置的方式实现,方便更新和替换.