- Home /
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 :)
public void Update()
{
float t = Time.time;
platform.GetComponent<Ferr2DT_PathTerrain> ().vertexColor.a = Mathf.PingPong(t,1.25f);
Answer by Bunny83 · Jan 11, 2018 at 01:58 PM
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
Okay, i get your idea It works, but i have the problem That i have a line that if updates it update the opacity in game mode, without it it just showing the opacity in inspector If i remove this from false timerActive, it still works
Answer by NickBullseye · Jan 11, 2018 at 01:45 PM
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 (;;) with the condition you need.
Your answer
Follow this Question
Related Questions
Find the difference between the Z rotation of two GameObjects 2 Answers
How to rotate object back and forth on input hold? 1 Answer
Confused about ITilemap interface and concrete tilemap classes 0 Answers
Problem at 180 degrees when rotating slowly 1 Answer
Adding jump animation in script editor [2D Project] 0 Answers