对话所需的信息
首先需要一个对话信息:
数据如下:含有当前对话的id、头像、文本以及选项
[CreateAssetMenu(fileName ="New Dialogue",menuName ="Dialogue/Dialogue Data")]
public class DialougeData_SO : ScriptableObject
{
public List<DialoguePiece> dialoguePieces = new List<DialoguePiece>();
}
[System.Serializable]
public class DialoguePiece {
public string ID;
public Sprite image;
public string text;
public List<DialogueOption> options = new List<DialogueOption>();
}
选项的SO:
[System.Serializable]
public class DialogueOption
{
public string text;
public string targetID;
public bool takeQuest;
}
此时unity对话SO如下:
逻辑:在Dialogue Data中有若干个piece,每个piece中有若干个ID、Text、Image和Quest,还包含有List<Option>
如果有Option,我们就通过获取其Target ID。
对话的UI面板设置
创建一个面板:
设定Panel