// 컷씬 발동 조건이 충족됐으면 컷씬을 연다.
    public void openAndLoadCutScene(CutSceneData selectCutScene)
    {
        nowOpenCutScene = true;

#if UNITY_EDITOR
        Debug.LogError("openAndLoadCutScene selectCutScene : " + selectCutScene.id);
#endif

        currentCutScene = selectCutScene;

                #if UNITY_EDITOR
        Debug.LogError("openAndLoadCutScene CutSceneManager.nowOpenCutSceneType : " + CutSceneManager.nowOpenCutSceneType);

        if (DebugManager.instance.useDebug && CutSceneMakerForDesigner.instance.useCutSceneMaker)
        {
            CutSceneManager.nowOpenCutSceneType = CutSceneManager.CutSceneType.Pre;
        }
#endif

        if (CutSceneManager.nowOpenCutSceneType == CutSceneManager.CutSceneType.Pre)
        {
            currentCutScene.load();
            GameManager.me.cutSceneManager.startCutScene();

                        #if UNITY_EDITOR
            GameManager.me.cutSceneManager.lbCutSceneId.text = currentCutScene.id;
                        #endif
        }
    }
    public void initCutScene()
    {
        nowOpenCutScene     = false;
        currentCutScene     = null;
        cutSceneCount       = 0;
        readyCutScene       = null;
        hasCutScene         = false;
        blockControl        = false;
        nowOpenCutSceneType = CutSceneManager.CutSceneType.Close;

        init();

        if (string.IsNullOrEmpty(GameManager.me.stageManager.getCutSceneId()) == false)
        {
            string[] str = GameManager.me.stageManager.getCutSceneId().Split(',');
            readyCutScene = new CutSceneData[str.Length];

            cutSceneCount = str.Length;
            for (int i = 0; i < cutSceneCount; ++i)
            {
                readyCutScene[i] = GameManager.info.cutSceneData[str[i]];
                readyCutScene[i].init();
                hasCutScene = true;
                status      = Status.PREPARE;
            }
            return;
        }

        status = Status.NONE;
    }
 private void Start()
 {
     vol = GetComponent <Volume>();
     if (LoadGame.LoadCutscene() != null)
     {
         CutSceneData dataCut = LoadGame.LoadCutscene();
         lastIndex = dataCut.index - 1;
     }
 }
Example #4
0
    public static void Savecutscene(CutscenePrepare cutsceneControl)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        string          path      = Application.persistentDataPath + "/cutscene.fun";
        FileStream      stream    = new FileStream(path, FileMode.Create);
        CutSceneData    data      = new CutSceneData(cutsceneControl);

        formatter.Serialize(stream, data);
        stream.Close();
    }
    // 현재 열린 컷씬을 그냥 닫는다.
    public void closeOpenCutScene(bool closeAll = false)
    {
        isSkipMode = false;
        GameManager.me.characterManager.inGameGUITooltipContainer.gameObject.SetActive(false);
        status          = Status.PREPARE;
        nowOpenCutScene = false;
        currentCutScene = null;
        stopLoopInGame  = false;
        btnCutSceneSkip.gameObject.SetActive(false);
        btnCutSceneSpeed.gameObject.SetActive(false);
        nowCutSceneSpeed  = 1;
        prevCutSceneSpeed = 1;

        clearOpenEffectCam();

        if (closeAll)
        {
            status = Status.PREPARE;
            close();

            if (CutSceneManager.nowOpenCutSceneType == CutSceneManager.CutSceneType.After)
            {
                bool isDebug = false;

#if UNITY_EDITOR
                isDebug = DebugManager.instance.useDebug;
#endif

                if (isDebug || DebugManager.useTestRound || GameManager.me.successType != WSDefine.GAME_SUCCESS)
                {
                    if (GameManager.me.successType != WSDefine.GAME_SUCCESS && isDebug == false)
                    {
                        AdviceData.checkAdvice(GameManager.me.returnToSelectScene);
                    }
                    else
                    {
                        GameManager.me.returnToSelectScene();
                    }
                }
                else
                {
                    GameManager.me.cutSceneManager.useCutSceneCamera = true;

                    GameManager.me.checkMissionNoticeAndOpenRoundClearPopup();
                }
            }
            else
            {
                useCutSceneCamera = false;
                GameManager.me.returnToSelectScene();
            }
        }
    }
