Migration Notes

PUN 2はたくさんの互換性を破る変更とアップデートを一つのパッケージに統合したものですが、ご存知の通り全体的な使用方法はPUNと似ています。 PUN 1.xとは別のパッケージなのでいつアップデートするかは自身で決められます。また、いつでもPUNに戻れます。

もしPUN Plus (v1.x)を使用中でPUN 2にアップデートを希望される場合は、PUN 2 Freeパッケージでも既存のAppIDをそのまま使用してください。メリットは全て引き継がれます。

アップデートするにはPUNを完全に削除してPUN 2をクリーンインストールするのが、必要とされるAPIとロジックの変更に対応するのにベストな方法です。このページでは大幅な変更の確認ができますが、全てをカバーしているわけではありません。

概要

  • PUN 2にはRealtime APIが用意されていて利用できます。これはUnity指定ではありません。
  • 2つのレイヤのための特徴的なネームスペース( Photon.PunPhoton.Realtime)があります。
  • ベストリージョンセレクションとコールバックのシステムはRealtime API内で実行されるようになりました。
  • ConnectUsingSettings()のみがPhotonServerSettingsを使用しています。
  • 多くのコールバック、メソッド、およびフィールドの名前が様々な理由で変更されました。 詳細はこちら
  • コールバックの場合、クラスはインターフェースを実装し、関心があるものとして登録する必要があります。 詳細はこちら
  • MonoBehaviourPunCallbacksはほとんどのコールバックを実装しているため、それらを継承およびオーバーライドできます。 詳細はこちら

Back To Top

APIの変更

  • PhotonNetwork.autoJoinLobby はなくなりました。ロビーが必要でない限り参加しないでください。
  • PhotonNetwork.GetRoomList() はなくなりました。ILobbyCallbacks.OnRoomListUpdate(List<RoomInfo> roomList)コールバックからルームのリストを呼び出して、任意でキャッシュできます。   
  • PhotonNetwork.FriendsListはなくなりました。IMatchmakingCallbacks.OnFriendListUpdate(List<FriendInfo> friendList)コールバックからフレンドリストを取得し任意でキャッシュできます。
  • PhotonNetwork.LobbyStatisticsはなくなりました。 有効にすると、 ILobbyCallbacks.OnLobbyStatisticsUpdate(List<TypedLobbyInfo> lobbyStatistics)コールバックからロビー統計リストを取得できます。 必要に応じて、オプションでキャッシュ、更新、クリアできます。
  • PhotonNetwork.connecting はなくなりました。
  • PhotonNetwork.connectionState はなくなりました。
  • PhotonNetwork.isNonMasterClientInRoom はなくなりました。
  • PhotonNetwork.autoCleanUpPlayerObjects はなくなりました。設定はルーム毎ですので、RoomOptionsで確認できます。例: PhotonNetwork.CreateRoom(null, new RoomOptions() { CleanupCacheOnLeave = true });
  • PhotonNetwork.networkingPeer はなくなりました。 ここで処理していたタスクはPhotonNetworkクラス内もしくはPhotonNetwork.NetworkingClient内でダイレクトに処理されるようになりました。
  • PhotonNetwork.ConnectUsingSettings()gameVersionパラメーターを取らなくなりました。 代わりに、PhotonServerSettingsのUnity Editorから設定されたAppVersionパラメーターは、AppSettingsセクションが PhotonNetwork.GameVersionとして使用されます。 コードから PhotonNetwork.GameVersionを設定する場合は、次のいずれかを実行できます。
    • PhotonNetwork.ConnectUsingSettings()を呼び出したPhotonNetwork.GameVersionを設定
    • PhotonNetwork.ConnectUsingSettings()を呼び出す前に PhotonNetwork.PhotonServerSettings.AppSettings.AppVersionを設定
  • ConnectUsingSettings()のみがPhotonServerSettingsを利用しています。 他の接続方法を使用する場合、アプリはAppIdおよびその他の値を手動で設定する必要があります(設定によってこれらの値が上書きされることはありません)。
  • ServerSettings.EnableLobbyStatisticsServerSettings.AppSettings.EnableLobbyStatisticsに移動されました。
  • ServerSettings.AppIDServerSettings.AppSettings.AppIdRealtimeに移動されました。
  • ServerSettings.VoiceAppIDServerSettings.AppSettings.AppIdVoiceに移動されました。
  • ServerSettings.ChatAppIDServerSettings.AppSettings.AppIdChatに移動されました。
  • ServerSettings.NetworkLoggingServerSettings.AppSettings.NetworkLoggingに移動されました。
  • ServerSettings.ServerAddressServerSettings.AppSettings.Serverに移動されました。
  • ServerSettings.ServerPortServerSettings.AppSettings.Portに移動されました。
  • ServerSettings.ProtocolServerSettings.AppSettings.Protocolに移動されました。
  • PUN2ではUserIdが設定されていない場合、ニックネームに設定されなくなりました。 PUN1で設定されていました。
  • PhotonNetwork.LoadLevelAsync()はなくなりました。   PUN2では設計によりPhotonNetwork.LoadLevelはデフォルトで常に非同期になりました。 レベルのロードの進行状況を取得するには、 PhotonNetwork.LevelLoadingProgressを使用します。

    ### ネームスペースの変更

    • RoomOptionsPhoton.Realtime ネームスペースにあります。
    • AuthenticationValuesPhoton.Realtime ネームスペースにあります。
  • RoomInfoPhoton.Realtimeネームスペースにあります。
  • RoomPhoton.Realtimeネームスペースにあります。
  • FriendInfoPhoton.Realtimeネームスペースにあります。
  • TypedLobbyInfoPhoton.Realtimeネームスペースにあります。
  • TypedLobbyPhoton.Realtimeネームスペースにあります。
  • LobbyTypePhoton.Realtimeネームスペースにあります。
  • RaiseEventOptionsPhoton.Realtimeネームスペースにあります。
  • WebRpcResponsePhoton.Realtimeネームスペースにあります。
  • IPunObservablePhoton.Pun ネームスペースにあります。

