작성
·
29
·
수정됨
0
각 상황에 맞는 사운드를 플레이하도록 구현하고 있는데요.
Interaction 함수 안에서 사운드 출력 코드를 추가했는데 소리가 제대로 나오지 않고 계속 반복되서 출력되는 것처럼 치지지직 하다가 끝나버립니다.
void OnMoneyInteraction(WorkerController wc)
{
if (!wc.Tray.IsPlayer || _moneyPile.ObjectCount == 0)
return;
_moneyPile.DeSpawnObjectWithJump(wc.transform.position, () =>
{
GameManager.Instance.AddMoney(Define.MONEY_PER_BURGER);
GameManager.Instance.AddExp(1f);
SoundManager.Instance.PlaySFX("SFX_Money_Get");
});
}
그래서 제대로 한번만 사운드가 출력되도록 하기 위해 bool형 예외처리를 해서 코드를 수정했더니 0.1초만에 소리가 났다가 사라집니다.
audioSource 제대로 부착했고 loop 체크x, PlayOnAwake 체크 등 기본적인 것들은 다 제대로 세팅했습니다.
어떻게 해야 제대로 된 소리를 출력할 수 있나요?
public class SoundManager : Singleton<SoundManager>
{
[Header("BGM")] public AudioSource bgmSource;
[Header("SFX")] public AudioSource sfxSource;
[Header("SFX Clips")] public List<AudioClip> sfxClips;
[Header("BGM Clips")] public List<AudioClip> bgmClips;
public void PlaySFX(string clipName)
{
AudioClip clip = sfxClips.Find(c => c.name == clipName);
if (clip != null)
{
sfxSource.volume = 1f;
sfxSource.PlayOneShot(clip);
}
else
{
Debug.LogError($"SFX clip not found: {clipName}");
}
}
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
쿠쿠쿠쿠쿠쿠님, 게임에서 상황에 맞는 사운드를 제대로 출력하는 문제는 많은 개발자가 겪는 일반적인 문제입니다. 음향 출력 문제는 주로 아래와 같은 원인으로 발생할 수 있습니다.
Audio 파일 설정: 먼저, 재생하려는 사운드 파일(SFX_Money_Get
)이 적절히 설정되어 있는지 확인해야 합니다. Loop 설정이 되어 있지 않아야 하고, 파일이 깨지지 않았는지 확인해 보세요.
서로다른 스레드에서의 호출: 사운드를 처리하는 메소드가 여러 스레드에서 동시에 호출되지 않도록 해야 합니다. 실제로 한 번만 트리거되어야 할 이벤트가 여러 번 트리거될 수 있습니다.
AudioSource 설정 확인: SoundManager.Instance.PlaySFX()
메소드에서 사용되는 AudioSource
의 설정을 점검하세요. 볼륨, 피치, 클립 할당 등을 검사해 주세요.
사운드 매니저 로직: SoundManager.Instance.PlaySFX()
함수 내부 로직을 점검해 보세요. 사운드를 반복처리 하지 않도록 관련 코드를 검토합니다. 또한, 다른 이벤트가 같은 소리를 동시에 트리거하지 않도록 체크하는 부분이 있는지 확인합니다.
기존 질문 게시판에서 유사한 고민을 해결한 예제를 찾아봤습니다. 비슷한 문제가 언급된 게시물은 다음과 같습니다:
시작시 @Sound가 생성안되고있습니다.: Init
메소드에서 Roots의 잘못된 접근으로 인한 문제를 해결합니다. 초기화 과정이나 조건 검증 부분에서 같은 문제가 발생할 수 있으니 참고해 보세요.
타격시 소리를 추가한다고 한다면: 적절한 위치에서 Managers.Sound.Play
메소드 호출의 방법에 대한 고민을 다룹니다. 적절한 시점과 한 번만 실행되도록 하는 방법에 대한 고민이 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.