From 5e7e7bbb0e38f280bf332c153784a345f97f5055 Mon Sep 17 00:00:00 2001 From: Eicy Date: Wed, 18 Sep 2024 11:59:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E5=8C=96=E5=B1=8F=E5=B9=95dialog?= =?UTF-8?q?=E4=B8=8E=E5=AF=B9=E8=AF=9D=E6=A1=86dialog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/{Data.meta => Dialog.meta} | 0 Assets/Scripts/Dialog/BoxDialog.cs | 7 ++++++ Assets/Scripts/Dialog/BoxDialog.cs.meta | 3 +++ .../Scripts/{Data => Dialog}/DialogManager.cs | 8 +++--- .../{Data => Dialog}/DialogManager.cs.meta | 0 Assets/Scripts/{UI => Dialog}/ScreenDialog.cs | 25 +++++++++++++------ .../{UI => Dialog}/ScreenDialog.cs.meta | 0 7 files changed, 33 insertions(+), 10 deletions(-) rename Assets/Scripts/{Data.meta => Dialog.meta} (100%) create mode 100644 Assets/Scripts/Dialog/BoxDialog.cs create mode 100644 Assets/Scripts/Dialog/BoxDialog.cs.meta rename Assets/Scripts/{Data => Dialog}/DialogManager.cs (91%) rename Assets/Scripts/{Data => Dialog}/DialogManager.cs.meta (100%) rename Assets/Scripts/{UI => Dialog}/ScreenDialog.cs (76%) rename Assets/Scripts/{UI => Dialog}/ScreenDialog.cs.meta (100%) diff --git a/Assets/Scripts/Data.meta b/Assets/Scripts/Dialog.meta similarity index 100% rename from Assets/Scripts/Data.meta rename to Assets/Scripts/Dialog.meta diff --git a/Assets/Scripts/Dialog/BoxDialog.cs b/Assets/Scripts/Dialog/BoxDialog.cs new file mode 100644 index 0000000..f9a7e6d --- /dev/null +++ b/Assets/Scripts/Dialog/BoxDialog.cs @@ -0,0 +1,7 @@ +namespace Dialog +{ + public class BoxDialog + { + + } +} \ No newline at end of file diff --git a/Assets/Scripts/Dialog/BoxDialog.cs.meta b/Assets/Scripts/Dialog/BoxDialog.cs.meta new file mode 100644 index 0000000..f10cb28 --- /dev/null +++ b/Assets/Scripts/Dialog/BoxDialog.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 78f180e85e3a4ef095495b2760268559 +timeCreated: 1726626993 \ No newline at end of file diff --git a/Assets/Scripts/Data/DialogManager.cs b/Assets/Scripts/Dialog/DialogManager.cs similarity index 91% rename from Assets/Scripts/Data/DialogManager.cs rename to Assets/Scripts/Dialog/DialogManager.cs index 9ab0ef0..36e287f 100644 --- a/Assets/Scripts/Data/DialogManager.cs +++ b/Assets/Scripts/Dialog/DialogManager.cs @@ -13,8 +13,9 @@ namespace Data public readonly string Animation; public readonly string Character; public readonly string DialogEvent; + public readonly string DialogEventArg; - public Dialog(int index, string content, string type, string animation, string character, string dialogEvent) + public Dialog(int index, string content, string type, string animation, string character, string dialogEvent, string dialogEventArg) { Index = index; Content = content; @@ -22,6 +23,7 @@ namespace Data Animation = animation; Character = character; DialogEvent = dialogEvent; + DialogEventArg = dialogEventArg; } } @@ -58,7 +60,6 @@ namespace Data private void LoadCsv(string path) { var lines = File.ReadAllLines(path); - print(lines); for (var i = 1; i < lines.Length; i++) { var values = lines[i].Split(','); @@ -69,7 +70,8 @@ namespace Data values[2], values[3], values[4], - values[5] + values[5], + values[6] ); _dialog.Add(dialog); diff --git a/Assets/Scripts/Data/DialogManager.cs.meta b/Assets/Scripts/Dialog/DialogManager.cs.meta similarity index 100% rename from Assets/Scripts/Data/DialogManager.cs.meta rename to Assets/Scripts/Dialog/DialogManager.cs.meta diff --git a/Assets/Scripts/UI/ScreenDialog.cs b/Assets/Scripts/Dialog/ScreenDialog.cs similarity index 76% rename from Assets/Scripts/UI/ScreenDialog.cs rename to Assets/Scripts/Dialog/ScreenDialog.cs index de6d328..c47c9ec 100644 --- a/Assets/Scripts/UI/ScreenDialog.cs +++ b/Assets/Scripts/Dialog/ScreenDialog.cs @@ -1,5 +1,5 @@ using System.Collections; -using Data; +using Dialog; using Event; using Event.EventArgs; using TMPro; @@ -20,7 +20,8 @@ namespace UI public float printTime; public float maxPrintTime=10; public bool isTime2Break; - + private string _eventToBeExc; + private string _eventArg; private void Update() { @@ -29,8 +30,12 @@ namespace UI if (printTime > maxPrintTime) { isTime2Break = true; + StartCoroutine(Delay()); + } + if (_currentText == introduceText) + { + return; } - if (_currentText == introduceText) return; _timer += Time.deltaTime; if (!(_timer >= typingSpeed)) return; _timer = 0f; @@ -38,7 +43,13 @@ namespace UI textMeshPro.text = _currentText; _currentIndex++; } - + + // 沟槽的生命周期 + private IEnumerator Delay() + { + yield return new WaitForSeconds(1f); + EventManager.Instance.DialogEventSwitch(_eventToBeExc,_eventArg); + } private void Start() { EventManager.Instance.DialogPop += StartPrinting; @@ -73,13 +84,13 @@ namespace UI private void StartPrinting(DialogPopArgs e) { - if(!e.IsScreenDialog) return; + if(!DialogManager.Instance.GetDialogByIndex(e.Index).Type.Equals("screen")) return; if(printTime != 0) return; _start = true; _currentText = ""; - - introduceText = DialogManager.Instance.GetDialogByIndex(e.Index).Content; + _eventToBeExc = DialogManager.Instance.GetDialogByIndex(e.Index).DialogEvent; + _eventArg = DialogManager.Instance.GetDialogByIndex(e.Index).DialogEventArg; _currentIndex = 0; _timer = 0f; textMeshPro.fontSize = 80; diff --git a/Assets/Scripts/UI/ScreenDialog.cs.meta b/Assets/Scripts/Dialog/ScreenDialog.cs.meta similarity index 100% rename from Assets/Scripts/UI/ScreenDialog.cs.meta rename to Assets/Scripts/Dialog/ScreenDialog.cs.meta