- 개요
로비에 입장해있는 동안 버튼을 눌러 다른 상대와 매칭하는 설정을 추가한다
또 매칭을 기다리는 동안 취소 버튼을 눌러 매칭을 취소하는 설정도 추가한다
추가하는 설정에 맞춰 새롭게 생성하는 패킷들은 다음과 같다
- FindOpponentRequest 패킷 : 클라이언트에서 서버로 전달하여 다른 상대를 매칭할 것을 요청
- CancleFindOpponentRequest 패킷 : 클라이언트에서 서버로 전달하여 매칭을 취소할 것을 요청
- OnFindOpponent 패킷 : 서버에서 클라이언트로 전달하여 매칭을 진행
- 서버 + 클라이언트 공용
1) PacketType 클래스

PacketType 클래스에 새로운 설정에 맞춰 패킷 타입을 추가한다
각각 매칭 요청 + 매칭 취소 + 매칭을 의미하는 패킷으로서 사용한다
2) Net_FindOpponentRequest 클래스

Net_FindOpponentRequest 패킷 클래스를 위와 같이 생성한다
해당 클래스는 클라이언트에서 서버로 전송하여 다른 플레이어와의 매칭을 요청하는 용도로 사용한다
2) Net_CancleFindOpponentRequest 클래스

Net_CancleFindOpponentRequest 패킷 클래스를 위와 같이 생성한다
해당 클래스는 클라이언트에서 서버로 전송하여 진행중인 매칭을 취소하는 용도로 사용한다
- 서버 사이드
1) FindOpponentRequestHandler 클래스

클라이언트로부터 수신된 Net_FindOpponentRequest 패킷을 핸들링하는 핸들러 클래스를 생성한다
Handle 함수는 위와 같이 임시적으로 구성하여 패킷의 수신 여부를 확인한다
2) CancleFindOpponentRequestHandler 클래스

클라이언트로부터 수신된 Net_CancleFindOpponentRequest 패킷을 핸들링하는 핸들러 클래스를 생성한다
Handle 함수도 마찬가지로 임시적으로 구성하여 패킷의 수신 여부를 확인한다
- 클라이언트 사이드
1) UI_Lobby 클래스

위와 같이 3개의 멤버변수를 추가한다
각각 다음과 같다
- 대전 상대를 매칭하는 버튼 UI
- 매칭 상태동안 활성화되는 부모 UI
- 부모 UI의 자식 UI로서 매칭을 취소하는 버튼 UI

Start 함수에 위와 같이 로직을 추가한다
- 매칭 상태동안 활성화되는 UI를 설정 + 매칭 취소 버튼의 onClick 이벤트에 CancelFindOpponent 함수 연결
- 대전 상대를 매칭하는 버튼의 onClick 이벤트에 FindOpponent 함수 연결

FindOpponent 함수의 로직은 위와 같다
LeanTweener의 애니메이션을 재설정하고 매칭 상태동안 활성화되는 UI를 작동시킨다
이후 Net_FindOpponentRequest 패킷을 생성하고 서버로 전송한다

CancelFindOpponent 함수의 로직은 위와 같다
매칭 상태동안 활성화되는 UI를 비활성화하고 Net_CancleFindOpponentRequest 패킷을 생성하고 서버로 전송한다
- 최종 실행 결과
'유니티 엔진 - 게임 프로젝트 > 데디케이트 기반 모바일 게임' 카테고리의 다른 글
| 로비 구현 - 최종) 다른 상대 탐색 (0) | 2025.12.23 |
|---|---|
| 로비 구현 - 5) 다른 상대 탐색 준비 (0) | 2025.12.22 |
| 로비 구현 - 3) ParrelSync 패키지의 사용 + 플레이어간의 퇴장 동기화 (0) | 2025.12.16 |
| 로비 구현 - 2) 상위 점수 플레이어 정보 + 접속중인 플레이어 정보 사용 (0) | 2025.12.16 |
| 로비 구현 - 1) 서버상태 동기화 (0) | 2025.12.15 |