【发布时间】:2018-06-15 18:23:36
【问题描述】:
我想保存一个对话项目列表。我制作了一个名为对话项目的脚本,它只是一条消息,我制作了一个数组,这样它就可以成为一个对话,我制作了一个对话列表,这样我就可以进行多个对话。
[SerializeField] public List<DialogueList> dialogue = new List<DialogueList();
所以我创建了一个名为 DialogueList 的类的变量,其中包含对话项。
[System.Serializable]
public class DialogueList
{
[SerializeField] public string convoName;
[SerializeField] public int dialogueID;
[SerializeField] public DialogueItem[] dialogues;
}
我想保存这些对话,以便在稍后阶段以特定语言加载它们。但是由于某种原因,当我尝试保存名为 dialog 的变量时,我的 JSON 文件为空。
string jsonData = JsonUtility.ToJson(dialogue, true);
string _fullPath = "/caroline-dialogue" + ".json";
File.WriteAllText(Application.persistentDataPath + _fullPath, jsonData);
我尝试使用另一种方法,它确实有效,但它会变得非常混乱。
for (int i = 0; i < dialogue.Count; i++)
{
string jsonData = JsonUtility.ToJson(dialogue[i], true);
string _fullPath = "/caroline-dialogue-" + i + ".json";
File.WriteAllText(Application.persistentDataPath + _fullPath, jsonData);
}
我的问题是:我做错了什么?我是不是忘记了什么?我猜是名为 dialog 的变量有问题,因为使用 for 循环保存所有对话项都有效。
我希望我能很好地解释我的问题。
【问题讨论】: