////////////////////////////////////////////////////////////////////// // Процедура загружает структуру дилогов уровня из xml. // // Параметры: // NameXmlFile - строка, имя xml файла в каталоге Resources/GUI/ // void GetTalksLevel(string NameXmlFile) { // Получим схему диалогов для текущего уровня string filePath = "GUI/" + NameXmlFile; TextAsset xml = (TextAsset)Resources.Load(filePath); // Нет схемы диалогов if (!xml) { return; } XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml.text); XmlNodeList xmltalkslist = xmlDoc.GetElementsByTagName("talk"); // массив секций talks foreach (XmlNode talksInfo in xmltalkslist) { CTalks talks = new CTalks(); int id = Convert.ToInt32(talksInfo.Attributes["id"].Value); talks.m_IsHelp = Convert.ToBoolean(talksInfo.Attributes["ishelp"].Value); XmlNodeList talkcontent = talksInfo.ChildNodes; foreach (XmlNode talkItems in talkcontent) // levels itens nodes. { talks.AddMessage(talkItems.Attributes["person"].Value, talkItems.Attributes["personwith"].Value, talkItems.InnerText); } TalksList.Add(id, talks); } }
////////////////////////////////////////////////////////////////////// // Процедура получает диалог по номеру и инициализирует отображение // диалога. Вызывается из класса CTalksTrigger. // // Параметры: // NumberTalks - число, номер диалога // public void ShowTalks(int NumberTalks) { CurrentTalks = TalksList[NumberTalks]; if (CurrentTalks.GetMessage()) { ShowTakls = true; } }
////////////////////////////////////////////////////////////////////// // Процедура загружает структуру дилогов уровня из xml. // // Параметры: // NameXmlFile - строка, имя xml файла в каталоге Resources/GUI/ // void GetTalksLevel(string NameXmlFile) { // Получим схему диалогов для текущего уровня string filePath = "GUI/"+NameXmlFile; TextAsset xml = (TextAsset)Resources.Load(filePath); // Нет схемы диалогов if (!xml) return; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml.text); XmlNodeList xmltalkslist = xmlDoc.GetElementsByTagName("talk"); // массив секций talks foreach (XmlNode talksInfo in xmltalkslist) { CTalks talks = new CTalks(); int id = Convert.ToInt32(talksInfo.Attributes["id"].Value); talks.m_IsHelp = Convert.ToBoolean(talksInfo.Attributes["ishelp"].Value); XmlNodeList talkcontent = talksInfo.ChildNodes; foreach (XmlNode talkItems in talkcontent) // levels itens nodes. { talks.AddMessage(talkItems.Attributes["person"].Value,talkItems.Attributes["personwith"].Value, talkItems.InnerText); } TalksList.Add(id,talks); } }
////////////////////////////////////////////////////////////////////// // Процедура получает диалог по номеру и инициализирует отображение // диалога. Вызывается из класса CTalksTrigger. // // Параметры: // NumberTalks - число, номер диалога // public void ShowTalks(int NumberTalks) { CurrentTalks = TalksList[NumberTalks]; if (CurrentTalks.GetMessage()) ShowTakls = true; }