Back To Top

名称変更

CamelCaseからPascalCaseへ

パブリックフィールドとプロパティ:

  • photonView.isMinephotonView.IsMineになりました。
  • photonView.ownerphotonView.Ownerになりました。
  • PhotonNetwork.automaticallySyncScenePhotonNetwork.AutomaticallySyncSceneになりました。
  • PhotonNetwork.gameVersionPhotonNetwork.GameVersionになりました。
  • PhotonNetwork.masterClientPhotonNetwork.MasterClientになりました。
  • PhotonNetwork.isMasterClientPhotonNetwork.IsMasterClientになりました。
  • PhotonNetwork.inRoomPhotonNetwork.InRoomになりました。
  • PhotonNetwork.isMessageQueueRunningPhotonNetwork.IsMessageQueueRunningになりました。
  • PhotonNetwork.offlineModePhotonNetwork.OfflineModeになりました。
  • PhotonNetwork.countOfPlayersOnMasterPhotonNetwork.CountOfPlayersOnMasterになりました。
  • PhotonNetwork.countOfPlayersInRoomsPhotonNetwork.CountOfPlayersInRoomsになりました。
  • PhotonNetwork.countOfPlayersPhotonNetwork.CountOfPlayersになりました。
  • PhotonNetwork.countOfRoomsPhotonNetwork.CountOfRoomsになりました。
  • PhotonNetwork.sendRatePhotonNetwork.SendRateになりました。
  • PhotonNetwork.timePhotonNetwork.Timeになりました。
  • PhotonNetwork.playerListPhotonNetwork.PlayerListになりました。
  • PhotonNetwork.precisionForVectorSynchronizationPhotonNetwork.PrecisionForVectorSynchronizationになりました。
  • PhotonNetwork.precisionForQuaternionSynchronizationPhotonNetwork.PrecisionForQuaternionSynchronizationになりました。
  • PhotonNetwork.precisionForFloatSynchronizationPhotonNetwork.PrecisionForFloatSynchronizationになりました。
  • PhotonStream.isWritingPhotonStream.IsWritingになりました。
  • PhotonStream.isReadingPhotonStream.IsReadingになりました。
  • RoomOptions.cleanUpCacheOnLeaveRoomOptions.CleanupCacheOnLeaveになりました。
  • RoomOptions.publishUserIdRoomOptions.PublishUserIdになりました。
  • RoomOptions.suppressRoomEventsRoomOptions.SuppressRoomEventsになりました。

Back To Top

その他

  • PhotonNetwork.connectedPhotonNetwork.IsConnectedになりました。
  • PhotonNetwork.connectedAndReadyPhotonNetwork.IsConnectedAndReadyになりました。
  • PhotonNetwork.networkingPeerPhotonNetwork.NetworkingClientになりました。
  • PhotonNetwork.connectionStateDetailedPhotonNetwork.NetworkClientStateになりました。
  • PhotonNetwork.playerNamePhotonNetwork.NickNameになりました。
  • PhotonNetwork.roomPhotonNetwork.CurrentRoomになりました。
  • PhotonNetwork.lobbyPhotonNetwork.CurrentLobbyになりました。
  • PhotonNetwork.playerPhotonNetwork.LocalPlayerになりました。
  • PhotonNetwork.insideLobbyPhotonNetwork.InLobbyになりました。
  • PhotonNetwork.otherPlayersPhotonNetwork.PlayerListOthersになりました。
  • PhotonNetwork.sendRateOnSerializePhotonNetwork.SerializationRateになりました。
  • PhotonNetwork.versionPUNPhotonNetwork.PunVersionになりました。
  • PhotonTargetsenumはRpcTargetになりました。
  • PhotonPlayerクラスはPhoton.Realtime.Playerになりました。
  • PhotonPlayer.IDPhoton.Realtime.Player.ActorNumberになりました。

