В ScriptsExecutionOrder выставляете самый высокий приоритет этому скрипту, а далее проверяете переменную IsStarted другим скриптом (скажем глобальным геймменеджером, который инициализирует всякие штуки для игры)
public class DelayedStart: MonoBehaviour
{
public int count = 5;
public static bool IsStarted = false;
void Awake()
{
StartCoroutine(StartCounting());
}
private IEnumerator StartCounting()
{
for (int i = count; i > 0; i--)
{
yield return new WaitForSeconds(1f);
Debug.LogFormat("Time Left: {0} s", i);
}
IsStarted = true;
}
}