[내일배움캠프 TIL] Photon Engine

KYJ의 Tech Velog·2023년 10월 10일
0

TIL

목록 보기
43/71
post-thumbnail

Today I Learned

오늘은 Photon Engine에 대해 이야기해보고자 합니다.

Photon Engine

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

Photon Engine의 주요 특징

포톤(Photon Engine)의 주요 특징은 다음과 같습니다.

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

Photon Engine의 주요 클래스 및 메서드

포톤의 주요 클래스와 메서드는 다음과 같습니다.

PhotonNetwork 클래스

PhotonNetwork 클래스는 주요 기능에 접근하는 중심적인 클래스입니다.

  • ConnectUsingSettings
    게임을 포톤 클라우드에 연결하는 메서드입니다.
PhotonNetwork.ConnectUsingSettings();
Debug.Log(PhotonNetwork.IsConnected); // true
  • CreateRoom, JoinRoom
    새로운 방을 만들고 참가하는 메서드입니다.
PhotonNetwork.CreateRoom("RoomName");
PhotonNetwork.JoinRoom("RoomName");
  • Instantiate
    포톤 네트워크를 통해 새로운 게임 오브젝트를 생성합니다. 기존 Unity의 Instantiate와 동일하지만 네트워크를 통해 동기화된다는 차이가 있습니다.
PhotonNetwork.Instantiate("PrefabName", position, rotation);
MonoBehaviourPunCallbacks 클래스

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

  • OnConnectedToMaster
    게임을 포톤 마스터 서버에 성공적으로 연결되면 호출되는 메서드입니다.
public override void OnConnectedToMaster() { ... }
  • OnJoinedRoom
    로컬 플레이어가 방에 입장하면 호출되는 메서드입니다.
public override void OnJoinedRoom() { ... }
  • OnPlayerEnteredRoom
    다른 플레이어가 방에 입장하면 호출되느 메서드입니다.
public override void OnPlayerEnteredRoom(Player newPlayer) { ... }

Photon Engine의 주요 컴포넌트

포톤의 주요 컴포넌트는 다음과 같습니다.

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

  2. PhotonTransformView
    PhotonTransformView는 위치, 회전, 및 크기를 동기화하는 데 사용되는 컴포넌트입니다. PhotonView에 추가하여 사용하며, 이 컴포넌트를 통해 게임 오브젝트의 움직임이 네트워크를 통해 동기화됩니다.

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

  4. PhotonRigidbodyView
    PhotonRigidbodyView는 Rigidbody 또는 Rigidbody2D 컴포넌트를 동기화하는 데 사용됩니다. 이 컴포넌트는 움직임과 회전을 동기화하여 물리적 효과를 네트워크를 통해 동기화할 수 있습니다.

Tomorrow's Goal

  • 개인 과제에 포톤 적용
  • 코드 카타 Clear

0개의 댓글