2026-03-31 17:25:20 +08:00
|
|
|
|
using AlicizaX;
|
2025-09-05 19:46:30 +08:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
using UnityEngine.Audio;
|
|
|
|
|
|
|
|
|
|
|
|
namespace AlicizaX.Audio.Runtime
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
2026-03-31 17:25:20 +08:00
|
|
|
|
/// <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Ϸ<EFBFBD>ṩͳһ<CDB3><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>Žӿڡ<D3BF>
|
2025-09-05 19:46:30 +08:00
|
|
|
|
/// </summary>
|
2026-03-31 17:25:20 +08:00
|
|
|
|
/// <remarks><3E><><EFBFBD><EFBFBD>3D<33><44>Ч<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3D<33><44>Ч<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>AudioSource<63><65>Output<75><74><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AudioMixerGroup</remarks>
|
2025-09-05 19:46:30 +08:00
|
|
|
|
[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;
|
|
|
|
|
|
|
2026-03-26 16:14:05 +08:00
|
|
|
|
private IAudioService _audioService;
|
2025-09-05 19:46:30 +08:00
|
|
|
|
|
|
|
|
|
|
private void Awake()
|
|
|
|
|
|
{
|
2026-03-31 17:25:20 +08:00
|
|
|
|
_audioService = AppServices.App.Register(new AudioService());
|
2025-09-05 19:46:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-03-31 17:25:20 +08:00
|
|
|
|
/// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ƶģ<C6B5>顣
|
2025-09-05 19:46:30 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
void Start()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_InstanceRoot == null)
|
|
|
|
|
|
{
|
2026-03-26 16:14:05 +08:00
|
|
|
|
m_InstanceRoot = new GameObject("[AudioService Instances]").transform;
|
2025-09-05 19:46:30 +08:00
|
|
|
|
m_InstanceRoot.SetParent(gameObject.transform);
|
|
|
|
|
|
m_InstanceRoot.localScale = Vector3.one;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_AudioMixer == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_AudioMixer = Resources.Load<AudioMixer>("AudioMixer");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-26 16:14:05 +08:00
|
|
|
|
_audioService.Initialize(m_AudioGroupConfigs, m_InstanceRoot, m_AudioMixer);
|
2025-09-05 19:46:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-03-31 17:25:20 +08:00
|
|
|
|
|