Do something every 0.5 seconds

In C#, I want increase my Current Energy (energy.currentVal) of 1 every 5 seconds.

void Start()
{
StartCoroutine(DoEveryFiveSeconds());
}

IEnumerator DoEveryFiveSeconds()
{
    while (true)
    {
        yield return new WaitForSeconds(0.5f);
        DoSomething();
    }
}

// happens every 0.5 seconds
void DoSomething()
{

}

That’s what you need, not Wait for seconds. To stop, use CancelInvoke()

void Start()
{
StartCoroutine(DoEveryFiveSeconds());
}

 IEnumerator DoEveryFiveSeconds()
 {
     
         yield return new WaitForSeconds(0.5f);
         DoSomething();
         StartCoroutine(DoEveryFiveSeconds());
 }
 
 // happens every 0.5 seconds
 void DoSomething()
 {
 
 }

@AgarFun