示例#1
0
 /// <summary>
 /// 로드 스크립트
 /// </summary>
 void ParseLoad()
 {
     if (_splitArray[1] == "BGM")
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "LOAD_BGM", "Name", VNCommon.GetSplitValue(_splitArray, 2))
         });
     }
     else if (_splitArray[1] == "SE")
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "LOAD_SE", "Name", VNCommon.GetSplitValue(_splitArray, 2))
         });
     }
     else if (_splitArray[1] == "캐릭터")
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "LOAD_CHARACTER", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Direction", VNCommon.GetSplitValue(_splitArray, 3))
         });
     }
     else if (_splitArray[1] == "배경")
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "LOAD_BACKGROUND", "Name", VNCommon.GetSplitValue(_splitArray, 2))
         });
     }
     else
     {
         DevelopeLog.LogError(StringHelper.Format("로드 명령어를 찾을수 없습니다! [{0}]", _readLine));
     }
 }
示例#2
0
    public void OnSaveFile()
    {
        string savePath = Application.dataPath + "/Resources/Data/Episode/" + _txtFileName.text;

        System.IO.File.WriteAllText(savePath, _inputFieldScript.text);
        DevelopeLog.LogSystem(savePath + "에 저장 완료되었습니다.");
    }
示例#3
0
    void OnGUI()
    {
        if (!drawGUI)
        {
            return;
        }

        if (fileBroswer.draw())
        {
            if (fileBroswer.outputFile == null)
            {
                drawGUI = false;
            }
            else
            {
                if (fileBroswer.outputFile.FullName.Contains(".txt"))
                {
                    DevelopeLog.LogSystem(fileBroswer.outputFile.FullName + " 로드 완료되었습니다.");

                    drawGUI = false;

                    _inputFieldScript.text = System.IO.File.ReadAllText(fileBroswer.outputFile.FullName);

                    string[] splitArray = fileBroswer.outputFile.FullName.Split('\\');
                    _txtFileName.text = splitArray[splitArray.Length - 1];
                    _developeTool.OnToggle(0);
                }
            }
        }
    }
示例#4
0
 /// <summary>
 /// 파티클 스크립트
 /// </summary>
 void ParseParticle()
 {
     if (_splitArray[1] == "비")
     {
         if (_splitArray[2] == "시작")
         {
             GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
             {
                 hashTable = VNCommon.Hash("Form", "PARTICLE_RAIN_START", "Time", VNCommon.GetSplitValue(_splitArray, 3, "1.0"))
             });
         }
         else if (_splitArray[2] == "종료")
         {
             GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
             {
                 hashTable = VNCommon.Hash("Form", "PARTICLE_RAIN_END", "Time", VNCommon.GetSplitValue(_splitArray, 3, "1.0"))
             });
         }
         else
         {
             DevelopeLog.LogError("파티클 비 명령어를 찾을수 없습니다! [" + _splitArray.ToString() + "]");
         }
     }
     else
     {
         DevelopeLog.LogError(StringHelper.Format("파티클 명령어를 찾을수 없습니다! [{0}]", _readLine));
     }
 }
示例#5
0
    public void Awake()
    {
        Screen.SetResolution(1805, 720, false);
        DevelopeLog.SetTextLogUI(_txtLog);

        _fadebox.gameObject.SetActive(true);
        LeanTween.alphaCanvas(_fadebox.GetComponent <CanvasGroup>(), 0, 1.0f)
        .setOnComplete(() =>
        {
            _fadebox.gameObject.SetActive(false);
        });
    }
 public void OnBuild()
 {
     _dataManager.Init();
     DevelopeLog.ClearLog();
     DevelopeLog.LogSystem("============= Build Start =============");
     _developeTool.parser.BuildScript(_developeTool.scriptInputField.text);
     DevelopeLog.LogSystem("====================================");
     if (!_developeTool._tabSettings.isShowLog)
     {
         _developeTool._tabSettings.OnShowLog();
     }
 }
 public void OnPlay()
 {
     isPlay = !isPlay;
     if (_dataManager._behaviorList.Count == 0)
     {
         DevelopeLog.LogError("빌드를 먼저 해주세요!");
     }
     else
     {
         DevelopeLog.ClearLog();
         DevelopeLog.LogSystem("============= Game Start =============");
         _developeTool.gameEngine.StartActionBehavior();
     }
 }