Example #6
0
    public static CutSceneData LoadCutscene()
    {
        string path = Application.persistentDataPath + "/cutscene.fun";

        if (File.Exists(path))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream      stream    = new FileStream(path, FileMode.Open);

            CutSceneData data = formatter.Deserialize(stream) as CutSceneData;
            stream.Close();
            return(data);
        }
        else
        {
            //Debug.LogError("Save file not found is" + path);
            return(null);
        }
    }
    // 다음 컷씬을 연다.
    public void openNextCutScene(string nextCutSceneId, bool deletePrevAssets = true)
    {
        status = Status.NONE;

        if (deletePrevAssets)
        {
            clearCutSceneAsset();
        }

        nowOpenCutScene = true;

                #if UNITY_EDITOR
        Debug.LogError("openNextCutScene nextCutSceneId : " + nextCutSceneId);
#endif

        currentCutScene = GameManager.info.cutSceneData[nextCutSceneId];

        currentCutScene.load();
        GameManager.me.cutSceneManager.startCutScene();
    }
Example #8
0
    private IEnumerator InitImpl(string cutSceneDataPath, Action <bool> _onComplete)
    {
        LoadingQueue loadQueue = new LoadingQueue(this);

        if (!string.IsNullOrEmpty(cutSceneDataPath))
        {
            LoadObject loadedCutSceneObj = loadQueue.Load(RESOURCE_CATEGORY.CUTSCENE, cutSceneDataPath, false);
            if (loadQueue.IsLoading())
            {
                yield return((object)loadQueue.Wait());
            }
            cutSceneData = (loadedCutSceneObj.loadedObject as CutSceneData);
        }
        if (cutSceneData == null)
        {
            _onComplete?.Invoke(false);
        }
        else
        {
            for (int n = 0; n < cutSceneData.seDataList.Count; n++)
            {
                loadQueue.CacheSE(cutSceneData.seDataList[n].seId, null);
            }
            for (int m = 0; m < cutSceneData.effectKeyData.Count; m++)
            {
                loadQueue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, cutSceneData.effectKeyData[m].effectId);
            }
            for (int k = 0; k < 2; k++)
            {
                if (cameras[k] == null)
                {
                    CutSceneCamera cutSceneCamera = new CutSceneCamera();
                    GameObject     cameraObj      = new GameObject("cut_scene_camera_ " + k.ToString());
                    cutSceneCamera.camera    = cameraObj.AddComponent <Camera>();
                    cutSceneCamera.transform = cameraObj.get_transform();
                    cutSceneCamera.transform.set_parent(_transform);
                    cameraObj.SetActive(false);
                    cameras[k] = cutSceneCamera;
                }
            }
            playerInfo = new PlayerInfo[4];
            enemyInfo  = new EnemyInfo();
            actorInfo  = new ActorInfo[cutSceneData.actorData.Length];
            effectInfo = new EffectInfo[cutSceneData.effectKeyData.Count];
            seInfo     = new SeInfo[cutSceneData.seDataList.Count];
            for (int l = 0; l < cutSceneData.actorData.Length; l++)
            {
                CutSceneData.ActorData actorData = cutSceneData.actorData[l];
                actorInfo[l]         = new ActorInfo();
                actorInfo[l].keyData = actorData;
                actorInfo[l].obj     = Object.Instantiate <GameObject>(actorData.prefab);
                actorInfo[l].obj.get_transform().set_parent(_transform);
                actorInfo[l].animator = actorInfo[l].obj.GetComponent <Animator>();
                actorInfo[l].animator.set_cullingMode(0);
                actorInfo[l].animator.set_runtimeAnimatorController(actorData.animatorController);
                actorInfo[l].animator.Rebind();
                actorInfo[l].obj.SetActive(false);
            }
            for (int j = 0; j < cutSceneData.effectKeyData.Count; j++)
            {
                EffectInfo effect = new EffectInfo
                {
                    keyData = cutSceneData.effectKeyData[j]
                };
                effectInfo[j] = effect;
            }
            for (int i = 0; i < cutSceneData.seDataList.Count; i++)
            {
                SeInfo se = new SeInfo
                {
                    keyData = cutSceneData.seDataList[i]
                };
                seInfo[i] = se;
            }
            if (loadQueue.IsLoading())
            {
                yield return((object)loadQueue.Wait());
            }
            _onComplete?.Invoke(true);
        }
    }
