public void LoadDialog() { XmlSerializer serializer = new XmlSerializer(typeof(SceneDialog)); string path = Application.dataPath + "/StreamingAssets/XML/sceneDialog_" + SceneManager.GetActiveScene().name + ".xml"; StreamReader stream = new StreamReader(path); sceneDialog = serializer.Deserialize(stream) as SceneDialog; stream.Close(); }
//public void SaveDialog() //{ // XmlSerializer serializer = new XmlSerializer(typeof(SceneDialog)); // var encoding = System.Text.Encoding.GetEncoding("UTF-8"); // StreamWriter stream = new StreamWriter(Application.streamingAssetsPath + "/XML/sceneDialog_" + SceneManager.GetActiveScene().name + ".xml", false, encoding); // serializer.Serialize(stream, sceneDialog); // stream.Close(); //} public IEnumerator LoadDialog(string path) { WWW www = new WWW(path); yield return(www); if (www.text.Length == 0) { Debug.Log("本场景无对话内容。"); } else { XmlSerializer serializer = new XmlSerializer(typeof(SceneDialog)); StringReader sr = new StringReader(www.text); sr.Read(); //跳过BOM头 sceneDialog = serializer.Deserialize(sr) as SceneDialog; sr.Close(); } }
void Start() { var go = Resources.Load("Prefabs/UI/Dialog") as GameObject; var go1 = Resources.Load("Prefabs/UI/DialogBackground") as GameObject; try { StartCoroutine(XMLManager.LoadAsync <SceneDialog>(Application.streamingAssetsPath + "/XML/Core/SceneDialog/sceneDialog_Battle_" + Global.GetInstance().IndexToString(Global.GetInstance().BattleIndex) + ".xml", result => sceneDialog = result)); } catch { Debug.Log("本场景无对话内容。"); } dialogBackground = Instantiate(go1, GameObject.Find("Canvas").transform); dialogBackground.SetActive(false); GameController.GetInstance().Invoke(() => { Units = UnitManager.GetInstance().units; foreach (var unit in Units.FindAll(u => ((CharacterStatus)u).characterIdentity == CharacterStatus.CharacterIdentity.noumenon)) { var dialogUI = Instantiate(go, dialogBackground.transform); dialogUI.SetActive(false); var unitPosition = unit.GetComponent <CharacterStatus>().arrowPosition + unit.transform.position; unitsUIDic.Add(unit, dialogUI.transform); dialogUIDic.Add(dialogUI.transform, unitPosition); } }, 0.1f); //var multi = new MultiConversation("Shikamaru", speakers, contents); //var single = new Conversation("Neji", "测试文本!"); //var turn = new TurnDialog(); //turn.conversations.Add(multi); //turn.conversations.Add(single); //var round = new RoundDialog(); //round.turnDialogList.Add(turn); //sceneDialog.roundDialogList.Add(round); //SaveDialog(); }