포톤의 주요 클래스
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 컴포넌트를 동기화하는 데 사용된다.
이 컴포넌트는 움직임과 회전을 동기화하여 물리적 효과를 네트워크를 통해 동기화할 수 있다.
'스파르타 게임개발종합반(Unity) > TIL - 본캠프 매일 공부 기록' 카테고리의 다른 글
2024.06.26 TIL - 아이템 오브젝트가 SetActive(false)일 때 코루틴 사용 (0) | 2024.06.27 |
---|---|
2024.06.25 TIL - Photon에서 오브젝트풀링 사용하기 (2) | 2024.06.25 |
2024.06.21 TIL - 이벤트 구독 취소의 중요성 (0) | 2024.06.21 |
2024.06.20 TIL - 유니티 아이소메트릭(Isometric) 타일맵(Tilemap)에서 오브젝트 랜덤 생성하기 (2) | 2024.06.20 |
2024.06.19 TIL - 기초적인 네트워크 지식 (0) | 2024.06.19 |
댓글