エンティティのオーナーシップ

エンティティのオーナーシップ(Bolt Entityコンポーネントが付与されたゲームオブジェクト)は、2つの個別カテゴリー、OwnerとControllerに分けられます。 これは完全に排他的ではありません。以下のいずれでもあり得ます。

  • オーナー
  • コントローラー
  • オーナーおよびコントローラー
  • どちらでもない

オーナー

オーナー であることは、BoltNetwork.Instantiateコールが発行されるピアに割り当てられている、変更不可能なプロパティです。 このピアは、BoltEntity.isOwnerがtrueを返す唯一のピアです。エンティティのオーナーシップは他者に譲渡できません。 エンティティのオーナーシップは、全て(状態、変換など)に対して絶対的な管理権を持ちます。

Back To Top

コントローラー

エンティティの コントローラー であることは、付与、剥奪、他者への譲渡が可能です。 オーナー だけがエンティティの権利を割り当てたり剥奪したりすることができます。

オーナー は、BoltEntity.AssignControl(otherConnection);を呼び出し、他のピアへの接続に因数を渡すことで、エンティティの管理を他のピアに割り当てることができます。管理権の剥奪は、BoltEntity.RevokeControl()を呼び出すことで行えます。 このピアは、このエンティティの コントローラー とされます。

オーナー はエンティティの管理を自分に割り当てることもできます。この場合、オーナー かつ コントローラー であるとされます。 オーナー であるエンティティの管理の取得は、BoltEntity.TakeControlの呼び出しにより行うことができます。管理を手放す場合は、BoltEntity.ReleaseControlにより行うことができます。

コントローラー は、BoltEntity.hasControlプロパティがtrueを返す唯一のプロパティです。

Back To Top

どちらでもない

エンティティの オーナー でも コントローラー でもない場合、BoltEntity.isOwnerおよびBoltEntity.hasControlはどちらもfalseを返すこととなります。 一般に、この状態だとエンティティについてできることは多くありません。ゲーム内で管理権限を持たないということになります(他のプレイヤーのアバターなど)。

ドキュメントのトップへ戻る