// 컷씬 발동 조건이 충족됐으면 컷씬을 연다. 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; } }
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(); } } }
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(); }
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); } }
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; }