# トリガー
初級
デザイナー
コライダーを**トリガー**として設定すると、他のコライダーはそのコライダーに衝突しなくなります。代わりに、そのコライダーを通り抜けます。
トリガーはコライダーが中に入ったことを検出するので、それを使用してイベントをスクリプト化できます。たとえば、プレイヤー キャラクターが部屋に入ったことを検出し、スクリプトでそれを使用してイベントをトリガーできます。詳細については、「[イベント](../scripts/events.md)」を参照してください。
>[!NOTE]
>[キャラクター コライダー](characters.md)をトリガーとして使用することはできません。
## トリガーを作成する
1. [コライダー](colliders.md)を作成します。
2. [Property grid]で、コライダー コンポーネントのプロパティの[Is Trigger]を選択します。

## トリガーの衝突を検出する
トリガーに何かが入ったことは、次のコードを使用して認識できます。
```cs
// エンティティがトリガーと衝突するのを待つ
var firstCollision = await trigger.NewCollision();
var otherCollider = trigger == firstCollision.ColliderA ? firstCollision.ColliderB : firstCollision.ColliderA;
```
または、`TrackingHashSet` に直接アクセスします。
```cs
var trigger = Entity.Get();
foreach (var collision in trigger.Collisions)
{
// 衝突したときの処理を行う
}
```
または、`TrackingHashSet` イベントを使用します。
```cs
var trigger = Entity.Get();
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;
// 処理を行う
}
};
```
トリガーの使用方法の例については、「[トリガーをスクリプトにする](script-a-trigger.md)」チュートリアルを参照してください。
## 関連項目
* [チュートリアル: トリガーをスクリプトにする](script-a-trigger.md)
* [コライダー](colliders.md)
* [コライダーの形状](collider-shapes.md)
* [イベント](../scripts/events.md)