Class AudioSystem
IAudioSystem 구현체. Unity AudioMixer + AudioSourcePool + IAssetSystem 기반.
public sealed class AudioSystem : IAudioSystem
- Inheritance
-
objectAudioSystem
- Implements
Remarks
[AudioMixer 세팅] Resources/AudioMixer.mixer 파일 배치. Hierarchy: Master > BGM / SFX / UI. Exposed Parameters: MasterVolume / BGMVolume / SFXVolume / UIVolume.
[초기화] RootScope BuildCallback 에서 자동 호출됨. Gameplay 코드에서 InitializeAsync 직접 호출 불필요.
Constructors
AudioSystem(IAssetSystem)
public AudioSystem(IAssetSystem assetSystem)
Parameters
assetSystemIAssetSystem
Methods
Dispose()
오디오 루트 GameObject 를 파괴한다.
public void Dispose()
GetVolume(AudioChannel)
현재 채널 볼륨을 반환한다 (0~1).
public float GetVolume(AudioChannel channel)
Parameters
channelAudioChannel
Returns
- float
InitializeAsync(CancellationToken)
AudioMixer 로드, BGM 전용 AudioSource 2개 생성, SFX Pool(32) 초기화. RootScope BuildCallback 에서 자동 호출. Gameplay 코드 직접 호출 불필요.
public UniTask InitializeAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- UniTask
PlayBGMAsync(string, float, float, CancellationToken)
BGM 을 재생한다. 현재 재생 중인 BGM 이 없으면 FadeIn, 있으면 자동 CrossFade 처리. Gameplay 코드는 재생 의도만 전달한다. 전환 방식은 AudioSystem 이 결정한다.
public UniTask PlayBGMAsync(string key, float fadeIn = 0.5, float crossFadeDuration = 1, CancellationToken ct = default)
Parameters
keystringfadeInfloatcrossFadeDurationfloatctCancellationToken
Returns
- UniTask
PlaySFXAsync(string, CancellationToken)
SFX 를 재생한다. 개별 제어가 필요 없는 일반적인 경우에 사용. 내부적으로 PlaySFXControlledAsync(string, CancellationToken) 를 호출하고 핸들을 버린다.
public UniTask PlaySFXAsync(string key, CancellationToken ct = default)
Parameters
keystringctCancellationToken
Returns
- UniTask
PlaySFXControlledAsync(string, CancellationToken)
SFX 를 재생하고 IAudioHandle 을 반환한다. Stop / Pause / Resume / SetPitch / SetVolume 등 개별 제어가 필요한 경우에만 사용. 일반 재생은 PlaySFXAsync(string, CancellationToken) 를 사용한다.
public UniTask<IAudioHandle> PlaySFXControlledAsync(string key, CancellationToken ct = default)
Parameters
keystringctCancellationToken
Returns
- UniTask<IAudioHandle>
PlayUICancel()
취소 버튼 사운드.
public void PlayUICancel()
PlayUIClick()
버튼 클릭 사운드. AudioKeys.UI_Click 사용.
public void PlayUIClick()
PlayUIClose()
팝업/화면 닫힘 사운드.
public void PlayUIClose()
PlayUIConfirm()
확인 버튼 사운드.
public void PlayUIConfirm()
PlayUIControlledAsync(string, CancellationToken)
UI 사운드를 재생하고 핸들을 반환한다. 고급 제어가 필요한 경우에만 사용.
public UniTask<IAudioHandle> PlayUIControlledAsync(string key, CancellationToken ct = default)
Parameters
keystringctCancellationToken
Returns
- UniTask<IAudioHandle>
PlayUIOpen()
팝업/화면 열림 사운드.
public void PlayUIOpen()
SetVolume(AudioChannel, float)
채널 볼륨을 설정한다. AudioMixer Exposed Parameter 를 dB 로 변환해 적용.
public void SetVolume(AudioChannel channel, float volume)
Parameters
channelAudioChannelvolumefloat
StopBGMAsync(float, CancellationToken)
현재 BGM 을 정지한다. fadeOut = 0 이면 즉시 정지.
public UniTask StopBGMAsync(float fadeOut = 0.5, CancellationToken ct = default)
Parameters
fadeOutfloatctCancellationToken
Returns
- UniTask