コード例 #1
0
    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();
    }
コード例 #2
0
    //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();
        }
    }
コード例 #3
0
    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();
    }