protected override void Excute(BehaviorData inData) { if (inData.ContainForm("SPEAKER")) { _dialogue.characterName = inData.speaker; } else if (inData.ContainForm("TALK")) { string talk = inData.talk.Replace("\\n", "\n"); if (GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Load || GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Skip) { // 대화를 바로 실행한다 _dialogue.talkMessage = talk; } else { _dialogue.PrintMessage(talk, 0, 0.05f); } } else { Debug.LogError(StringHelper.Format("[{0}] 대화 명령어가 등록되지 않았습니다!", inData.form)); } }
protected override void Excute(BehaviorData inData) { if (inData.ContainForm("BGM")) { _bgm.ShowResource(inData.name, inData); } else if (inData.ContainForm("SE")) { _se.ShowResource(inData.name, inData); } else if (inData.ContainForm("DISTRACTOR")) { // 선택지 히스토리를 따름 if (GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Load) { GameDataManager.getInstance.followDistactor = GameDataManager.getInstance.distractorHistory[GameDataManager.getInstance.readDistractorHistory]; if (GameDataManager.getInstance.followDistactor == GameDataManager.getInstance.NONE_SELECT_DISTRACTOR) { GameDataManager.getInstance.readCount = GameDataManager.getInstance.FindDisractorStartArea(GameDataManager.getInstance.NONE_SELECT_DISTRACTOR); } GameDataManager.getInstance.readDistractorHistory++; } else { GameDataManager.getInstance.stopBehavior = true; _distractor.ClearDistractorList(); string[] splitMessage = inData.distractorList.Split('-'); for (int i = 0; i < splitMessage.Length; i++) { if (i == 0) { continue; } _distractor.CreateDistractor(splitMessage[i], inData.notChooseDistractorTime); } _distractor.RefreshDistractorPosition(); } } else if (inData.ContainForm("BACKGROUND")) { _background.ShowResource(inData.name); } else { Debug.LogError(StringHelper.Format("[{0}] 실행 명령어가 등록되지 않았습니다!", inData.form)); } }
public bool ExcuteBehavior(BehaviorData inData) { if (inData.ContainForm(LoadKey)) { Excute(inData); return(true); } return(false); }
protected override void Excute(BehaviorData inData) { if (inData.ContainForm("BGM")) { _bgm.HideAllResource(); } else { Debug.LogError(StringHelper.Format("[{0}] 중단 명령어가 등록되지 않았습니다!", inData.form)); } }
protected override void Excute(BehaviorData inData) { if (GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Load) { inData.time = 0; } if (inData.ContainForm("RAIN_START")) { _rainScript.gameObject.SetActive(true); _rainScript.RainStart(inData.time); } else if (inData.ContainForm("RAIN_END")) { _rainScript.RainEnd(inData.time); } else { Debug.LogError(StringHelper.Format("[{0}] 파티클 명령어가 등록되지 않았습니다!", inData.form)); } }
protected override void Excute(BehaviorData inData) { if (inData.ContainForm("CHARACTER")) { _character.LoadResource(inData.name, inData); } else if (inData.ContainForm("BGM")) { _bgm.LoadResource(inData.name); } else if (inData.ContainForm("BACKGROUND")) { _background.LoadResource(inData.name); } else if (inData.ContainForm("SE")) { _se.LoadResource(inData.name); } else { Debug.LogError(StringHelper.Format("[{0}] 로드 명령어가 등록되지 않았습니다!", inData.form)); } }
protected override void Excute(BehaviorData inData) { if (inData.ContainForm("START")) { int distractorNumber = inData.distractorNumber; int followNumber = GameDataManager.getInstance.followDistactor; if (distractorNumber != followNumber) { GameDataManager.getInstance.readCount = GameDataManager.getInstance.FindDisractorEndArea(distractorNumber); } } else if (inData.ContainForm("END")) { if (GameDataManager.getInstance.followDistactor == inData.distractorNumber) { GameDataManager.getInstance.followDistactor = -1; } } else { Debug.LogError(StringHelper.Format("[{0}] 선택지 명령어가 등록되지 않았습니다!", inData.form)); } }
protected override void Excute(BehaviorData inData) { if (inData.ContainForm("SCREEN_CLEAR")) { _dialogue.name = string.Empty; _dialogue.talkMessage = string.Empty; } else if (inData.ContainForm("START")) { _popupLoading.gameObject.SetActive(true); _popupLoading.Init(); } else if (inData.ContainForm("END")) { //GameDataManager.getInstance.stopBehavior = true; GameDataManager.getInstance.nowLoading = false; } else if (inData.ContainForm("WAIT")) { if (GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Load) { inData.time = 0; } GameDataManager.getInstance.behaviorDelayTime = inData.time; } else if (inData.ContainForm("VIBRATE")) { #if UNITYPLATFORM == UNITY_ANDROID && (!UNITY_EDITOR) //Handheld.Vibrate(); #endif } else { Debug.LogError(StringHelper.Format("[{0}] 시스템 명령어가 등록되지 않았습니다!", inData.form)); } }
/// <summary> /// 선택지 끝 판별 /// </summary> /// <param name="distractorNumber">선택지 종료</param> /// <returns></returns> public int FindDisractorEndArea(int distractorNumber) { int result = -1; for (int i = 0; i < GameDataManager.getInstance._behaviorList.Count; i++) { BehaviorData data = GameDataManager.getInstance._behaviorList[i]; if (data._read) { continue; } if (data.ContainForm("DISTRACTOR_END") && data.distractorNumber.CompareTo(distractorNumber) == 0) { result = i; break; } } return(result + 1); }
protected override void Excute(BehaviorData inData) { // 액션을 바로 실행한다 if (GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Load) { inData.time = 0; } bool applyDelayTime = true; if (inData.ContainForm("SCENE_FADEIN")) { _fadeAction.FadeIn(inData.time); } else if (inData.ContainForm("SCENE_FADEOUT")) { _fadeAction.FadeOut(inData.time); } else if (inData.ContainForm("CHATBOX_SHOW")) { _chatBoxAction.ShowChatBox(inData.time); } else if (inData.ContainForm("CHATBOX_HIDE")) { _chatBoxAction.HideChatBox(inData.time); } else if (inData.ContainForm("TEXT_FADEIN")) { _chatBoxAction.ChatFadeIn(inData.time); } else if (inData.ContainForm("TEXT_FADEOUT")) { _chatBoxAction.ChatFadeOut(inData.time); } else if (inData.ContainForm("SCENE_SHAKE")) { _shakeAction.ScreenShake(5, inData.time, 50); } else if (inData.ContainForm("CHARACTER_MOVE_IN")) { _character.FadeIn(inData); } else if (inData.ContainForm("CHARACTER_MOVE_OUT")) { _character.FadeOut(inData); } else if (inData.ContainForm("DISTRACTOR_FADEOUT")) { _distractor.VanishDistractorButton(inData.time); } else if (inData.ContainForm("SE_FADEOUT")) { applyDelayTime = false; _se.FadeOut(inData.name, inData.time); } else if (inData.ContainForm("SE_FADEIN")) { applyDelayTime = false; _se.FadeIn(inData.name, inData.time); } else if (inData.ContainForm("BGM_FADEOUT")) { applyDelayTime = false; _bgm.FadeOut(inData.name, inData.time); } else if (inData.ContainForm("BGM_FADEIN")) { applyDelayTime = false; _bgm.FadeIn(inData.name, inData.time); } else if (inData.ContainForm("BACKGROUND_CLOUD")) { _fadeAction.CloudFadeIn(inData.time); } else if (inData.ContainForm("BACKGROUND_CLEAN")) { _fadeAction.CloudFadeOut(inData.time); } else if (inData.ContainForm("BACKGROUND_PUSH")) { _background.Push(inData.name, inData.direction, inData.time); } else if (inData.ContainForm("BACKGROUND_FADEIN")) { if (inData.axis == "NONE") { _background.FadeIn(inData.name, inData.time); } else if (inData.axis == "X축") { _background.ShowResource(inData.name); _fadeAction.AxisXFadeIn(inData.time); } } else { Debug.LogError(StringHelper.Format("[{0}] 액션 명령어가 등록되지 않았습니다!", inData.form)); } GameDataManager.getInstance.behaviorDelayTime = (applyDelayTime) ? inData.time : 0; }
IEnumerator Co_ActionBehavior() { while (_dataManager.readCount < _dataManager._behaviorList.Count) { if (Input.GetMouseButton(0)) { _dataManager.next = true; } if (_dataManager.next == false) { if (_dataManager.scriptPlayMode == GameDataManager.EScriptPlayMode.Skip || _dataManager.scriptPlayMode == GameDataManager.EScriptPlayMode.Auto) { _dataManager.next = true; } } if (_dataManager.scriptPlayMode == GameDataManager.EScriptPlayMode.Load) { if (GameDataManager.getInstance.readCount >= GameDataManager.getInstance.loadLine) { _dataManager.scriptPlayMode = GameDataManager.EScriptPlayMode.Touch; } } if (_dataManager.stopBehavior || !_dataManager.next) { yield return(null); } else { GameDataManager.getInstance.behaviorDelayTime = 0; data = GameDataManager.getInstance._behaviorList[_dataManager.readCount]; data._read = true; _dataManager.readCount++; //if (_dataManager.scriptPlayMode == GameDataManager.EScriptPlayMode.Load) // { DevelopeLog.Log(StringHelper.Format("[{0}] Line {1} Skip", data.form, GameDataManager.getInstance.readCount)); Debug.Log(StringHelper.Format("[{0}] Line {1} Skip", data.form, GameDataManager.getInstance.readCount)); // } bool find = false; int findBehaviorType = -1; for (int i = 0; i < _managerArray.Length; i++) { find = _managerArray[i].ExcuteBehavior(data); if (find) { findBehaviorType = i; break; } } if (findBehaviorType == 7) { if (_dataManager.scriptPlayMode == GameDataManager.EScriptPlayMode.Touch && data.ContainForm("TALK")) { _dataManager.next = false; yield return(new WaitForSeconds(0.1f + GameDataManager.getInstance.behaviorDelayTime)); } else { yield return(new WaitForSeconds(GameDataManager.getInstance.behaviorDelayTime)); } } else { yield return(new WaitForSeconds(GameDataManager.getInstance.behaviorDelayTime)); } } } }