Modify Trigger Size

Description

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

Declaration

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

Parameters

NameDescription

currentSpeed

The current speed of the vehicle.

frontCollider

The front trigger to be modified.

maxSpeed

The maximum possible speed of the vehicle.

minTriggerLength

The minimum dimension allowed for the trigger, that was set inside the Vehicle Component.

maxTriggerLength

The maximum dimension allowed for the trigger, that was set inside the Vehicle Component.

Set Method

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

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.

Example

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);
    }
}

Default delegate implementation can be found inside DefaultDelegates.cs

Last updated