PUN Classic (also called PUN1) is the original and first major version of PUN. It is now replaced by PUN2 which is refactored and enhanced. We highly recommend starting new projects with PUN2 and if possible migrating existing ones from PUN1 to PUN2 by following our "Migration Notes". PUN Classic will be maintained for the coming months. We will fix important bugs and support new Unity versions but new features will be added only to PUN2.

オフラインモード

オフラインモードは、マルチプレイヤーコードをシングルプレイヤーゲームモードで再利用できるようにする機能です。

シングルプレイヤーでもっとも需要が高い機能は、RPCの送信とPhotonNetwork.Instantiateの使用です。 オフラインモードの主な目的は、接続していない場合にPhotonNetwork機能を使用して、null参照やその他のエラーを非有効化することです。 ゲームの設定などで、シングルプレイヤーゲームを実行している点の履歴を把握したい場合などがあると思います。 ゲーム実行時にすべてのコードが再利用可能となります。

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()を呼び出してください。

To Document Top