LoginSignup
1
0

More than 3 years have passed since last update.

Photon(PUN2)でネットワークオブジェクトを設定する時のメモ

Last updated at Posted at 2019-09-20

環境

  • Unity2018.3以降
  • PUN2

準備

  1. PUN2で始めるオンラインゲーム開発入門【その1】 - Unity Connect初期設定をしように則って初期設定を行う
  2. ネットワークオブジェクトにしたいGameObjectをPrefab化し、Resourcesフォルダに入れる

  3. PhotonViewをアタッチする

Transoformを同期する場合

  1. PhotonTransformViewをPrefabにアタッチする

  2. PhotonTransformViewのSyncronize OptionsのPosition, Rotation, Scaleの項目の中から同期したい項目にチェックを入れる

  3. PhotonViewのObserved Componentsに、アタッチしたPhotonTransformViewをドラッグ&ドロップする

Animatorを同期する場合

  1. PhotonAnimatorViewをPrefabにアタッチする

  2. PhotonViewのObserved Componentsに、アタッチしたPhotonAnimatorViewをドラッグ&ドロップする

  3. PhotonAnimatorViewのオプションから同期したい項目を設定する

その他の特定のパラメータを同期する場合

  1. 同期を担当するクラスを作成し(既にある場合は作成する必要はありません)、IPunObservableインターフェースを実装する

  2. 次のようにOnPhotonSerializeView()メソッドを作成する(ここではparameterを同期したいパラメータとしています)


public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
    if (stream.IsWriting)
    {
        stream.SendNext(this.parameter);
    }
    else
    {
        this.parameter = (int)stream.ReceiveNext();
    }
}

3 . PhotonViewのObserved Componentsに上記の処理を書いたコンポーネントをドラッグ&ドロップする

インスタンスを生成する

ネットワークオブジェクトは


PhotonNetwork.Instantiate("PrefabName", position, rotation, 0);

で生成することができます。
このメソッドの第4引数はグループを指定しています。
グループというのはルーム内にあるサブチャンネル的なもので、ルーム内の特定の人達とボイスチャットをしたい場合などに使います。
ここではとりあえず0を指定しています。

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0