private void Start() { snakeSpeed = 0.5f; spawnerController.Initialize(background); foodController.Initialize(spawnerController); snakeController.Initialize(snakePartsController, spawnerController, foodController, scoreManager); // TODO your own method instead of RestartGame? snakeController.OnPlayerHitWallOrSnake += RestartGame; scoreManager.OnScoreReachedBoundary += GameWon; scoreManager.OnScoreChanged += score => ChangeSnakeSpeed(score); // InvokeRepeating("MoveSnakeHeadDirection", 1.0f, 0.5f); // // while (true) // { // yield return new WaitForSeconds(snakeSpeed); // MoveSnakeHeadDirection(); // // } // WaitFunction func = Wait; // StartCoroutine(func(2)); // StartCoroutine(MoveSnakeInInterval(initialWaitTime)); }