Photon(PUN2)で関数実行を共有する
Photonの続きです。
xr-physics-work-etc.hatenablog.com
今回は関数の実行を複数ユーザで共有します。
例として、ボタンを押すことでカウントアップするカウンタを作成します。
1. ボタンを用意する
MRTK Toolboxから任意のボタンを用意します。
今回は「PressableButtonHoloLens2_64x64」を使用しました。
ボタンにあらかじめ存在するアイコンは不要なため、「PressableButtonHoloLens2_64x64」にアタッチされているButton Config Helper
のIcon Style
をNone
にし、非表示にしています。
また、カウンタの数値がわかりやすいように、IconAndText → TextMeshPro
の位置を調整しました。
ボタンにPhoton View
と下記スクリプトPhotonMethodSharing .cs
をアタッチします。
メソッド前に[PunRPC]
と記載したメソッドが共有できるメソッドになります。
各スクリプトは以下のように設定します。
Photon View
オブジェクトの権限取得依頼が来た場合は無条件で受け渡すように、Ownership Transfer
をTakeOver
に設定します。
Photon Method Sharing
ボタンのIconAndText → TextMeshPro
をTextに設定します。
Interactable
On Click
にPhotonMethodSharing.cs
のButtonAction
を設定します。
2. 動作確認
Hololens2とUnity Editor間で動作確認します。
一方がボタンを押すと、両方の端末上でPhotonSharingMethod
が実行され、ボタン中の数値がカウントアップします。
今回は値の共有はしていないので、後からルームに接続すると0からカウントを開始します。
値を共有するには、前回のOnPhotonSerializeView
を使用する必要があります。
※ 値共有だけで実現できますが、今回の目的は関数実行の共有なので実装していません。