// Update is called once per frame void Update() { switch (m_State) { case 0: // Game paused break; case 1: // Game running states float updateInterval = 1 / snakeController.SnakeSpeed; m_Timer = Time.time + updateInterval; m_State++; break; case 2: if (Time.time < m_Timer) { break; } m_State = 1; playgroundController.UpdateBoard(snakeController.GrabNextDirection()); snakeController.DrawSnakeObjects(playgroundController.snakeGridTiles); var pickupPosition = playgroundController.pickupPosition.tilePosition; pickupObject.transform.localPosition = Vector3.right * pickupPosition.x + Vector3.back * pickupPosition.z; break; } }