Asolaのメモログ

個人的な覚書ページ

UnityでPhotonメモ

経緯

  • ちょっとしたアクションゲームのMockをマルチプレイ体験させることになった

Unityのマルチプレイで調べる

  • Unity Mult Player(Unityデフォではいってる)

  • Photon(1.0と2.0がある。)

  • monobit engine

Photonにする(しかも1)  → 煮詰まったら聞ける人が身近にいたのと、1.0ならwebで情報沢山出てくるから

調べる(Photon)

メモ

  • Photonサーバに接続 → ロビー接続 → ルーム接続(or作成)の流れ
    ルーム内のプレイヤーは、ルームマスターとその他に分かれる。
    「ロビーにinしたら」などのコールバックが多数ある。

  • 同期したい内容が含まれるプレハブにPhotonViewコンポーネントを付ける

  • 同期したい内容をPhotonViewに登録していく
    位置同期したいならPhotonTransformViewコンポーネントを使ってPhotonViewに登録すると便利かも
    アニメーターの同期はPhotonAnimatorViewコンポーネントを(略)
    変数はスクリプト内にOnPhotonSerializeView()を使って送受信する。(スクリプトをPhotonViewに登録)

  • 変数同期は何個か手段がある
    同期とステート | Photon Engine
    今回はphotonview.RPCを使った
    なんでだっけ → web上の資料で分かりやすいのがあったからだけ・・・。

  • IncetanceとDestry
    発生と消去はPhoton専用のを使う

  • 各クライアントでそれぞれ処理を行うと、多重処理になるのでフラグで判別して使い分ける
    isMasterCliant → ルームマスターかどうか
    isMine → gameobject等の持ち主が自分かどうか(Instanceすると所有権が付く)
    isLocal  → ローカルプレイヤー(要するに自分)かどうか

参考や調べるのに使ったサイト

Unityオンラインゲーム作成【Chapter1】Unity上のPhoton設定と開発準備 - Uniblo-ゆにブロ-

Photonについて大まかに理解するために見たページまとめ - Qiita

Unity-技術メモ-PUN カテゴリーの記事一覧 - うら干物書き

Photon | script life 千夜一夜 プログラミング別館

【Unity】おなじプロジェクトを複数のエディタで同時に操作する(Windows版) - テラシュールブログ

http://edom18.hateblo.jp/entry/2017/03/01/090602