「Unity/photon/punとpun2の違い」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→プレイヤー系) |
細 (Admin がページ「Unity/photon/photon2違い」を「Unity/photon/punとpun2の違い」に、リダイレクトを残さずに移動しました) |
||
(同じ利用者による、間の19版が非表示) | |||
行1: | 行1: | ||
− | == | + | ==punとpun2の違い== |
参考:https://lifter-liberty.localinfo.jp/posts/5296583 | 参考:https://lifter-liberty.localinfo.jp/posts/5296583 | ||
行10: | 行10: | ||
</pre> | </pre> | ||
を追加 | を追加 | ||
+ | ===部屋系=== | ||
+ | pun2には初期でのauto-lobbyのonが無いので、 | ||
+ | pun1で、auto-lobbyのチェックしていれば、pun2では、以下が必要。 | ||
+ | |||
+ | <pre> | ||
+ | public override void OnConnectedToMaster() | ||
+ | { | ||
+ | Debug.Log("OnConnectedToMaster"); | ||
+ | if (PhotonNetwork.IsConnected) | ||
+ | { | ||
+ | PhotonNetwork.JoinLobby(); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
===継承=== | ===継承=== | ||
行16: | 行30: | ||
===接続系=== | ===接続系=== | ||
+ | pun1 | ||
PhotonNetwork.ConnectUsingSettings("v1.0"); | PhotonNetwork.ConnectUsingSettings("v1.0"); | ||
↓ | ↓ | ||
+ | |||
+ | pun2 | ||
<pre> | <pre> | ||
if (PhotonNetwork.IsConnected == false) | if (PhotonNetwork.IsConnected == false) | ||
行25: | 行42: | ||
} | } | ||
</pre> | </pre> | ||
+ | |||
+ | PhotonNetwork.isMasterClient → PhotonNetwork.IsMasterClient | ||
===プレイヤー系=== | ===プレイヤー系=== | ||
* PhotonNetwork.playerName → PhotonNetwork.NickName | * PhotonNetwork.playerName → PhotonNetwork.NickName | ||
* PhotonNetwork.otherPlayers → PhotonNetwork.PlayerListOthers | * PhotonNetwork.otherPlayers → PhotonNetwork.PlayerListOthers | ||
− | + | * p.name → p.Nickname | |
− | + | * PhotonNetwork.countOfPlayers → PhotonNetwork.CountOfPlayers | |
− | + | * PhotonNetwork.playerList → PhotonNetwork.PlayerList | |
− | + | * public void OnPhotonPlayerConnected(PhotonPlayer) → public override void OnPlayerEnteredRoom(Player) | |
− | + | * public void OnPhotonPlayerDisconnected(PhotonPlayer) → public override void OnPlayerLeftRoom(Player) | |
− | + | * PhotonNetwork.offlineMode → PhotonNetwork.OfflineMode | |
− | + | ||
− | + | ||
− | public override void | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
===部屋系=== | ===部屋系=== | ||
行53: | 行61: | ||
*roomOptions.isOpen → roomOptions.IsOpen | *roomOptions.isOpen → roomOptions.IsOpen | ||
*roomOptions.isVisible → roomOptions.IsVisible | *roomOptions.isVisible → roomOptions.IsVisible | ||
+ | *room.name → room.Name | ||
===部屋プロパティ=== | ===部屋プロパティ=== | ||
行117: | 行126: | ||
*void OnJoinedRoom() → public override void OnJoinedRoom() | *void OnJoinedRoom() → public override void OnJoinedRoom() | ||
*void OnPhotonRandomJoinFailed() → public override void OnJoinRandomFailed(short returnCode, string message) | *void OnPhotonRandomJoinFailed() → public override void OnJoinRandomFailed(short returnCode, string message) | ||
+ | |||
+ | pun1 | ||
+ | void OnPhotonJoinRoomFailed(object[]) { | ||
+ | Debug.Log("PhotonManager OnPhotonJoinRoomFailed " + codeAndMsg[0] + " " + codeAndMsg[1]); | ||
+ | ↓ | ||
+ | |||
+ | pun2 | ||
+ | public override void OnJoinRoomFailed(short returnCode, string message) { | ||
+ | Debug.Log("PhotonManager OnJoinRoomFailed " + returnCode + " " + message); | ||
===chatのエラー=== | ===chatのエラー=== | ||
行123: | 行141: | ||
PhotonNetwork.PhotonServerSettings.ChatAppID → PhotonNetwork.PhotonServerSettings.AppSettings.AppIdChat | PhotonNetwork.PhotonServerSettings.ChatAppID → PhotonNetwork.PhotonServerSettings.AppSettings.AppIdChat | ||
+ | |||
+ | ===GetRegions failedが起こった場合=== | ||
+ | 以下エラーが起こったとき | ||
+ | GetRegions failed. AppId is unknown on the (cloud) server. ApplicationNotFound | ||
+ | AppIdが正しくないので、もう一度コピペする | ||
+ | |||
+ | ===LeaveRoomはIsConnectで囲む=== | ||
+ | PhotonNetwork.LeaveRoom(); | ||
+ | ↓ | ||
+ | <pre> | ||
+ | if (PhotonNetwork.IsConnected) { | ||
+ | PhotonNetwork.LeaveRoom(); | ||
+ | } | ||
+ | </pre> | ||
==参考== | ==参考== |
2022年12月28日 (水) 16:18時点における最新版
目次
punとpun2の違い
参考:https://lifter-liberty.localinfo.jp/posts/5296583
実際に変更した作業
using
using Photon.Pun; using Photon.Realtime;
を追加
部屋系
pun2には初期でのauto-lobbyのonが無いので、 pun1で、auto-lobbyのチェックしていれば、pun2では、以下が必要。
public override void OnConnectedToMaster() { Debug.Log("OnConnectedToMaster"); if (PhotonNetwork.IsConnected) { PhotonNetwork.JoinLobby(); } }
継承
- Photon.MonoBehaviour → MonoBehaviourPunへ
- Photon.MonoBehaviour → MonoBehaviourPunCallbacksへ(OnRoomListUpdateを使う場合はこちら)
接続系
pun1
PhotonNetwork.ConnectUsingSettings("v1.0");
↓
pun2
if (PhotonNetwork.IsConnected == false) { PhotonNetwork.GameVersion = "v1.0"; PhotonNetwork.ConnectUsingSettings(); }
PhotonNetwork.isMasterClient → PhotonNetwork.IsMasterClient
プレイヤー系
- PhotonNetwork.playerName → PhotonNetwork.NickName
- PhotonNetwork.otherPlayers → PhotonNetwork.PlayerListOthers
- p.name → p.Nickname
- PhotonNetwork.countOfPlayers → PhotonNetwork.CountOfPlayers
- PhotonNetwork.playerList → PhotonNetwork.PlayerList
- public void OnPhotonPlayerConnected(PhotonPlayer) → public override void OnPlayerEnteredRoom(Player)
- public void OnPhotonPlayerDisconnected(PhotonPlayer) → public override void OnPlayerLeftRoom(Player)
- PhotonNetwork.offlineMode → PhotonNetwork.OfflineMode
部屋系
- roomOptions.customRoomProperties → roomOptions.CustomRoomProperties
- roomOptions.customRoomPropertiesForLobby → roomOptions.CustomRoomPropertiesForLobby
- roomOptions.maxPlayers → roomOptions.MaxPlayers
- roomOptions.isOpen → roomOptions.IsOpen
- roomOptions.isVisible → roomOptions.IsVisible
- room.name → room.Name
部屋プロパティ
- room.name → room.Name
- room.customProperties → room.CustomProperties
- PhotonNetwork.room → PhotonNetwork.CurrentRoom
部屋一覧
pun1
void OnReceivedRoomListUpdate() { RoomInfo[] rooms = PhotonNetwork.GetRoomList(); // 注意:OnReceivedRoomListUpdate()が呼ばれた以後でしか取得できない if (rooms.Length == 0) { Debug.Log("ルームが一つもありません"); } else { foreach (RoomInfo room in rooms) { Debug.Log("RoomName:" + room.name); Debug.Log("userId:" + room.customProperties["userId"]); } } }
↓
pun2
using System.Linq; public override void OnRoomListUpdate(List<RoomInfo> roomList) { Debug.Log("OnRoomListUpdate"); List<RoomInfo> tmpRoomList = roomList.Where(s => s.IsOpen).ToList(); if (tmpRoomList.Count == 0) { Debug.Log("ルームが一つもありません"); } else { foreach (RoomInfo room in tmpRoomList) { Debug.Log("RoomName:" + room.Name); Debug.Log("userId:" + room.CustomProperties["userId"]); } } }
OnRoomListUpdateでエラーが出る場合は、以下置換。
MonoBehaviourPun → MonoBehaviourPunCallbacks
PhotonViewエラー
PhotonViewのあるところに以下追加
using Photon.Pun;
RPC系
PhotonTargets.All → RpcTarget.All
コールバック
- void OnJoinedLobby() → public override void OnJoinedLobby()
- void OnJoinedRoom() → public override void OnJoinedRoom()
- void OnPhotonRandomJoinFailed() → public override void OnJoinRandomFailed(short returnCode, string message)
pun1
void OnPhotonJoinRoomFailed(object[]) { Debug.Log("PhotonManager OnPhotonJoinRoomFailed " + codeAndMsg[0] + " " + codeAndMsg[1]);
↓
pun2
public override void OnJoinRoomFailed(short returnCode, string message) { Debug.Log("PhotonManager OnJoinRoomFailed " + returnCode + " " + message);
chatのエラー
error CS1061: 'ServerSettings' does not contain a definition for 'ChatAppID' and no accessible extension method 'ChatAppID' accepting a first argument of type 'ServerSettings' could be found (are you missing a using directive or an assembly reference?)
ChatAppIDが設定に入ってないので、入れる。
PhotonNetwork.PhotonServerSettings.ChatAppID → PhotonNetwork.PhotonServerSettings.AppSettings.AppIdChat
GetRegions failedが起こった場合
以下エラーが起こったとき
GetRegions failed. AppId is unknown on the (cloud) server. ApplicationNotFound
AppIdが正しくないので、もう一度コピペする
LeaveRoomはIsConnectで囲む
PhotonNetwork.LeaveRoom();
↓
if (PhotonNetwork.IsConnected) { PhotonNetwork.LeaveRoom(); }
参考
https://doc.photonengine.com/ja-jp/pun/current/getting-started/initial-setup
https://doc.photonengine.com/ja-jp/pun/current/getting-started/migration-notes