Need help with value over time!

Hey friendly people.

I have an object going forward by some float speed.

I’m trying to bring it down on trigger over time. My code looks something like this:

public class ObjectStoppre: MonoBehaviour
{
    public myObject object;  // not my real objects name
    float myTime;                    //just an example name

    void Update()
    {
        myTime = Time.deltaTime * 10;
    }

	public void OnTriggerEnter(Collider col)
    {
        if (col.tag == "frontOfObject")
        {
            Debug.Log("Stop me over time Senpai!");
            object.speedObject = Mathf.Lerp(object.speedObject, 0,myTime);
        }
    }
}

So what i’m doing is grabing the speed value from my “Move” script and trying to lerp it over time to 0. I’m having no luck… can someone help me out please?

Thanks

Hi there friendly @Gotal.

Based on your code. Perhaps this helps? If it does, please accept my answer! :slight_smile:

Otherwise, elaborate and I could try again.

using UnityEngine;
using System.Collections;

public class ObjectStopper : MonoBehaviour
{
    public myObject targetObject;  // not my real objects name
    public float stopSpeed = 10f;
    private bool isStopping;

    void Update()
    {
        if ( isStopping )
        {
            // Mathf.Max => Prevents negative speed.
            targetObject.speedObject = Mathf.Max(0f, targetObject.speedObject - stopSpeed * Time.deltaTime);
        }
    }

    void OnTriggerEnter( Collider col )
    {
        if( col.tag == "frontOfObject" )
        {
            Debug.Log( "Stop me over time Senpai!" );
            isStopping = true;
        }
    }
}