示例#8
0
 /// <summary>
 /// 중지 스크립트
 /// </summary>
 void ParseStop()
 {
     if (_splitArray[1] == "BGM")
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "STOP_BGM")
         });
     }
     else
     {
         DevelopeLog.LogError(StringHelper.Format("중지 명령어를 찾을수 없습니다! [{0}]", _readLine));
     }
 }
示例#9
0
 /// <summary>
 /// 시스템 스크립트
 /// </summary>
 void ParseSystem()
 {
     if (_readLine.Contains("스크립트 종료"))
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "SYSTEM_END")
         });
     }
     else if (_readLine.Contains("화면 초기화"))
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "SYSTEM_SCREEN_CLEAR")
         });
     }
     else if (_readLine.Contains("진동"))
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "SYSTEM_VIBRATE")
         });
     }
     else if (_readLine.Contains("대기"))
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "SYSTEM_WAIT", "Time", VNCommon.GetSplitValue(_splitArray, 2, "1.0"))
         });
     }
     else if (_readLine.Contains("로드 시작"))
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "SYSTEM_START")
         });
     }
     else if (_readLine.Contains("로드 종료"))
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "SYSTEM_END")
         });
     }
     else
     {
         DevelopeLog.LogError(StringHelper.Format("시스템 명령어를 찾을수 없습니다! [{0}]", _readLine));
     }
 }
示例#10
0
        /// <summary>
        /// 스크립트 빌드
        /// </summary>
        /// <param name="text"></param>
        public void BuildScript(string text)
        {
            string[] data = text.Split('\n');
            for (int i = 0; i < data.Length; i++)
            {
                _readLine = data[i].Replace("\r", "");
                if (_readLine == "")
                {
                    LineEmpty();
                    continue;
                }

                _splitArray = _readLine.Split(' ');
                Parse();
            }
            DevelopeLog.Log(StringHelper.Format("빌드 완료 스크립트 {0}줄", data.Length));
            DevelopeLog.Log(StringHelper.Format("Episode Parser Behavior Command : {0}개", GameDataManager.getInstance._behaviorList.Count));
        }
示例#11
0
 /// <summary>
 /// 실행 스크립트
 /// </summary>
 void ParsePlay()
 {
     if (_splitArray[1] == "BGM")
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "PLAY_BGM", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Loop", VNCommon.GetSplitValue(_splitArray, 3, "반복안함"), "Delay", VNCommon.GetSplitValue(_splitArray, 4, "0"))
         });
     }
     else if (_splitArray[1] == "SE")
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "PLAY_SE", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Delay", VNCommon.GetSplitValue(_splitArray, 3, "0"), "Loop", VNCommon.GetSplitValue(_splitArray, 4, "반복안함"))
         });
     }
     else if (_splitArray[1] == "선택지")
     {
         if (_writeBehaviorData != null)
         {
             DevelopeLog.LogError("작성중인 선택지 데이터가 있습니다");
         }
         _writeBehaviorData = new BehaviorData();
         _writeBehaviorData.hashTable.Add("Form", "PLAY_DISTRACTOR");
         _writeBehaviorData.hashTable.Add("DistractorList", "");
         _writeBehaviorData.hashTable.Add("ValueCount", VNCommon.GetSplitValue(_splitArray, 2, "2"));
         _writeBehaviorData.hashTable.Add("NotChooseTime", VNCommon.GetSplitValue(_splitArray, 3, "0"));
     }
     else if (_splitArray[1] == "배경")
     {
         GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
         {
             hashTable = VNCommon.Hash("Form", "PLAY_BACKGROUND", "Name", VNCommon.GetSplitValue(_splitArray, 2))
         });
     }
     else
     {
         DevelopeLog.LogError(StringHelper.Format("실행 명령어를 찾을수 없습니다! [{0}]", _readLine));
     }
 }
