PUN2におけるオブジェクトの同期

引き続きPhoton学習してます.

同期オブジェクトの指定

プレイヤーのような同期したいオブジェクトにPhotonViewコンポーネントをアタッチする.

Transformの状態を自動的に同期したい場合は,PhotonTransformViewコンポーネントを追加する.

座標を同期させたい場合はSyncronized Positionにチェックを.
回転を同期させたい場合はSyncronized Rotationにチェックをする.
デフォルトではすでにチェックされている.

上記設定後,PhotonTransformViewコンポーネントPhotonViewObservedに追加する.

同期オブジェクトのPrefab化

前回の記事でも書いたようにResourcesという名前のフォルダを作成して,
そのフォルダに同期オブジェクトを入れること.

同期オブジェクトの動的生成

PhotonNetwork.Instantiate()を使用する.
第一引数には,Resourcesフォルダ下にあるPrefabへのパスを指定する.

PhotonNetwork.Instantiate()Photonのルームへのログインが完了後に生成する.

所有権の判定

自分のクライアントが生成して他クライアントへ同期オブジェクトと
他クライアントで生成され,自分のクライアントへ同期されたオブジェクト
を見分ける必要がある.

判定はPhotonView.IsMineで行うこと. 自分のクライアントが生成したオブジェクトの場合,trueになる.

この時,MonoBehaviourPunクラスを継承する.

参考記事

株式会社ゆめみ様のVR StudiesのPhotonに関する記事とても分かりやすい.
こちらを参考にしています.次回は残りのPhoton同期を完全に理解したい.

github.com