게임 개발/Unity

[유니티 C#] PhotonNetwork 기본 콜백함수 찍먹하기

Heesuk Lee 2021. 6. 9. 19:01

포톤네트워크를 사용해 함수를 구현하시면 편리하게도

서버에 입장하고, 로비, 룸에 입장할때 호출되는 콜백 함수들이 있습니다.

 

오늘은 서버에 접속해서 방에 들어가기까지 대략적인 파악정도만을 위해 작성하고

추후에 디테일한 UI 구성까지 함께 파보겠습니다!

 

인게임에 들어가기전에 아웃게임에서 크게 챕터를 나누자면 접속, 로비, 룸 이렇게 나뉘는 것 같습니다.

 

1. 서버 연결 및 연결해제 파트

접속시간 딜레이가 있어서 로딩화면도 띄워주면 좋습니다.

public void OnConnect()
{
	// 서버 접속 함수
    PhotonNetwork.ConnectUsingSettings();
}

public void OnDisconnect()
{
	// 접속 종료 함수
    PhotonNetwork.Disconnect();
}

public override void OnConnectedToMaster()
{
	// 서버 접속 완료 콜백
}

public override void OnDisconnected(DisconnectCause _cause)
{
	// 접속 종료 완료 콜백
}

 

2. 로비 입장 및 퇴장 파트

함수중에는 현재 생성된 방 리스트또한 구현할 수 있습니다.

public void OnJoinLobby()
{
	// 로비 입장 함수
    PhotonNetwork.JoinLobby();
}
public void OnLeaveLobby()
{
	// 로비 퇴장 함수
    PhotonNetwork.LeaveLobby();
}
public override void OnJoinedLobby()
{
	// 로비 접속 완료 콜백
}
public override void OnLeftLobby()
{
	// 로비 퇴장 완료 콜백
}  
public override void OnRoomListUpdate(List<RoomInfo> _roomList)
{
  	// 룸 리스트 초기화 - 현재 생성된 룸들의 정보가 담긴 리스트가 매개변수로 온다.
    // 로비 내에 룸이 생성되거나 사라질때 자동 호출되는 콜백
}

 

 

3. 룸 생성 및 입장, 랜덤입장 파트

 

실패이유는 현재 생성된 방이없어서...

public void OnCreateRoom(string _roomName)
{
	// 룸 생성 함수 - roomName을 key값으로 room을 생성합니다.
    string roomName = (_roomName == "") ? "Room" + Random.Range(0, 100) : _roomName;
    PhotonNetwork.CreateRoom(roomName, new RoomOptions { MaxPlayers = 8 });
}

public void OnJoinRoom(string _roomName)
{
	// 룸 입장 함수 - roomName을 key값으로 검색해 입장합니다.
    PhotonNetwork.JoinRoom(_roomName);
}

public void OnJoinRandomRoom()
{
	// 룸 랜덤입장 함수
    PhotonNetwork.JoinRandomRoom();
}

//// 성공 콜백
public override void OnCreatedRoom()
{
	// 룸 생성 완료 콜백
}
public override void OnJoinedRoom()
{
	// 룸 입장 완료 콜백 - 랜덤입장도 성공하면 여기 콜백 호출
}

//// 실패 콜백
public override void OnCreateRoomFailed(short _returnCode, string _message)
{
	// 룸 생성 실패 콜백
}
public override void OnJoinRoomFailed(short _returnCode, string _message)
{
	// 룸 입장 실패 콜백
}
public override void OnJoinRandomFailed(short _returnCode, string _message)
{
	// 룸 랜덤입장 실패 콜백
}  

 

이렇게 인게임이전에 파악해야할 접속, 로비, 룸 3가지에 대해서 대략적인 콜백함수만 파악해봤습니다.

 

이렇게 크게한번 파악하고 하나하나 접근하는 방식이 저에게도 좋은 공부법이라고 생각되는군요!

 

다음시간에는 1-1 서버접속과 위에서 보여드린 경고창, 로딩중 표시까지 함께 작성해보겠습니다!

반응형