Start The Timer 3 Seconds After The Game Begin

I’m trying to set a timer to my game for 3 hours now i want the timer to wait for 3 seconds why this is not working im new in c# and unity

using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;

public class Timer : MonoBehaviour
{
    public Text timerText;
    private float startTime;
    private bool aka = true;

    void Start()
    {
        aka = false;
        startTime = Time.time;
    }
    IEnumerator SpawnWaves()
    {
        yield return new WaitForSeconds(3f);
        while(true)
        aka = true;
    }

    void Update()
    {
        {
            if (aka = true)
            {
         
                float t = Time.time - startTime;
                string minutes = ((int)t / 60).ToString();
                string seconds = (t % 60).ToString("f2");
                timerText.text = minutes + ":" + seconds;
            }
        }
    }
}

am I doomed to fail?

Line 20 and 21 are going to lock up Unity solidly. You can’t have busy loops in Unity but you can yield return null inside a loop if you want.

Line 27 assigns true to variable aka. Single equal is assignment, double equal is comparison.

Generally if you want to do something later, you will make a coroutine, yield for the three seconds, then after that yield, do the thing you want.

Something else, usually in your Start() function, you would StartCoroutine() that coroutine to get it going.

Im not sure that i understand what do you mean sir i fixed the double “==” and i add the StartCoroutine() but still it doesnt work .i cant find any solution anywhere i’m lost!