Social Distancing
Social Distancing
2人のプレイヤーが近づきすぎることを避けるために、「Social Distancing」モジュールを提供しています。
そのためには、ネットワークプレイヤープレハブは、Collider(例えばCapsuleCollider)が付いたForbiddenAreaゲームオブジェクトを含む必要があります。これが、他すべてのリモートプレイヤーに対する禁止エリアを表します。
SocialDistancingクラスは、ネットワークプレイヤープレハブに追加されている必要があります。
これはILocomotionValidatorインターフェースを実装しています。
そのためCanMoveHeadsetメソッドは、地面に向かってレイキャストを飛ばすことで、プレイヤーの頭がForbiddenArea上にあるかどうかをチェックします。
自動的な衝突判定を避けるため、ローカルネットワークリグではSpawned()中はForbiddenAreaが削除されています。
衝突が検知されると、移動が禁止されて、禁止エリアを指すビジュアルフィードバックが表示されます。
ビジュアルフィードバックを追加するため、SocialDistancingVisualFeebackクラスをネットワークプレイヤープレハブに追加します。すると、SocialDistancingはDisplayForbiddenArea()メソッドを呼び出して、一定時間スプライトを表示します。
このメカニズムは、2人のプレイヤーが互いに同時に近づいていった場合には、その動きを阻害しないことに注意してください。
デモ
デモシーンはAssets\Photon\FusionAddons\SocialDistancing\Demo\Scenes\フォルダーにあります。
プレイヤーのネットワークリグはForbiddenAreaを含み、シンプルなカプセル形状です。このゲームオブジェクトは、ForbiddenLocomotionレイヤーに設定されています。
また、円のSpriteRendererがネットワークリグに置かれています。SocialDistancingVisualFeebackにより、遠くのプレイヤーが移動やテレポートを試みた時に、なぜ移動が失敗したのかを理解できるように、円が表示されます。
ダウンロード
このアドオンの最新バージョンは、Industries アドオンのプロジェクトに含まれています。
対応するトポロジー
- 共有モード
更新履歴
- Version 2.0.0: Fusion 2.0 support
- Version 1.0.2: Namespace modification
- Version 1.0.1: Add demo scene + add namespace
- Version 1.0.0: First release