스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록

2024.06.24 TIL - Photon Pun2

테크러너 2024. 6. 24.

포톤의 주요 클래스

1. PhotonNetwork 클래스

PhotonNetwork 클래스는 포톤 네트워크의 주요 기능에 액세스하는 중심적인 클래스이다.

1.1. ConnectUsingSettings 메서드

PhotonNetwork.ConnectUsingSettings();

이 메서드를 호출하면, 앱이 포톤 클라우드에 연결된다. 연결 상태는 PhotonNetwork.IsConnected로 확인할 수 있다.

 

1.2. CreateRoom 및 JoinRoom 메서드

PhotonNetwork.CreateRoom("RoomName");
PhotonNetwork.JoinRoom("RoomName");
PhotonNetwork.JoinOrCreateRoom("RoomName"); // 없으면 만들고 있으면 들어감

CreateRoom 메서드는 새로운 방을 만들고, JoinRoom 메서드는 이미 존재하는 방에 참가한다.

 

1.3. Instantiate 메서드

PhotonNetwork.Instantiate("PrefabName", position, rotation);

포톤 네트워크를 통해 새로운 게임 오브젝트를 생성한다. 이 메서드는 Unity의 Instantiate 메서드와 유사하나, 네트워크를 통해 동기화된다.

 

2. MonoBehaviourPunCallbacks 클래스

MonoBehaviourPunCallbacks 클래스는 포톤의 주요 이벤트에 대한 콜백 메서드를 제공한다.

2.1. OnConnectedToMaster 메서드

public override void OnConnectedToMaster() { ... }

게임이 포톤 마스터 서버에 성공적으로 연결되면 호출된다.

 

2.2. OnJoinedRoom 메서드

public override void OnJoinedRoom() { ... }

로컬 플레이어가 방에 입장하면 호출된다.

 

2.3. OnPlayerEnteredRoom 메서드

public override void OnPlayerEnteredRoom(Player newPlayer) { ... }

다른 플레이어가 방에 입장하면 호출된다.

 

주요 컴포넌트 및 기능

PhotonView

PhotonView는 포톤 네트워크에서 네트워크 상태를 동기화하는 데 사용된다. 이 컴포넌트를 통해 PhotonNetwork.Instantiate를 사용해 생성된 객체가 네트워크를 통해 동기화된다. PhotonView는 주로 Transform 컴포넌트나 사용자 정의 스크립트와 같이 동기화하고자 하는 컴포넌트를 참조한다.

RPC

RPC는 Remote Procedure Call의 약자로, 다른 유저들의 클라이언트에서 메소드를 실행시킬 수 있도록 한다.

포톤에서 RPC로 실행하기 위해서는 메소드에 [PunRPC] 어트리뷰트를 추가해야 하며, RPC를 실행할 때는 PhotonView.RPC(”RPC메소드명”, RPC타겟, [파라미터]);으로 작성해야 한다.

PhotonTransformView

PhotonTransformView는 위치, 회전, 및 크기를 동기화하는 데 사용되는 컴포넌트이다.

PhotonView에 추가하여 사용하며, 이 컴포넌트를 통해 게임 오브젝트의 움직임이 네트워크를 통해 동기화된다.

 

PhotonAnimatorView

PhotonAnimatorView는 Animator 컴포넌트를 동기화하는 데 사용된다.

이 컴포넌트는 PhotonView와 함께 사용되며, 애니메이션 상태와 변수를 동기화하는 데 사용된다.

 

PhotonRigidbodyView

PhotonRigidbodyView는 Rigidbody 또는 Rigidbody2D 컴포넌트를 동기화하는 데 사용된다.

이 컴포넌트는 움직임과 회전을 동기화하여 물리적 효과를 네트워크를 통해 동기화할 수 있다.

반응형

댓글