Table of Contents

Class AudioSystem

Namespace
Framework.Systems.Audio
Assembly
Assembly-CSharp.dll

IAudioSystem 구현체. Unity AudioMixer + AudioSourcePool + IAssetSystem 기반.

public sealed class AudioSystem : IAudioSystem
Inheritance
object
AudioSystem
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

assetSystem IAssetSystem

Methods

Dispose()

오디오 루트 GameObject 를 파괴한다.

public void Dispose()

GetVolume(AudioChannel)

현재 채널 볼륨을 반환한다 (0~1).

public float GetVolume(AudioChannel channel)

Parameters

channel AudioChannel

Returns

float

InitializeAsync(CancellationToken)

AudioMixer 로드, BGM 전용 AudioSource 2개 생성, SFX Pool(32) 초기화. RootScope BuildCallback 에서 자동 호출. Gameplay 코드 직접 호출 불필요.

public UniTask InitializeAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

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

key string
fadeIn float
crossFadeDuration float
ct CancellationToken

Returns

UniTask

PlaySFXAsync(string, CancellationToken)

SFX 를 재생한다. 개별 제어가 필요 없는 일반적인 경우에 사용. 내부적으로 PlaySFXControlledAsync(string, CancellationToken) 를 호출하고 핸들을 버린다.

public UniTask PlaySFXAsync(string key, CancellationToken ct = default)

Parameters

key string
ct CancellationToken

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

key string
ct CancellationToken

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

key string
ct CancellationToken

Returns

UniTask<IAudioHandle>

PlayUIOpen()

팝업/화면 열림 사운드.

public void PlayUIOpen()

SetVolume(AudioChannel, float)

채널 볼륨을 설정한다. AudioMixer Exposed Parameter 를 dB 로 변환해 적용.

public void SetVolume(AudioChannel channel, float volume)

Parameters

channel AudioChannel
volume float

StopBGMAsync(float, CancellationToken)

현재 BGM 을 정지한다. fadeOut = 0 이면 즉시 정지.

public UniTask StopBGMAsync(float fadeOut = 0.5, CancellationToken ct = default)

Parameters

fadeOut float
ct CancellationToken

Returns

UniTask