示例#12
0
 public void OnLoadTutorial()
 {
     if (_tutorialText == string.Empty)
     {
         TextAsset file = Resources.Load("Data/ScriptTutorial") as TextAsset;
         if (file != null)
         {
             _tutorialText = file.text;
             _script.text  = _tutorialText;
             _developeTool.OnToggle(0);
             DevelopeLog.LogSystem("튜토리얼이 로드 되었습니다.");
         }
         else
         {
             DevelopeLog.LogError("튜토리얼 파일을 찾을 수 없습니다!");
         }
     }
     else
     {
         _script.text = _tutorialText;
         _developeTool.OnToggle(0);
         DevelopeLog.LogSystem("튜토리얼이 로드 되었습니다.");
     }
 }
示例#13
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));
                }
            }
        }
    }
示例#14
0
        /// <summary>
        /// 액션 스크립트
        /// </summary>
        void ParseAction()
        {
            #region 캐릭터
            if (_splitArray[1] == "캐릭터")
            {
                BehaviorData data = new BehaviorData();
                data.hashTable = VNCommon.Hash("Name", VNCommon.GetSplitValue(_splitArray, 2), "Direction", VNCommon.GetSplitValue(_splitArray, 3), "Time", VNCommon.GetSplitValue(_splitArray, 5));
                if (VNCommon.GetSplitValue(_splitArray, 4) == "출연")
                {
                    data.hashTable.Add("Form", "ACTION_CHARACTER_MOVE_IN");
                }
                if (VNCommon.GetSplitValue(_splitArray, 4) == "출연")
                {
                    data.hashTable.Add("Form", "ACTION_CHARACTER_MOVE_OUT");
                }
                GameDataManager.getInstance._behaviorList.Add(data);
            }
            #endregion
            #region 화면
            else if (_splitArray[1] == "화면")
            {
                BehaviorData data = new BehaviorData();
                if (VNCommon.GetSplitValue(_splitArray, 2) == "페이드인")
                {
                    data.hashTable.Add("Form", "ACTION_SCENE_FADEIN");
                }
                else if (VNCommon.GetSplitValue(_splitArray, 2) == "페이드아웃")
                {
                    data.hashTable.Add("Form", "ACTION_SCENE_FADEOUT");
                }
                else if (VNCommon.GetSplitValue(_splitArray, 2) == "쉐이크")
                {
                    data.hashTable.Add("Form", "ACTION_SCENE_SHAKE");
                }
                data.hashTable.Add("Time", VNCommon.GetSplitValue(_splitArray, 3, "1.0"));
                GameDataManager.getInstance._behaviorList.Add(data);
            }
            #endregion
            #region 대화창
            else if (_splitArray[1] == "대화창")
            {
                BehaviorData data = new BehaviorData();

                if (VNCommon.GetSplitValue(_splitArray, 2) == "숨김")
                {
                    data.hashTable.Add("Form", "ACTION_CHATBOX_HIDE");
                }
                else if (VNCommon.GetSplitValue(_splitArray, 2) == "표시")
                {
                    data.hashTable.Add("Form", "ACTION_CHATBOX_SHOW");
                }
                data.hashTable.Add("Time", VNCommon.GetSplitValue(_splitArray, 3, "0"));
                GameDataManager.getInstance._behaviorList.Add(data);
            }
            #endregion
            #region 글자
            else if (_splitArray[1] == "글자")
            {
                BehaviorData data = new BehaviorData();
                if (VNCommon.GetSplitValue(_splitArray, 2) == "페이드인")
                {
                    data.hashTable.Add("Form", "ACTION_TEXT_FADEIN");
                }
                else if (VNCommon.GetSplitValue(_splitArray, 2) == "페이드아웃")
                {
                    data.hashTable.Add("Form", "ACTION_TEXT_FADEOUT");
                }
                data.hashTable.Add("Time", VNCommon.GetSplitValue(_splitArray, 3, "1"));
                GameDataManager.getInstance._behaviorList.Add(data);
            }
            #endregion
            #region  택지
            else if (_splitArray[1] == "선택지")
            {
                if (VNCommon.GetSplitValue(_splitArray, 2) == "페이드아웃")
                {
                    GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
                    {
                        hashTable = VNCommon.Hash("Form", "ACTION_DISTRACTOR_FADEOUT", "Time", VNCommon.GetSplitValue(_splitArray, 3, "1.0"))
                    });
                }
                else
                {
                    DevelopeLog.LogError(StringHelper.Format("액션 선택지 명령어를 찾을수 없습니다! [{0}]", _readLine));
                }
            }
            #endregion
            #region 배경
            else if (_splitArray[1] == "배경")
            {
                if (VNCommon.GetSplitValue(_splitArray, 3) == "페이드인")
                {
                    GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
                    {
                        hashTable = VNCommon.Hash("Form", "ACTION_BACKGROUND_FADEIN", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Time", VNCommon.GetSplitValue(_splitArray, 4, "1.0"), "Axis", VNCommon.GetSplitValue(_splitArray, 5, "NONE"))
                    });
                }
                else if (VNCommon.GetSplitValue(_splitArray, 3) == "흐려지기")
                {
                    GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
                    {
                        hashTable = VNCommon.Hash("Form", "ACTION_BACKGROUND_CLOUD", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Time", VNCommon.GetSplitValue(_splitArray, 4, "1.0"), "Axis", VNCommon.GetSplitValue(_splitArray, 5, "NONE"))
                    });
                }
                else if (VNCommon.GetSplitValue(_splitArray, 3) == "맑아지기")
                {
                    GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
                    {
                        hashTable = VNCommon.Hash("Form", "ACTION_BACKGROUND_CLEAN", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Time", VNCommon.GetSplitValue(_splitArray, 4, "1.0"), "Axis", VNCommon.GetSplitValue(_splitArray, 5, "NONE"))
                    });
                }
                else if (VNCommon.GetSplitValue(_splitArray, 3) == "밀어내기")
                {
                    GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
                    {
                        hashTable = VNCommon.Hash("Form", "ACTION_BACKGROUND_PUSH", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Time", VNCommon.GetSplitValue(_splitArray, 4, "1.0"), "Direction", VNCommon.GetSplitValue(_splitArray, 5, "오른쪽"))
                    });
                }
                else
                {
                    DevelopeLog.LogError(StringHelper.Format("액션 배경 명령어를 찾을수 없습니다! [{0}]", _readLine));
                }
            }
            #endregion
            #region BGM
            else if (_splitArray[1] == "BGM")
            {
                if (VNCommon.GetSplitValue(_splitArray, 3) == "페이드아웃")
                {
                    GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
                    {
                        hashTable = VNCommon.Hash("Form", "ACTION_BGM_FADEOUT", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Time", VNCommon.GetSplitValue(_splitArray, 4, "1.0"))
                    });
                }
                else if (VNCommon.GetSplitValue(_splitArray, 3) == "페이드인")
                {
                    GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
                    {
                        hashTable = VNCommon.Hash("Form", "ACTION_BGM_FADEIN", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Time", VNCommon.GetSplitValue(_splitArray, 4, "1.0"))
                    });
                }
                else
                {
                    DevelopeLog.LogError(StringHelper.Format("액션 BGM 명령어를 찾을수 없습니다! [{0}]", _readLine));
                }
            }
            #endregion
            #region SE
            else if (_splitArray[1] == "SE")
            {
                if (VNCommon.GetSplitValue(_splitArray, 3) == "페이드아웃")
                {
                    GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
                    {
                        hashTable = VNCommon.Hash("Form", "ACTION_SE_FADEOUT", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Time", VNCommon.GetSplitValue(_splitArray, 4, "1.0"))
                    });
                }
                else if (VNCommon.GetSplitValue(_splitArray, 3) == "페이드인")
                {
                    GameDataManager.getInstance._behaviorList.Add(new BehaviorData()
                    {
                        hashTable = VNCommon.Hash("Form", "ACTION_SE_FADEIN", "Name", VNCommon.GetSplitValue(_splitArray, 2), "Time", VNCommon.GetSplitValue(_splitArray, 4, "1.0"))
                    });
                }
                else
                {
                    DevelopeLog.LogError(StringHelper.Format("액션 SE 명령어를 찾을수 없습니다! [{0}]", _readLine));
                }
            }
            #endregion
            else
            {
                DevelopeLog.LogError(StringHelper.Format("액션 명령어를 찾을수 없습니다! [{0}]", _readLine));
            }
        }
