언리얼엔진(UE)

[UE] 숫자 야구 게임 #2 (함수 중복 호출 문제해결)

2h1824 2025. 3. 17. 22:06

1. 문제 상황

  • 클라이언트의 입력과 서버의 3자리 난수를 비교하여 판정하는 함수를 호출하는 이벤트 작성 중
  • 현재 ResultJudgment 함수의 실행 결과를 출력하는 부분이 2번 중복되어 출력되는 상황

2. 해결 과정

  • 코드에 이상이 있나 확인
    ㅡ> 로그를 추가하며 확인해 보아도 함수 호출 자체가 2번 되는 것이지 함수 내에 이상이 있어 보이진 않음
  • 의심가는 중복 호출 원인: 블루프린트에서 함수 자체를 2번 호출하는 것일 가능성이 있음
  • 블루 프린트 확인
    ㅡ> 현재 이벤트 구성이 서버에 존재하는 모든 클라이언트에게 Got BroadCast 함수를 호출시키는 형태
    ㅡ> 즉, For Each Loop 노드 뒤에 위치한 노드들은 클라이언트 수만큼 호출되는 형태

  • Sequence로 모든 클라이언트에게 호출해야 하는 함수의 호출을 먼저 진행
  • 이후 클라이언트의 입력에 따른 판정을 위해 ResultJudgment 함수 따로 호출
    ㅡ> 이를 통해 한 번 호출되도록 보장

  • 디버깅을 위해 잠시 화면에 서버측의 3자리 난수 출력

  • 입력에 대한 판정 출력이 단 한 번 이루어짐
  • 더불어 이전에 작성했던 판정 관련 로직이 정상 작동하는 것을 확인

3. 정리

  • 입력에 대한 판정 로직 수정
  • 중복 출력 문제 해결

참고자료