> For the complete documentation index, see [llms.txt](https://gley.gitbook.io/mobile-traffic-system/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gley.gitbook.io/mobile-traffic-system/delegates/modify-trigger-size.md).

# Modify Trigger Size

## Description

Controls the dimension of the front trigger based on the vehicle's speed.

## Declaration

```csharp
public delegate void ModifyTriggerSize(float currentSpeed, BoxCollider frontCollider, float maxSpeed, float minTriggerLength, float maxTriggerLength);
```

## Parameters

<table><thead><tr><th width="203">Name</th><th>Description</th></tr></thead><tbody><tr><td><strong>currentSpeed</strong></td><td>The current speed of the vehicle.</td></tr><tr><td><strong>frontCollider</strong></td><td>The front trigger to be modified.</td></tr><tr><td><strong>maxSpeed</strong></td><td>The maximum possible speed of the vehicle.</td></tr><tr><td><strong>minTriggerLength</strong></td><td>The minimum dimension allowed for the trigger, that was set inside the Vehicle Component.</td></tr><tr><td><strong>maxTriggerLength</strong></td><td>The maximum dimension allowed for the trigger, that was set inside the Vehicle Component.</td></tr></tbody></table>

## Set Method

```csharp
public static void SetModifyTriggerSize(ModifyTriggerSize modifyTriggerSizeDelegate, int vehicleIndex = -1)
```

{% hint style="info" %}
If the vehicle index is -1, this delegate will be used for all vehicles otherwise will be used only for the vehicle passed as a parameter.
{% endhint %}

## Example

```csharp
using Gley.TrafficSystem;
using UnityEngine;

public class Test : MonoBehaviour
{
    private void Start()
    {
        Delegates.SetModifyTriggerSize(MyTriggerSizeModifier);
    }

    public static void MyTriggerSizeModifier(float currentSpeed, BoxCollider frontCollider, float maxSpeed, float minTriggerLength, float maxTriggerLength)
    {
        //some math to resize the collider based on speed
        float minSpeed = 20;
        float newsize = minTriggerLength + (currentSpeed - minSpeed) * ((maxTriggerLength - minTriggerLength) / (maxSpeed - minSpeed));
        frontCollider.size = new Vector3(frontCollider.size.x, frontCollider.size.y, newsize);
        frontCollider.center = new Vector3(frontCollider.center.x, frontCollider.center.y, newsize / 2);
    }
}
```

{% hint style="info" %}
Default delegate implementation can be found inside **DefaultDelegates.cs**
{% endhint %}
