PhotonのPun2を使用するためにはもともとシーン上に設置していたアバターをプレファブ化して後からロードする形にする必要があることを学びました.当然いままでシーン上にアバターがいる前提でスクリプトを書いていたので,その辺を修正する必要があります.

まずはJoystick Controllerによるアバター操作.PlayerScriptに次のようなコードを追加.

joystick = GameObject.Find(“Variable Joystick”).GetComponent<VariableJoystick>();

これでシーン上にあるVariable Joystickとプレイヤーの紐づけを行う事ができます.

さらに,photon でプレイヤーを操作するには,photonView.IsMineの判定も必要になる.詳細は以下のコードを参照.

42行目でphotonView.IsMineの判定を行っていることが分かる.これでphotonによるマルチプラットフォームの環境でも自身のアバターのみを動かすことができるらしい.

次にカメラ.どうやらカメラはPrefab化されているアバターの子要素として追加するらしい.私の場合はシーン上にあるCinemachineのカメラをシーン上から除外して,代わりにアバターの子要素として追加しました.

以下のような感じでシーン上に存在するChinemachineを削除.

そしてprefab化されているアバターにChinemachineを追加.

とりあえずこれでビルドしたら,photonを用いても今まで通りにプレイヤーも動かせて,カメラの操作もできるようになりました.意外とそこまでは複雑ではないなと油断しましたが,実際にスマートフォンとパソコンから同じシーンに入って,2つのアバターが存在するようになった瞬間にいくつか問題が見つかりました.そこの修正は次回またやろうと思います.

投稿者 horseshoe

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です