IEnumerator RestartEverything()
    {
        SceneManager.LoadScene("Floor 1");

        yield return(new WaitForFixedUpdate());

        player               = Player_S.self.gameObject;
        AudioManager         = AudioManager_S.self;
        canvas               = Canvas_S.self;
        canvasAsset          = Canvas_S.self.GetComponent <Canvas>();
        judgingSystem        = JudgingSystem_S.self;
        secondCamera         = SecondCamera_S.self.GetComponent <Camera>();
        secondCamera.enabled = false;
        mainCamera           = Camera_S.self.GetComponent <Camera>();


        level = 1;
        canvas.getLevelUIText().text = "level " + level;


        QnA_S[] array = Resources.LoadAll <QnA_S>("Questions"); // takes all the QnA_S files from Resources
        for (int i = 0; i < array.Length; i++)
        {
            qnaArray.Add(array[i]);
        }


        BuildLevel();
    }
    private void Awake()
    {
        if (self == null)
        {
            self = this;

            DontDestroyOnLoad(gameObject); // Basic method to remain even after scene load
            GameController_S.maintainedScripts.Add(gameObject);
        }
        else
        {
            Destroy(this);
        }
    }