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