예제 #1
0
        IEnumerator OnLoadLevel(SceneType level)
        {
            int displayProgress = 0;
            int toProgress      = 0;

            int            levelIndex = (int)level;
            AsyncOperation op         = SceneManager.LoadSceneAsync(levelIndex);

            op.allowSceneActivation = false;

            while (op.progress < 0.9f)
            {
                toProgress = (int)op.progress * 100;
                while (displayProgress < toProgress)
                {
                    ++displayProgress;
                    loaderPanel.SetLoaderProgress(displayProgress);
                    yield return(new WaitForEndOfFrame());
                }
            }

            toProgress = 100;
            while (displayProgress < toProgress)
            {
                ++displayProgress;
                loaderPanel.SetLoaderProgress(displayProgress);
                yield return(new WaitForEndOfFrame());
            }
            op.allowSceneActivation = true;

            yield return(new WaitForEndOfFrame());

            loaderScene.OnLeaveScenel(sceneType, delegate()
            {
                panelMgr.ClosePanel(UI.PanelName.LoaderPanel);

                GetScene(sceneType.ToString()).OnEnterScene(sceneType);
            });
        }