PUN2におけるオブジェクトの同期
引き続きPhoton学習してます.
同期オブジェクトの指定
プレイヤーのような同期したいオブジェクトにPhotonView
コンポーネントをアタッチする.
Transformの状態を自動的に同期したい場合は,PhotonTransformView
コンポーネントを追加する.
座標を同期させたい場合はSyncronized Position
にチェックを.
回転を同期させたい場合はSyncronized Rotation
にチェックをする.
デフォルトではすでにチェックされている.
上記設定後,PhotonTransformView
コンポーネントをPhotonView
のObserved
に追加する.
同期オブジェクトのPrefab化
前回の記事でも書いたようにResources
という名前のフォルダを作成して,
そのフォルダに同期オブジェクトを入れること.
同期オブジェクトの動的生成
PhotonNetwork.Instantiate()
を使用する.
第一引数には,Resources
フォルダ下にあるPrefabへのパスを指定する.
PhotonNetwork.Instantiate()
はPhotonのルームへのログインが完了後に生成する.
所有権の判定
自分のクライアントが生成して他クライアントへ同期オブジェクトと 他クライアントで生成され,自分のクライアントへ同期されたオブジェクトを見分ける必要がある.
判定はPhotonView.IsMine
で行うこと.
自分のクライアントが生成したオブジェクトの場合,true
になる.
この時,MonoBehaviourPun
クラスを継承する.
参考記事
株式会社ゆめみ様のVR StudiesのPhotonに関する記事とても分かりやすい. こちらを参考にしています.次回は残りのPhoton同期を完全に理解したい.