This document is about: PUN 2
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.LocalPlayer: 액터 번호는 항상 -1.
  • PhotonNetwork.NickName: 예상 한대로 동작함.
  • PhotonNetwork.PlayerList: 로컬 플레이어만 있음.
  • PhotonNetwork.PlayerListOthers 항상 비어있음.
  • PhotonNetwork.Time: returns Time.time.
  • PhotonNetwork.IsMasterClient: 항상 true.
  • PhotonNetwork.AllocateViewID(): 예상 한대로 동작함.
  • PhotonNetwork.Instantiate: 예상 한대로 동작함.
  • PhotonNetwork.Destroy: 예상 한대로 동작함.
  • PhotonNetwork.RemoveRPCs/RemoveRPCsInGroup/SetInterestGroups/SetSendingEnabled/SetLevelPrefix: 싱글 플레이어에서는 의미는 없으며 아무런 영향이 없습니다.
  • PhotonView.RPC: 예상 한대로 동작함.

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

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

Back to top