Make my mathf to Wait? :)

How can I make mathf.pingpong in Update function to wait for 1 second?
I tried ienumerator coroutine but maybe wrong
Help please :slight_smile:

    public void Update()
    {
        float t = Time.time;
        platform.GetComponent<Ferr2DT_PathTerrain> ().vertexColor.a = Mathf.PingPong(t,1.25f);

Time.time is continuously increased and PingPong directly depends on the passed value. So if you want to delay the change you have to delay / stop the increasing of the value that you use for ping pong. So you can’t use Time.time. You can use your own “timer” variable

bool timerActive = true;
float timer = 0;

public void Update()
{
    if (timerActive)
        timer += Time.deltaTime;
    platform.GetComponent<Ferr2DT_PathTerrain> ().vertexColor.a = Mathf.PingPong(timer,1.25f);
}

When you set timerActive to false the pingpong will basically freeze until you set it back to true.

Note that you have a period of 1.25 so you set your alpha value up to 1.25. The usual range is 0-1

I guess this should do it:

IEnumerator YourFunc() {
    for (;;) {
        float t = Time.time;
        platform.GetComponent<Ferr2DT_PathTerrain> ().vertexColor.a =Mathf.PingPong(t,1.25f);
    
        yield return new WaitForSeconds(1f);
    }
}

And to start the coroutine you have to call StartCoroutine(“YourFunc”).
If you need to do it untill certain condition is met - just replace (;:wink: with the condition you need.