Exemple #1
0
    public static void StartCinemaScene(bool bShowPanelAfterFinish = true, int seqIdx = 0, int endSeqIdx = 0, System.Action _EndCall = null)
    {
        if (StartCheck)
        {
            return;
        }

        EndCall = _EndCall;
        GameInfoBase.NotTimeUpdate = true;

        Time.timeScale = 1;
        StartCheck     = true;

        CutSceneSendMessage.PauseAllUnits(true);

        cinemaSceneManager = GameObject.Find("CinemaSceneManager").GetComponent <CinemaSceneManager> ();

        cinemaSceneManager.storeAliveCamera();
        cinemaSceneManager.setActiveSequences(true);
        cinemaSceneManager.InActiveOtherCharsExceptMe(NetData.instance.GetUserInfo()._userCharIndex);

        cinemaSceneManager.seqs[endSeqIdx].PlaybackFinished = (sequence) =>
        {
            EndCinemaScene();
            cinemaSceneManager.setActiveSequences(false);
            cinemaSceneManager.restoreUnactivedCamera();
            cinemaSceneManager.closeDialogPanel();

            // endScene에서 UIPanel들을 살려주기 때문에 컷씬 종료후 UIPanel을 보지 않으려면 revicePanel을 false로 해준다.
            if (bShowPanelAfterFinish == false)
            {
                CutSceneSendMessage.PauseAllUnits(true);
                UIMgr.setHudPanelVisible(false);
                UIMgr.setInGameBoardPanelVisible(false);
                ChatPopup chat = UIMgr.OpenChatPopup();
                if (chat != null)
                {
                    chat.Hide();
                }
                //UIMgr.setChatPopupVisible(false);
            }
        };

        cinemaSceneManager.seqs[seqIdx].Play();
    }