유니티로 온라인 게임 한 번 만들어보고 있음

서버는 C++로 만들고 있고

MMORPG처럼 실시간 온라인


UDP로 통신하고 있는데

다른 플레이어의 위치정보 업데이트를 싱글턴 패턴 GameManager의 Update 메서드에서 RecvBuffer를 부르고 있음.

아래는 RecvBuffer 예제

24b0d121e09c28a8699fe8b115ef046f594b9e


여기서 문제가

Receive 메서드를 호출하는 순간 반환을 받을 때까지 대기하고 있어야 한다는 거임.

유니티 프로그램 자체가 멈춰버림


게임이 돌아가는 작업이랑 서버에서 정보 불러오는 작업을 동시에 진행해야 하니까..

그래서 결론은 멀티스레드나 비동기를 사용해야 하는데 둘 중 어느쪽을 선택해야 할지 모르겠음


리턴값 원활하게 받으려면 비동기를 선택해야 하나 싶고

작업 밀리지 않게 하려면 멀티스레드를 선택해야 하나 싶고