Table of Contents

トリガー

初級 デザイナー

コライダーをトリガーとして設定すると、他のコライダーはそのコライダーに衝突しなくなります。代わりに、そのコライダーを通り抜けます。

トリガーはコライダーが中に入ったことを検出するので、それを使用してイベントをスクリプト化できます。たとえば、プレイヤー キャラクターが部屋に入ったことを検出し、スクリプトでそれを使用してイベントをトリガーできます。詳細については、「イベント」を参照してください。

Note

キャラクター コライダーをトリガーとして使用することはできません。

トリガーを作成する

  1. コライダーを作成します。

  2. [Property grid]で、コライダー コンポーネントのプロパティの[Is Trigger]を選択します。

Select 'Is trigger'

トリガーの衝突を検出する

トリガーに何かが入ったことは、次のコードを使用して認識できます。

// エンティティがトリガーと衝突するのを待つ
                var firstCollision = await trigger.NewCollision();

                var otherCollider = trigger == firstCollision.ColliderA ? firstCollision.ColliderB : firstCollision.ColliderA;

または、TrackingHashSet に直接アクセスします。

var trigger = Entity.Get<PhysicsComponent>();
foreach (var collision in trigger.Collisions)
{
    // 衝突したときの処理を行う
}

または、TrackingHashSet イベントを使用します。

var trigger = Entity.Get<PhysicsComponent>();
trigger.Collisions.CollectionChanged += (sender, args) =>
{
    if (args.Action == NotifyCollectionChangedAction.Add)
    {
        // 新しい衝突
        var collision = (Collision) args.Item;
        // 処理を行う
    }
    else if (args.Action == NotifyCollectionChangedAction.Remove)
    {
        // 古い衝突
        var collision = (Collision)args.Item;
        // 処理を行う
    }
};

トリガーの使用方法の例については、「トリガーをスクリプトにする」チュートリアルを参照してください。

関連項目