com.alicizax.unity.framework/Runtime/Audio/AudioComponent.cs
2025-09-05 19:46:30 +08:00

49 lines
1.5 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using AlicizaX;
using UnityEngine;
using UnityEngine.Audio;
namespace AlicizaX.Audio.Runtime
{
/// <summary>
/// 音效管理,为游戏提供统一的音效播放接口。
/// </summary>
/// <remarks>场景3D音效挂到场景物件、技能3D音效挂到技能特效上并在AudioSource的Output上设置对应分类的AudioMixerGroup</remarks>
[DisallowMultipleComponent]
[AddComponentMenu("Game Framework/Audio")]
public sealed class AudioComponent : MonoBehaviour
{
[SerializeField] private AudioMixer m_AudioMixer;
[SerializeField] private Transform m_InstanceRoot = null;
[SerializeField] private AudioGroupConfig[] m_AudioGroupConfigs = null;
private IAudioModule _audioModule;
private void Awake()
{
_audioModule = ModuleSystem.RegisterModule<IAudioModule,AudioModule>();
}
/// <summary>
/// 初始化音频模块。
/// </summary>
void Start()
{
if (m_InstanceRoot == null)
{
m_InstanceRoot = new GameObject("[AudioModule Instances]").transform;
m_InstanceRoot.SetParent(gameObject.transform);
m_InstanceRoot.localScale = Vector3.one;
}
if (m_AudioMixer == null)
{
m_AudioMixer = Resources.Load<AudioMixer>("AudioMixer");
}
_audioModule.Initialize(m_AudioGroupConfigs, m_InstanceRoot, m_AudioMixer);
}
}
}