您现在的位置: 主页 > 协议 > 通过XML文件实现人物之间的对话
本文所属标签:
为本文创立个标签吧:

通过XML文件实现人物之间的对话

来源:net 网络用户发布,如有版权联系网管删除 2018-07-12 

一、建立一个XML文档,放在项目中Assert/Resources/XML文件下

XML的内容如下:

 1 "1.0" encoding="utf-8"?> 2  3  4    5     门派长老 6     李清,你找我意欲何事? 7    8    9     李清10     回禀长老,弟子最近想出城历练一番,望长老允11   12   13     门派长老14     城外老虎数量不断增多,已经威胁到了人们的出行15   16   17     李清18     弟子愿去赶走虎群19   20   21   门派长老22   这里是500金币,你去准备一些随身物品,明天出发23   24   25     李清26     弟子明白27   28 

二、新建一个C#脚本,读取文件

脚本主要代码如下:

1、加载XML文件,将文件的数据存入到LIst集合中去

 1  public static List<string> ListXml;//定义一个string类型的List集合

1 public static int listIndex = 0;


1 public static string role;//角色名字2 public static string role_detail;//角色的对话
 4 public static void LoadXML(string name) 5     { 6         ListXml = new List<string>(); 7         XmlDocument xmlDocument = new XmlDocument();//定义一个XmlDocument 8         string data = Resources.Load(@"XML"+name).ToString();//Resources加载XML文档 9         xmlDocument.LoadXml(data);10         //SelectSingleNode(name).ChildNodes 查询该文档下的所有子集,返回一个集合11         XmlNodeList xmlNodeList = xmlDocument.SelectSingleNode(name).ChildNodes;12         //遍历集合,给每个子集(每条对话)增加一个分割标识符“:”,方便下面字符串的分割13         foreach (var xmlNode in xmlNodeList)14         {15             XmlElement xmlElement = (XmlElement)xmlNode;                     16             ListXml.Add(xmlElement.ChildNodes.Item(0).InnerText+":"+ xmlElement.ChildNodes.Item(1).InnerText);          17         }       18     }

2、分割集合中的子集(每条对话),根据每个子集的角色名字(role),显示出所对应的UI

 1  //分割每个子集(每条对话) 2     public static void ListDiv(List<string> rolelist,int index) 3     { 4          5         string[] role_array = rolelist[index].Split(':');//将每条对话从设置好的标识符“:”分割 6         role = role_array[0];//角色名字 7         role_detail = role_array[1];//角色对话 8         Debug.Log(role +":"+ role_detail); 9         string text = role + ":" + role_detail;10         //根据上面分割的role(角色名字),显示所对应的对话框11         switch (role)12         {13             case "李清":14                 //显示UI界面15                 //text值传过去16                 //我这里用的是UI框架 和 一个text的全局变量来控制的17                 TTUIPage.ShowPage();18                 Global_Variable.Liqin_text.text = text.ToString();19                 break;20             case "门派长老":21                 TTUIPage.ShowPage();22                 Global_Variable.Dean_text.text = text.ToString();23                 break;24         }25     }

3、加载XML文件,读取对话

 1 private void Start() 2     { 3         //调用LoadXML方法 4         LoadXML("dialogues1"); 5     } 6     private void Update() 7     { 8         if (Input.GetMouseButtonDown(0)) 9         {10             //通过集合的长度,判断对话是否全部读取完毕11             if (listIndex >= ListXml.Count - 1)12             {13                 //对话读取完毕14             }15             else16             {17                 //读取行下一条对话18                 listIndex++;19                 //调用ListDiv方法继续加载对话20                 ListDiv(ListXml, listIndex);21             }22         }       23     }



              查看评论 回复



嵌入式交流网主页 > 协议 > 通过XML文件实现人物之间的对话
 一个 对话 角色

"通过XML文件实现人物之间的对话"的相关文章

网站地图

围观()