Example #9
0
    private IEnumerator Reload()
    {
        player.Instance.CutsceneMode = true;
        if (player.Instance.transform.GetChild(0).transform.GetChild(1).transform.childCount > 0)
        {
            if (player.Instance.transform.GetChild(0).transform.GetChild(1).transform.GetChild(0).GetComponent <Vaso>() != null)
            {
                Destroy(player.Instance.transform.GetChild(0).transform.GetChild(1).transform.GetChild(0).GetComponent <Vaso>().gameObject);
            }
        }
        if (player.Instance.transform.GetChild(0).transform.GetChild(3).transform.childCount > 0)
        {
            if (player.Instance.transform.GetChild(0).transform.GetChild(3).transform.GetChild(0).GetComponent <IceTranform>() != null)
            {
                Destroy(player.Instance.transform.GetChild(0).transform.GetChild(3).transform.GetChild(0).GetComponent <IceTranform>().gameObject);
            }
        }
        CutSceneData dataCut = LoadGame.LoadCutscene();

        //PlayerData data = LoadGame.LoadPlayer();
        //print(dataCut.index);
        //Debug.Log(dataCut.level);
        if (dataCut != null)
        {
            switch (dataCut.index)
            {
            case 8:
                Invoke("CutsceneLoad", .5f);
                break;

            case 17:
                Invoke("CutsceneLoad", .5f);
                break;

            case 26:
                Invoke("CutsceneLoad", .5f);
                break;

            case 35:
                Invoke("CutsceneLoad", .5f);
                break;
            }
        }
        if (dataCut == null)
        {
            starGame();
        }
        else if (dataCut.index == -1)
        {
            starGame();
        }
        else
        {
            player.Instance.CheatMenu.SetActive(false);
            // "Level" + dataCut.index.ToString()
            yield return(StartCoroutine(CheatMenu.Instance.Reload("Level" + dataCut.index.ToString())));
        }
        yield return(null);

        coroutine = null;
    }
    public void startUnitSkillCamScene(string id, Vector3 centerPosition, UIPlay.SKILL_EFFECT_CAM_TYPE camType, int skillSlotIndex = -1, bool changeCameraClip = true)
    {
#if UNITY_EDITOR
        if (BattleSimulator.nowSimulation)
        {
            return;
        }

//		if(camType == UIPlay.SKILL_EFFECT_CAM_TYPE.UnitSkill && UnitSkillCamMaker.instance.useUnitSkillCamMaker == false) return;
#else
        //if(camType == UIPlay.SKILL_EFFECT_CAM_TYPE.UnitSkill) return;
#endif

        if (string.IsNullOrEmpty(id) || GameManager.info.unitSkillCamData.ContainsKey(id) == false)
        {
#if UNITY_EDITOR
            if (UnitSkillCamMaker.instance.useUnitSkillCamMaker)
            {
                foreach (KeyValuePair <string, CutSceneData> kv in GameManager.info.unitSkillCamData)
                {
                    id = kv.Key;
                }
            }
            else
#endif
            {
                return;
            }
        }

        if (camType != UIPlay.SKILL_EFFECT_CAM_TYPE.ChaserAttack)
        {
            GameManager.me.effectManager.skillCamParticleEffectVisibleIsHide(true);
        }

        GameManager.me.characterManager.restoreMonsterVisibleForSkillCam();

        UIPlay.nowSkillEffectCamCenterPosition       = centerPosition;
        UIPlay.nowSkillEffectCamStatus               = UIPlay.SKILL_EFFECT_CAM_STATUS.Play;
        UIPlay.showMapAfterBackToGameCamFromSkillCam = false;
        UIPlay.nowSkillEffectCamType = camType;

        UIPlay.isFollowPlayerWhenSkillEffectCamIdle = false;

        _q.eulerAngles = new Vector3(0, 0, 0);
        GameManager.me.gameCameraContainer.transform.localRotation = _q;

        if (UIPlay.nowSkillEffectCamType == UIPlay.SKILL_EFFECT_CAM_TYPE.HeroSkill)
        {
            UIPlayUnitSlot.lastActiveSkillUseSlotIndex = -1;
            usingSkillSlotIndex = skillSlotIndex;
        }
        else
        {
            usingSkillSlotIndex = -1;
        }

        if (camType != UIPlay.SKILL_EFFECT_CAM_TYPE.ChaserAttack)
        {
            initUnitSkillCamMonsterVisible();
        }

        nowOpenCutScene = true;

        nowOpenCutSceneType = CutSceneType.UnitCam;

        currentCutScene = GameManager.info.unitSkillCamData[id];

        currentCutScene.load(true);

        currentCutScene.init();

        init();

        if (changeCameraClip)
        {
            useUnitCamCamra = true;                         // useCutSceneCameraWithoutClipSetting();
        }
        else
        {
            useCutSceneCameraWithoutClipSetting();
        }

        currentCutScene.status = CutSceneData.STATUS.PLAY;
        currentCutScene.update();         // 0초 이하인 이벤트는 여기에서 바로 실행시켜준다.

        btnCutSceneSpeed.gameObject.SetActive(false);
        nowCutSceneSpeed  = 1;
        prevCutSceneSpeed = 1;
    }