728x90
1. Photon의 간단한 설명
여러대의 pc -> photon으로 요청 -> name server -> master-> (Lobby 입장, Room 생성) -> Game
name server까지는 Photon에서 처리해주니 우리는 그 이후인 master, lobby, room, game 등을 제작하면 된다.
나는 master에서 lobby에 입장하고 방을 생성, 입장 그리고 Game씬으로 이동하는 것을 구현 할 것이다.
(어? 너무 간단인가?)
2. Connection Scene
- Empty Gameobject로 Connection Manager 생성
- ConnectionManager.cs 생성
- ConnectionManager.cs를 Connection Manager에 Assign
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// Photon.Pun, Photon.Realtime 선언
using Photon.Pun;
using Photon.Realtime;
// MonoBehaviourPunCallbacks을 상속
public class SimpleConnectionManager : MonoBehaviourPunCallbacks
{
// Start is called before the first frame update
void Start()
{
// Photon 환경설정을 기반으로 접속 시도하는 메서드
PhotonNetwork.ConnectUsingSettings();
}
// Master에 연결됐는지 확인하는 메서드
// MonoBehaviourPunCallbacks에 선언된 메서드 overried
public override void OnConnectedToMaster()
{
base.OnConnectedToMaster(); // base == 부모꺼 먼저 실행 후 내꺼 실행(재정의)
print(nameof(OnConnectedToMaster));
// master scene에 접속했으면
// 로비에 진입
JoinLobby();
}
// Lobby에 접속하는 메서드
void JoinLobby()
{
// 닉네임 설정
// 현재는 임의로 설정
PhotonNetwork.NickName = "동식Park";
// 기본 로비에 입장
PhotonNetwork.JoinLobby();
}
// 로비 진입 완료 메서드
public override void OnJoinedLobby()
{
base.OnJoinedLobby();
print(nameof(OnJoinedLobby));
// 방 생성 or 방 진입
RoomOptions roomOptions = new RoomOptions();
PhotonNetwork.JoinOrCreateRoom("Hacsamo", roomOptions, TypedLobby.Default);
}
// 방 생성 완료 메서드
public override void OnCreatedRoom()
{
base.OnCreatedRoom();
print(nameof(OnCreatedRoom));
}
// 방 생성 실패 메서드
public override void OnCreateRoomFailed(short returnCode, string message)
{
base.OnCreateRoomFailed(returnCode, message);
print(nameof(OnCreateRoomFailed));
}
// 방 진입 완료 메서드
public override void OnJoinedRoom()
{
base.OnJoinedRoom();
print(nameof(OnJoinedRoom));
// Game Scene으로 이동
PhotonNetwork.LoadLevel(1); // build setting 기준 1번 씬으로 이동
}
}
위처럼 코드 작성
제일 아래
PhotonNetwork.LoadLevel(1); // build setting 기준 1번 씬으로 이동
이라는 코드는 아래 Build setting에서 추가 설정을 해줘야한다.
3. Build setting
Connection scene에서 Game Scene으로 이동하기 위해서는 Build setting을 해줘야한다.
ctrl + shift + B > 위처럼 입장할 씬 순서대로 배치를 해준다.
이러면 위 코드에서 1번으로 씬을 이동해달라고 적어뒀으니 build setting 기준으로 1번 씬으로 이동시키는거다.
즉, ConnectionScene에서 GameScene으로 이동하는거다.
4. 결과
0번째로 설정한 씬에서 플레이를 하면, 콘솔창에 위와같이 찍히면서 GameScene으로 이동하는 것을 볼 수 있다.
'동식이 취업시키기 작전 > 기업프로젝트 : Hacsamo' 카테고리의 다른 글
[기업 프로젝트] 01. Photon 시작하기 (0) | 2023.09.16 |
---|---|
[기업 프로젝트] 시작 (0) | 2023.09.16 |