Save 37% off PRO during our Black Friday Sale! »

PUN2触ってみた

066a75994404d62f18ad41a169e1c022?s=47 shioiyan
September 26, 2018

 PUN2触ってみた

Gotanda.unity#8に登壇した時の発表資料です。

PUN2のリファレンス
https://doc-api.photonengine.com/en/pun/v2/index.html

PUN2のMigration Notes
https://doc.photonengine.com/en-us/pun/v2/getting-started/migration-notes

PhotonRx(by @toRisouPさん)
https://github.com/TORISOUP/PhotonRx

066a75994404d62f18ad41a169e1c022?s=128

shioiyan

September 26, 2018
Tweet

Transcript

  1. PUN2触ってみた Gotanda.unity #8 in ワンダープラネット株式会社 @渋谷 2018/09/26

  2. 自己紹介 santa(@otyugen59) • モバイルファクトリー エンジニア2年目 • 学生時代に趣味でUnityを使ってゲーム作りをし てた • 去年業務でもUnityを3ヶ月くらい触ってた

    2
  3. ❏ Photon Unity Networkingとは? ❏ PUN2とは? ❏ PUN2にPhotonRxを適用する 3 話す内容

  4. 4 とは ❏ リアルタイムのマルチプレイヤーゲーム開発フレームワーク ❏ 世界No1の独立系ネットワーキングエンジン ❏ ネットワークエンジンであるPhoton Realtimeやチャットシス テムのPhoton

    Chatなどリアルタイムマルチプレイヤーゲー ムの実装を助けるサービスを提供している
  5. 5 とは ❏ Photon Unity Network(以下PUN)は、Photon SDKをラッピン グしてUnity Networkingと互換性を持たせたもの ❏

    Unity Networkingの使いやすさと、Photon Realtimeの高いパ フォーマンスや信頼性を両立
  6. PUNのコード例 6

  7. 7 PUNに接続(Lobbyに参加) Player Lobby Master Server Auto Join

  8. 8 Roomに参加 Player Lobby RoomA RoomB RoomC Master Server JoinRoom(“RoomA”)

    JoinRandomRoom() JoinLobby()
  9. 9 PUN2とは? ❏ 2018年8月25日にリリースされた ❏ 初代PUNよりも洗練されたAPIとストラクチャーを持つ ❏ 初代PUNのことを区別のためにPUN Classicやv1と言う ❏

    リファレンスやdemoはv1と比べるとほとんど整っていない(特 に日本語) ❏ v1との変更点はMigration Notesを参照する
  10. とりあえず触ってみよう! 10

  11. PUN2のコード例 11

  12. 1 2 PUNに接続 Player Lobby Master Server Auto Join

  13. 1 3 Roomに参加(同じ) Player Lobby RoomA RoomB RoomC Master Server

    JoinRoom(“RoomA”) JoinRandomRoom() JoinLobby()
  14. PhotonのコールバックをUniRx のObservableで扱いたい 14

  15. 1 5 PhotonRx ❏ toRisouPさんの開発された、PUNをUniRxのObservable として扱えるようにしたライブラリ ❏ サーバへの接続成功/失敗といったコールバックを this.xxxAsObservableでストリームを取得できる

  16. まだPUN2には未対応 16

  17. 1 7 PUN2への対応 ❏ PUNとPhoton Realtimeを分離するためか、Photon.Punと Photon.Realtimeという名前空間ができていた ❏ PhotonNetwork.autoJoinLobbyがなくなった ❏

    GameVersionをPhotonNetwork.GameVersionで設定する ようになった ❏ CamelCaseからPascalCaseへプロパティ名が変更された(例: PhotonNetwork.inRoom => PhotonNetwork.InRoom) ❏ クラス名の変更された (例: PhotonPlayer => Photon.Realtime.Player) PUN2とPhotonRxを入れてエラーを吐いているところを Migration Notesを読みながら対応
  18. 1 8 コールバックが変更された ❏ PUN2でコールバックがInterface.Callbackになった ❏ おそらくこれがPUN2になって一番大きな変更 ❏ コールバックを使いたい時はMonoBehaviourPunCallbacksを継 承して実装する必要がある

    PUN v1 PUN2
  19. まとめ 19

  20. 2 0 ❏ PUN2になることでAPI, 名前空間, コールバックが変更された ❏ camelCaseからPascalCaseになるなどプロパティ名やクラス名が 変更された ❏

    まだリファレンスやdemoはPUN v1と比較して不十分 ❏ マルッと変わったわけではないので、PUN v1のリファレンスや記 事も全然使える ❏ PUN v1を使っていた人ならすぐにPUN2に移行できそう ❏ (個人的な知見) 前のバージョンで作られたライブラリを新しいバー ジョンで動かしてエラーを追うと、変更点に気が付きやすくてよ かった まとめ