This document is about: PUN 1
SWITCH TO

PUN Classic (v1), PUN 2, Bolt는 휴업 모드입니다. Unity2022에 대해서는 PUN 2에서 서포트하지만, 신기능의 추가는 없습니다. 현재 이용중인 고객님의 PUN 및 Bolt 프로젝트는 중단되지 않고, 퍼포먼스나 성능이 떨어지는 일도 없습니다. 앞으로의 새로운 프로젝트에는 Photon Fusion 또는 Quantum을 사용해 주십시오.

오프라인 모드

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

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

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

C#

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() 를 호출하면 됩니다.

Back to top