Photon(PUN2)での簡単な共有(ルームへの入室まで)
今回は下記の続きで、共有までの手順のメモです。
xr-physics-work-etc.hatenablog.com
今回は、実際にPhoton Cloudと通信し、ルームを作成、ユーザオブジェクトを作成するまでを行います。
Unity上でのMRTK側の設定はあちこちで解説されているので省略。
最新は下記を参考に。
Photon Cloudとの通信部品の作成
Hierarchyで右クリックをして「Create Empty」を選択すると、Hierarchyに「GameObject」が追加される。
追加した「GameObject」の名前を「PhotonManager」に変更する。
このオブジェクトでPhoton Cloudへの接続を管理する。
次に通信用のスクリプトを作成する。
Project上で右クリックをして「Create」→「C# Script」を選択する。
作成したスクリプト名を「PhotonManager」にする。
スクリプトの内容は以下の通り。
PhotonManager.cs
今回はある基準点からの相対位置を共有するため、共有基準点の子オブジェクトにスポーンしたユーザを設定した。
これを「PhotonManager」のオブジェクトにアタッチする。
SharingBaseTransformには、共有するための基準点となるオブジェクトを設定する。
今回は基準点として、空オブジェクトの「SharingBase」を作成し、子オブジェクトにMRTKに含まれる「HandJointGizmo」を用いた。
※各軸がわかりやすいため。
PhotonNetwork.Instantiateで生成するプレハブは、Asset/Resources配下である必要がある。
ユーザ用プレハブを作成するため、Hierarchy上で「3D Object」→「Sphere」を選択して球体を生成する。
オブジェクト名を「Player」に変更する。
※サイズ感は画像を参考。materialはMRTKのstarndardシェーダを選択したほうが見やすいです。
作成したオブジェクトに「PhotonView.cs」をアタッチした後、Hierarchy上の「Player」オブジェクトをAsset/Resourcesにドラッグする。
Hierarchy上の「Player」プレハブは削除する。
Asset/Resources上の「Player」プレハブを「PhotonManager」のUserPrefabにアタッチする。
UnityEditor上で実行すると、PhotonCloudに接続でき、「Player」オブジェクトが「SharingBase」配下に生成されることを確認できる。
以上でルームへの入室は完了です。
現在「Player」オブジェクトは「Photon View」以外に設定していないため、プレイヤー位置に追従しません。
次回「Player」オブジェクトをそれぞれのPlayerに追従するように設定します。
PhotonのAPIに関する情報は後日まとめる予定。
※時間かかった割にあまり分量がない。。。?
一部参考: