[Photon엔진강좌] 초보자도 쉽게 할 수 있는 포톤 유니티 네트워크 (PUN) 튜토리얼 4 기초편
작성자 | admin
2020-09-14 |
조회수 : 3422
자 이제 모든 준비는 끝났습니다!
이제 PUN(포톤 유니티 네트워크)에 접속할 준비를 하겠습니다.
먼저 시작 전에
GameManager
GameManager.Char
GameManager.War
GameManager.ETC 4개의 스크립트에서
public partial class GameManager: MonoBehaviour 상속을 모두
public partial class GameManager: Photon.MonoBehaviour
이렇게 고쳐주세요. 그럼 이제 시작합니다~
Project 에서 Scripts > Puzzle 밑에 GameManager.PhotonLobby 스크립트 파일을 만들어주세요.
그다음 MonoDevelop 으로 넘어가서
GameManager.PhotonLobby 를 이렇게 코딩해 줍니다~^^
//------------------------------------------------------------------------------
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using System.Collections;
public partial class GameManager : Photon.MonoBehaviour {
public void OnPhotonRandomJoinFailed(object[] codeAndMsg)
{ // 랜덤방이 없어서 접속에 실패하면
Debug.Log ("OnPhotonRandomJoinFailed");
PhotonNetwork.CreateRoom(null, new RoomOptions() { MaxPlayers = 2}, null); // 스스로 방을 만든다.
}
void OnJoinedRoom(){ // 방에 접속했다.
Debug.Log ("OnJoinedRoom");
// PhotonGameSetting (); // 게임 셋팅
// 다음 튜토리얼에서 실행해 줍니다.
public void BtnJoinRandomRoom(){ //랜덤방에 접속한다.
if (PhotonNetwork.JoinLobby ()) { // 로비에 접속을 하면
PhotonNetwork.JoinRandomRoom ();
} else { // 로비에 접속이 실패하면
BtnJoinRandomRoom (); //다시 접속시작
}
}
유니티 상에서 버튼을 누르면 바로 이 함수를 통해 랜덤으로 방을 찾아서 게임에 접속하게 됩니다. 바로 여기서 네트워크상으로 접속하는 것입니다!!
그런데 로비에 접속을 했는데 방이 한개도 없으면 어떻게 될까요?
그러면 우리는 새로운 방을 만들어서 다른 유저를 기다려야 되겠죠?!
public void OnPhotonRandomJoinFailed(object[] codeAndMsg)
{
Debug.Log ("OnPhotonRandomJoinFailed");
RoomOptions RO = new RoomOptions ();
RO.MaxPlayers = 2; // 방에 최대 접속인원 2명
PhotonNetwork.CreateRoom (null, RO, null); // 방만들기
}
이렇게 접속이 실패하면 유저가 2명이 들어갈 수 있는 방을 만들게 됩니다!!
나중에 게임을 실행하면 접속이 실패했다는 메시지가
Debug.Log ("OnPhotonRandomJoinFailed");
뜨면서 방을 새로 만들게 될 것입니다.
그러면 이제 다 끝났습니다. 우리는 방에 접속할 것입니다!!
void OnJoinedRoom(){ // 방에 접속했다.
Debug.Log ("OnJoinedRoom");
// PhotonGameSetting (); // 게임 셋팅
// 이것은 잠시 주석 처리하겠습니다. 다음 튜토리얼에서 실행해 줍니다.}