PUN Classic(PUN1이라고도 불립니다)은 PUN의 첫 버전입니다.         현재는 리팩토링 및 기능 확장에 의해 PUN2로 새롭게 바뀌었습니다.          새 프로젝트에는 PUN2를 이용해 주시고, 기존의 프로젝트도 가능하면 PUN1에서 PUN2로 옮기는 것을 권장합니다.  자세한 내용은: "마이그레이션 노트". PUN Classic은 곧 점검이 시작됩니다.        중요한 버그의 수정과 Unity의 신버전의 지원 등을 예정하고 있습니다. 신기능의 추가는 PUN2에서만 이루어지므로 주의해 주십시오.

오프라인 모드

오프라인 모드는 멀티 플레이어 코드를 싱글 플레이어 게임 모드에서도 재사용할 수 있는 기능입니다.

싱글 플레이어에서 사용하고 싶은 가장 일반적인 기능은 RPC전송과 PhotonNetwork.Instantiate 입니다. 오프라인 모드의 주요 목적은 연결이 되지 않았을 때 null 참조가 되지 않도록 하고 PhotonNetwork 기능을 사용할 때 오류가 발생하지 않도록 하는 것 입니다. 게임등의 설정을 위해 싱글 플레이어 게임을 실행하고 있다는 사실을 계속 추적해야할 필요가 있습니다. 하지만 게임을 실행하는 동안에, 모든 코드는 재사용이 가능해야 합니다.

PhotonNetwork가 의도에 의한 에러임을 판단하기 위해 수동으로 오프라인을 켜야 합니다. 이 기능을 사용하는 것은 쉽습니다:

PhotonNetwork.offlineMode = true;

true로 설정하면, Photon은 OnConnectedToMaster() 콜로 콜백한다음 룸을 생성할 수 있으며, 이 룸은 오프라인이 될 것입니다.

이제 연결 및 오류 없이 특정 멀티 플레이어 방법을 재사용할 수 있습니다. 게다가 눈에 띄는 오버 헤드도 없습니다. 다음은 PhotonNetwork기능 및 변수들과 오프라인 모드에서 수행되는 결과입니다:

  • PhotonNetwork.player: 플레이어 ID는 항상 -1 입니다.
  • PhotonNetwork.playerName: 예상했던대로 동작합니다.
  • PhotonNetwork.playerList: 로컬 플레이어만 들어있습니다.
  • PhotonNetwork.otherPlayers 항상 비어있습니다.
  • PhotonNetwork.time: returns Time.time.
  • PhotonNetwork.isMasterClient: 항상 true 입니다.
  • PhotonNetwork.AllocateViewID(): 예상했던대로 동작합니다.
  • PhotonNetwork.Instantiate: 예상했던대로 동작합니다.
  • PhotonNetwork.Destroy: 예상했던대로 동작합니다.
  • PhotonNetwork.RemoveRPCs/RemoveRPCsInGroup/SetReceivingEnabled/SetSendingEnabled/SetLevelPrefix: 싱글 플레이어에서는 의미는 없으며 아무런 영향이 없습니다.
  • PhotonView.RPC: 예상했던대로 동작합니다.

위에 있는 이외의 속성 또는 메소드를 사용하는 것은 예상치 못한 결과가 나올 수 있거나 아무런 동작을 하지 않을 수도 있습니다. 예, PhotonNetwork.room은 명백히 null을 리턴합니다. 싱글 플레이어에서 게임을 시작하고 나중에 멀티 플레이어로 이동하려면 1 플레이어 게임을 호스팅 하는 것이 좋습니다. 이렇게 하면 버퍼링된 RPC및 인스턴스화 호출이 보존되는 반면, 오프라인 모드 인스턴스는 연결 후 자동으로 수행되지 않습니다.

오프라인 모드를 중지하려면 PhotonNetwork.offlineMode = false; 로 설정하거나 Connect() 를 호출하면 됩니다.

기술문서 TOP으로 돌아가기