示例#15
0
        /// <summary>
        /// 선택지 스크립트
        /// </summary>
        void ParseDistractor()
        {
            // 선택지 스크립트 구분
            if (_readLine.Contains("선택지"))
            {
                if (_readLine.Contains("시작") || _readLine.Contains("종료"))
                {
                    int result = 0;
                    int.TryParse(_splitArray[2], out result);
                    int distractorNumber = 0;

                    if (result != 0)
                    {
                        distractorNumber = int.Parse(_splitArray[2]);
                    }
                    BehaviorData data = new BehaviorData();
                    if (_readLine.Contains("시작"))
                    {
                        data.hashTable.Add("Form", "DISTRACTOR_START");
                    }
                    else if (_readLine.Contains("종료"))
                    {
                        data.hashTable.Add("Form", "DISTRACTOR_END");
                    }
                    if (_readLine.Contains("않음"))
                    {
                        data.hashTable.Add("DistractorNumber", GameDataManager.getInstance.NONE_SELECT_DISTRACTOR.ToString());
                    }
                    else
                    {
                        data.hashTable.Add("DistractorNumber", distractorNumber.ToString());
                    }
                    GameDataManager.getInstance._behaviorList.Add(data);
                }
                else
                {
                    DevelopeLog.LogError(StringHelper.Format("선택지 명령어를 찾을수 없습니다! [{0}]", _readLine));
                }
            }
            // 선택지 메시지
            else if (_readLine[0] == '-')
            {
                if (_writeBehaviorData == null)
                {
                    DevelopeLog.LogError("선택지 정의가 설정되지 않았습니다");
                }
                else
                {
                    if (int.Parse(_writeBehaviorData.hashTable["ValueCount"].ToString()) > 0)
                    {
                        _writeBehaviorData.hashTable["DistractorList"] = StringHelper.Format("{0}{1}", _writeBehaviorData.hashTable["DistractorList"].ToString(), _readLine);
                        _writeBehaviorData.hashTable["ValueCount"]     = (int.Parse(_writeBehaviorData.hashTable["ValueCount"].ToString()) - 1).ToString();
                        if (int.Parse(_writeBehaviorData.hashTable["ValueCount"].ToString()) == 0)
                        {
                            GameDataManager.getInstance._behaviorList.Add(_writeBehaviorData);
                            _writeBehaviorData = null;
                        }
                    }
                }
            }
        }
示例#16
0
 public void OnStop()
 {
     _developeTool.gameEngine.StopActionBehavior();
     _dataManager.Init();
     DevelopeLog.LogSystem("============= Game Stop =============");
 }
示例#17
0
 public void  OnClearLog()
 {
     DevelopeLog.ClearLog();
 }