+事件连琐

+对话框分化完毕
+打包Resources文件夹
This commit is contained in:
2024-09-18 13:16:54 +08:00
parent 5e7e7bbb0e
commit d4a9b7e0a3
34 changed files with 2580 additions and 251 deletions

View File

@@ -1,9 +1,8 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEngine;
namespace Data
namespace Dialog
{
public class Dialog
{
@@ -15,7 +14,8 @@ namespace Data
public readonly string DialogEvent;
public readonly string DialogEventArg;
public Dialog(int index, string content, string type, string animation, string character, string dialogEvent, string dialogEventArg)
public Dialog(int index, string content, string type, string animation, string character, string dialogEvent,
string dialogEventArg)
{
Index = index;
Content = content;
@@ -29,10 +29,9 @@ namespace Data
public class DialogManager : MonoBehaviour
{
public string filePath = "Assets/Dialog/DialogData.csv";
private readonly List<Dialog> _dialog = new();
private readonly List<Dialog> _dialog = new();
private static DialogManager _instance;
public static DialogManager Instance
{
get
@@ -44,6 +43,7 @@ namespace Data
return _instance;
}
}
private void Awake()
{
if (_instance != null && _instance != this)
@@ -52,18 +52,25 @@ namespace Data
}
else
{
LoadCsv(filePath);
LoadCsv("Dialog/DialogData");
_instance = this;
}
}
private void LoadCsv(string path)
private void LoadCsv(string resourcePath)
{
var lines = File.ReadAllLines(path);
var textAsset = Resources.Load<TextAsset>(resourcePath);
if (textAsset == null)
{
Debug.LogError($"Unable to find CSV file at path: {resourcePath}");
return;
}
var lines = textAsset.text.Split('\n');
for (var i = 1; i < lines.Length; i++)
{
var values = lines[i].Split(',');
if (values.Length < 7) continue;
var dialog = new Dialog(
int.Parse(values[0]),
values[1],
@@ -73,11 +80,11 @@ namespace Data
values[5],
values[6]
);
_dialog.Add(dialog);
}
}
public Dialog GetDialogByIndex(int index)
{
foreach (var dialog in _dialog.Where(dialogue => dialogue.Index == index))