박민혁의 개발

유니티 멀티 포톤 본문

TIL

유니티 멀티 포톤

박민혁_kog 2023. 10. 16. 20:31

01_ 포톤이란?

포톤 (Photon)은 Exit Games에서 개발한 멀티플레이어 게임 개발을 위한 네트워크 엔진입니다. Unity와 같은 게임 엔진과 함께 사용되어 멀티플레이어 기능을 게임에 추가할 수 있게 합니다.

02_ 포톤의 주요 특징

  • Cross-platform: 포톤은 다양한 플랫폼 간에 통신을 지원합니다. 이는 PC, 모바일, 콘솔 게임에서 멀티플레이어를 지원하게 해줍니다.
  • Real-time, Multiplayer: 포톤은 실시간 멀티플레이어 게임 개발에 초점을 맞추고 있습니다.
  • Scalability: 포톤은 클라우드 기반 서버를 사용하여 게임의 플레이어 수에 따라 자동으로 확장되는 기능을 제공합니다.
  • Reliability: 포톤은 데이터 전송에 대한 높은 신뢰성을 제공합니다.

03_ 포톤의 주요 메서드 및 기능

포톤에서 주로 사용되는 몇 가지 중요한 메서드와 클래스에 대해 설명하겠습니다.

  • 1. PhotonNetwork 클래스1.1. ConnectUsingSettings 메서드이 메서드를 호출하면, 앱이 포톤 클라우드에 연결됩니다. 연결 상태는 **PhotonNetwork.IsConnected**로 확인할 수 있습니다.
    PhotonNetwork.CreateRoom("RoomName");
    PhotonNetwork.JoinRoom("RoomName");
    
    CreateRoom 메서드는 새로운 방을 만들고, JoinRoom 메서드는 이미 존재하는 방에 참가합니다.
    PhotonNetwork.Instantiate("PrefabName", position, rotation);
    
    포톤 네트워크를 통해 새로운 게임 오브젝트를 생성합니다. 이 메서드는 Unity의 Instantiate 메서드와 유사하나, 네트워크를 통해 동기화됩니다.
  • 1.3. Instantiate 메서드
  • 1.2. CreateRoom 및 JoinRoom 메서드
  • PhotonNetwork.ConnectUsingSettings();
  • PhotonNetwork 클래스는 포톤 네트워크의 주요 기능에 액세스하는 중심적인 클래스입니다.
  • 2. MonoBehaviourPunCallbacks 클래스2.1. OnConnectedToMaster 메서드게임이 포톤 마스터 서버에 성공적으로 연결되면 호출됩니다.
    public override void OnJoinedRoom() { ... }
    
    로컬 플레이어가 방에 입장하면 호출됩니다.
    public override void OnPlayerEnteredRoom(Player newPlayer) { ... }
    
    다른 플레이어가 방에 입장하면 호출됩니다.
  • 2.3. OnPlayerEnteredRoom 메서드
  • 2.2. OnJoinedRoom 메서드
  • public override void OnConnectedToMaster() { ... }
  • MonoBehaviourPunCallbacks 클래스는 포톤의 주요 이벤트에 대한 콜백 메서드를 제공합니다.

04_ 주요 컴포넌트 및 기능

  • 컴포넌트 소개
    1. PhotonView
    2. PhotonView는 포톤 네트워크에서 네트워크 상태를 동기화하는 데 사용됩니다. 이 컴포넌트를 통해 PhotonNetwork.Instantiate를 사용해 생성된 객체가 네트워크를 통해 동기화됩니다. PhotonView는 주로 Transform 컴포넌트나 사용자 정의 스크립트와 같이 동기화하고자 하는 컴포넌트를 참조합니다.
    3. PhotonTransformView
    4. PhotonTransformView는 위치, 회전, 및 크기를 동기화하는 데 사용되는 컴포넌트입니다. PhotonView에 추가하여 사용하며, 이 컴포넌트를 통해 게임 오브젝트의 움직임이 네트워크를 통해 동기화됩니다.
    5. PhotonAnimatorView
    6. PhotonAnimatorView는 Animator 컴포넌트를 동기화하는 데 사용됩니다. 이 컴포넌트는 PhotonView와 함께 사용되며, 애니메이션 상태와 변수를 동기화하는 데 사용됩니다.
    7. PhotonRigidbodyView
    8. PhotonRigidbodyView는 Rigidbody 또는 Rigidbody2D 컴포넌트를 동기화하는 데 사용됩니다. 이 컴포넌트는 움직임과 회전을 동기화하여 물리적 효과를 네트워크를 통해 동기화할 수 있습니다.
  • 포톤에서 주요하게 사용되는 컴포넌트 몇 가지를 설명하겠습니다.

'TIL' 카테고리의 다른 글

유니티 사운드 매니저  (0) 2023.10.19
조던 메크너의 게임 제작 20가지 팁  (1) 2023.10.17
유니티 깃 머지 주의사항  (0) 2023.10.13
유니티 구글 모브앱 넣기  (0) 2023.10.12
유니티 URP란  (0) 2023.10.05