오프라인 모드
오프라인 모드는 멀티 플레이어 코드를 싱글 플레이어 게임 모드에서도 재사용할 수 있는 기능입니다.
싱글 플레이어에서 사용하고 싶은 가장 일반적인 기능은 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
: returnsTime.time
.PhotonNetwork.IsMasterClient
: 항상 true.PhotonNetwork.AllocateViewID()
: 예상 한대로 동작함.PhotonNetwork.Instantiate
: 예상 한대로 동작함.PhotonNetwork.Destroy
: 예상 한대로 동작함.PhotonNetwork.RemoveRPCs/RemoveRPCsInGroup/SetInterestGroups/SetSendingEnabled/SetLevelPrefix
: 싱글 플레이어에서는 의미는 없으며 아무런 영향이 없습니다.PhotonView.RPC
: 예상 한대로 동작함.
위에 있는 이외의 속성 또는 메소드를 사용하는 것은 예상치 못한 결과가 나올 수 있거나 아무런 동작을 하지 않을 수도 있다는 것에 주의하세요.
싱글 플레이어에서 게임을 시작하고 나중에 멀티 플레이어로 이동하려면 1 플레이어 게임을 호스팅 하는 것이 좋습니다.
이렇게 하면 버퍼링된 RPC및 인스턴스화 호출이 보존되는 반면, 오프라인 모드 인스턴스는 연결 후 자동으로 수행되지 않습니다.
오프라인 모드를 중지하려면 PhotonNetwork.OfflineMode = false;
로 설정하거나 Connect()
를 호출하면 됩니다.