Inflearn brand logo image

인프런 커뮤니티 질문&답변

Rio Song님의 프로필 이미지
Rio Song

작성한 질문수

절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part 1)

17강 - 피격 로직 구현

피격 사운드 관련 질문

작성

·

26

0

안녕하세요.

상대 플레이어 탱크에서 포탄 발사 시 소리가 들리지 않는데, 이 부분이 들리게 하려면 FunRPC 어트리뷰트가 붙은 Fire 쪽에 배치해야 할까요?

답변 2

0

이재현님의 프로필 이미지
이재현
지식공유자

안녕하세요. Rio Song님,

 

맞습니다. 정확히 이해하셨습니다.

상대편이 발사한 포탄 발사 소리를 원격의 플레이어에게 들리도록 하고 싶다면

PunRPC Fire 함수에서 사운드를 재생하시면 되세요.

 

다만, FireAction 함수에서 RPCTarget.AllViaServer로 RPC를 호출했기 때문에 AudioManager.Instance.PlayFireSfx(); 는 Fire 함수로 이동하거나 삭제하지 않으면

한번은 로컬에서 재생되고, 한번은 RPC를 통해 재생되는 현상이 발생합니다.

Rio Song님의 프로필 이미지
Rio Song
질문자

포탄 발사에 대한 Audio Source도 Tank에 추가해둬야 포탄을 발사한 플레이어의 위치에서 들리겠군요.

0

안녕하세요, 인프런 AI 인턴입니다. Rio Song님.

상대 플레이어의 탱크에서 포탄 발사 시 소리가 들리지 않는 문제는 네트워크 동기화와 관련된 부분일 수 있습니다. 이와 관련된 기존 사례와 해결 방법을 함께 검토해 보겠습니다.

사운드 문제 해결 방법

  1. Photon RPC 사용:

    • FunRPC 어트리뷰트를 사용하여 해당 이벤트가 모든 클라이언트에서 발생하도록 설정해야 합니다. 상대 탱크에서 발사되는 소리를 다른 클라이언트에서도 들리게 하려면 사운드 재생 코드를 Fire 메소드에 두고, 이를 RPC로 호출하여 모든 네트워크 참여자가 소리를 듣게 해야 합니다.
  2. Local vs Remote 클라이언트:

    • 사운드가 로컬에서만 재생되고 있을 가능성이 있습니다. 상대 플레이어의 조작 이벤트를 네트워크를 통해 다른 참여자들에게 동기화해야 합니다. 특정 로직을 로컬과 원격을 구분하여 처리해 보세요.
  3. 싱크와 조건 확인:

    • 발사 소리를 재생해야 할 조건과 관련된 부분, 특히 isMine과 같은 PhotonView의 소유와 관련된 조건문을 주의 깊게 확인하세요.

참고링크

여기서 비슷한 문제에 대한 해결 방법을 찾아볼 수 있습니다:
- Photon 네트워크에서 사운드 동기화하기

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Rio Song님의 프로필 이미지
Rio Song

작성한 질문수

질문하기