今記事は以下の記事のプレイヤー編です。
まだメインの記事を読んでない方はそちらから読んでいただけると幸いです。
Strix Cloudにおけるプレイヤーの扱いまでを解説していきたいと思います。
ネットワークオブジェクトの生成
PUN2ではPhotonViewコンポーネントでオブジェクトを管理していました。
StrixではStrixReplicatorコンポーネントでオブジェクトを管理します。
GameObjectにStrixReplicatorコンポーネントをアタッチします。

後は普通にGameObjectをロードして、Object.Instantiate()で生成することができます。
PUN2のように特殊な関数は使用する必要はありません。
StrixReplicatorコンポーネント
StrixReplicatorのプロパティを比較すると以下の表のように置き換えられます。
| PUN2 | Strix | 説明 |
|---|---|---|
| Owner | roomMember | PUN2ではPlayerクラスStrixでは CustomizableMatchRoomMemberクラスで管理します |
| IsMine | isLocal | 同じbool型で取得できます |
それ以外でよく使うプロパティ
| 名前 | 説明 |
|---|---|
| sendRate | 1あたりにプロパティを更新する頻度です。高くしすぎると通信を圧迫します。 |
| ConnectionClosedBehaviour | 接続が失われたときの動作です。 Destroyしてほしいときは DeleteOwnerを引き渡すときは ChangeOwner
|
| syncDestroy | オーナーのオブジェクトが破棄されたときに、このオブジェクトが破棄されるかを決めます。 |
Strixにおけるプレイヤーの扱いとID
プレイヤー情報はPUN2ではPlayerクラスですが、
StrixではCustomizableMatchRoomMemberで管理します。
| PUN2 | Strix | 説明 |
|---|---|---|
| ActorNumber | GetPrimaryKey() |
ActorNumberはprimaryKeyと同義です |
| NickName | GetName() | |
| CustomProperties | GetProperties() | PUN2ではHashtableですがStrixでは Dictionary<string,object>です |
自身のプレイヤーの取得
CustomizableMatchRoomMember localMember = StrixNetwork.instance.selfRoomMember;
ルームに参加していない際はnullになるので注意してください
プレイヤーのリストの取得
IList<CustomizableMatchRoomMember> roomMembers = StrixNetwork.instance.sortedRoomMembers;
primaryKey順にソートされたリストです。IList型なので普通に配列のようにアクセスできます。
IDictionary<long, StrixReplicator> networkInstances = StrixNetwork.instance.NetworkInstances;
StrixReplicatorを取得したい場合はNetworkInstancesでprimaryKeyで取得できます。
次回はStrixにおけるオブジェクト同期を解説します!
【Strix】PhotonからStrix Cloudに移行してみた ~オブジェクト同期編~
参考リンク