Back To Top

コールバックの変更

コールバックについての詳細はこちらのページを参照してください。

  • IPunInstantiateMagicCallbackを除くすべてのコールバックインターフェースは登録され、また登録解除されなければなりません。 PhotonNetwork.AddCallbackTarget(this)PhotonNetwork.RemoveCallbackTarget(this)を呼び出してください。 (それぞれOnEnable()OnDisable()の中で)。

Photon.PunBehaviourMonoBehaviourPunCallbacksと置き換えてください。 MonoBehaviourPunCallbacksのためにOnEnabled()OnDisable()を上書きするときは、毎回ベースクラスのメソッドを呼び出してください。

  • PhotonNetwork.OnEventCallはなくなりました 2つのオプションがあります:

    1. 代わりにPhotonNetwork.NetworkingClient.EventReceived(EventData)を使用。
    2. IOnEventCallback.OnEvent(EventData)を使用。

    PUN2では、イベントコールバックのシグネチャが変更されましたが、 EventDataから必要なものを取得できます。 また、イベントコールバックは、カスタムイベント(カスタムイベントコード<200)だけでなく、すべてのイベントに対してトリガーされます。

以下の表で、メソッドパラメータが表示されるのは、PUN1とPUN2の間でメソッドのシグネチャが異なる場合のみです。
PUN 1 (コールバック) PUN 2 (インターフェイス | コールバック)
OnConnectedToPhoton IConnectionCallbacks OnConnected
OnFailedToConnectToPhoton() IConnectionCallbacks OnDisconnected(DisconnectCause)
OnConnectionFail() IConnectionCallbacks OnDisconnected(DisconnectCause)
OnDisconnectedFromPhoton() IConnectionCallbacks OnDisconnected(DisconnectCause)
OnConnectedToMaster IConnectionCallbacks OnConnectedToMaster
OnPhotonMaxCccuReached() IConnectionCallbacks OnDisconnected(DisconnectCause)
OnCustomAuthenticationFailed IConnectionCallbacks OnCustomAuthenticationFailed
OnCustomAuthenticationResponse IConnectionCallbacks OnCustomAuthenticationResponse
OnMasterClientSwitched(PhotonPlayer) IInRoomCallbacks OnMasterClientSwitched(Player)
OnPhotonPlayerConnected(PhotonPlayer) IInRoomCallbacks OnPlayerEnteredRoom(Player)
OnPhotonPlayerDisconnected(PhotonPlayer) IInRoomCallbacks OnPlayerLeftRoom(Player)
OnPhotonPlayerActivityChanged(PhotonPlayer) IInRoomCallbacks OnPlayerEnteredRoom(Player)
OnPlayerLeftRoom(Player)
OnPhotonCustomRoomPropertiesChanged IInRoomCallbacks OnRoomPropertiesUpdate
OnPhotonPlayerPropertiesChanged(object[]) IInRoomCallbacks OnPlayerPropertiesUpdate(Player, Hashtable)
OnJoinedLobby ILobbyCallbacks OnJoinedLobby
OnLeftLobby ILobbyCallbacks OnLeftLobby
OnReceivedRoomListUpdate() ILobbyCallbacks OnRoomListUpdate(List<RoomInfo>)
OnLobbyStatisticsUpdate() ILobbyCallbacks OnLobbyStatisticsUpdate(List<TypedLobbyInfo>)
OnLeftRoom IMatchmakingCallbacks OnLeftRoom
OnPhotonCreateRoomFailed(object[]) IMatchmakingCallbacks OnCreateRoomFailed(short, string)
OnPhotonJoinRoomFailed(object[]) IMatchmakingCallbacks OnJoinRoomFailed(short, string)
OnCreatedRoom IMatchmakingCallbacks OnCreatedRoom
OnJoinedRoom IMatchmakingCallbacks OnJoinedRoom
OnPhotonRandomJoinFailed(object[]) IMatchmakingCallbacks OnJoinRandomFailed(short, string)
OnUpdatedFriendList() IMatchmakingCallbacks OnFriendListUpdate(List<FriendInfo>)
- IOnEventCallbackOnEvent(EventData)
OnPhotonInstantiate IPunInstantiateMagicCallback OnPhotonInstantiate
OnPhotonSerializeView IPunObservable OnPhotonSerializeView
OnOwnershipRequest(object[]) IPunOwnershipCallbacks OnOwnershipRequest(PhotonView, Player)
OnOwnershipTransfered(object[]) IPunOwnershipCallbacks OnOwnershipTransfered(PhotonView, Player)
OnWebRpcResponse IWebRpcCallback OnWebRpcResponse

ドキュメントのトップへ戻る