3D 잔재 제거

This commit is contained in:
2026-07-24 21:11:32 +09:00
parent 0b02bacb3d
commit 53bad30836
55 changed files with 4269 additions and 292 deletions

View File

@@ -149,32 +149,12 @@ private async Awaitable BGMFade(float from, float to, CancellationToken token)
//=========================== SFX ===========================
//2D SFX 재생 (UI 사운드 등 위치 무관)
//SFX 재생. 2D 게임이라 위치 개념 없이 항상 화면 전체에 동일하게 들린다.
public void PlaySFX(AudioClip clip, float volume = 1f)
{
if (clip == null) return;
AudioSource source = GetSfxSource();
source.transform.localPosition = Vector3.zero;
source.spatialBlend = 0f; //2D
Play(source, clip, volume);
_ = ReturnAfterPlay(source, clip.length); //재생이 끝나면 풀에 반납
}
//3D SFX 재생 (VR 공간음향 - 특정 위치에서 들림)
//minDistance: 이 거리 안에선 풀 볼륨으로 들림. 하늘 높이 터지는 폭죽처럼 멀리서 나는 큰 소리는
//크게(예: 30~50) 잡아야 거리 감쇠로 사라지지 않는다. maxDistance: 감쇠 계산 상한.
public void PlaySFXAt(AudioClip clip, Vector3 position, float volume = 1f,
float minDistance = 1f, float maxDistance = 500f)
{
if (clip == null) return;
AudioSource source = GetSfxSource();
source.transform.position = position;
source.spatialBlend = 1f; //3D
source.rolloffMode = AudioRolloffMode.Logarithmic;
source.minDistance = minDistance;
source.maxDistance = maxDistance;
Play(source, clip, volume);
_ = ReturnAfterPlay(source, clip.length); //재생이 끝나면 풀에 반납
}
@@ -222,6 +202,7 @@ private AudioSource CreateSfxSource()
AudioSource source = go.AddComponent<AudioSource>();
source.outputAudioMixerGroup = _sfxGroup;
source.playOnAwake = false;
source.spatialBlend = 0f; //2D — 거리 감쇠 없이 항상 동일하게
return source;
}