今記事は以下の記事のプレイヤー編です。
まだメインの記事を読んでない方はそちらから読んでいただけると幸いです。
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してほしいときは Delete Ownerを引き渡すときは 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に移行してみた ~オブジェクト同期編~
##参考リンク