IEnumerator LoadAs()//Function that load main game async { AsyncOperation op = SceneManager.LoadSceneAsync(1); AnimSys.isLoading = true; slide.SetActive(true);//slider gets shown AnimSys.isAnimationDone = false; AnimSys.EnableDisableButton(button, false); //start button gets deactivated when is pressed for preventing problems AnimSys.EnableDisableButton(AnimSys.OptionButton, false); AnimSys.EnableDisableButton(AnimSys.MapButton, false); op.allowSceneActivation = false; AnimSys.PlayAnimation(AnimSys.LeftBackgroundOption, "LeftAnim", 0); AnimSys.PlayAnimation(AnimSys.RightBackgroundOption, "RightAnim", 0); while (!op.isDone)// while loading is not complete, fill loading bar percentage { float progress = Mathf.Clamp01(op.progress / .9f); slide.GetComponent <Slider>().value = progress * 4; if (op.progress >= 0.9f) { AnimSys.EnableDisableUI(AnimSys.LeftBackgroundOption, true, false); AnimSys.EnableDisableUI(AnimSys.RightBackgroundOption, true, false); AnimSys.PlayAnimation(AnimSys.LeftBackgroundOption, "LeftAnim", 1); AnimSys.PlayAnimation(AnimSys.RightBackgroundOption, "RightAnim", 1); if (AnimSys.isAnimationDone) { op.allowSceneActivation = true; } } yield return(null); } }