連連看項目實戰之三(解析配置表)
阿新 • • 發佈:2019-01-28
bject 點擊事件 wak iou 顯示 按鈕 src for in net
推薦閱讀:
- ?我的CSDN
- ?我的博客園
- ?QQ群:704621321
?????? 這是一款連連看,如果只能連連,那估計大家看看就沒興趣了。如果在裏面加上一些場景式對話,那麽可能就會有意思許多。
?????? 今天就帶大家學習Unity解析配置表,顯示配置表信息,即對話文字。
用excel寫好對話信息,如下:
?????? 百度“Excel轉txt”,將上賣弄的excel格式轉換成txt類型文件,命名為dialog。
?????? 下載LitJson.dll文件,在Unity項目Assets目錄下創建Plugins文件夾,並將下載好的LitJson.dll文件並放入其中。新建Configs文件夾並將dialog.txt文件放入其中。
?????? 在unity中新建場景,並搭建如下對話UI,保存並命名為DialogScene
新建C#腳本並命名為ParseConfigs,寫下如下代碼:
using System.Collections; using System.Collections.Generic; using UnityEngine; using LitJson; using System.IO; using UnityEngine.UI; public class ParseConfigs : MonoBehaviour { private Text dialogText; private JsonData jd; private int index=0; // Use this for initialization void Awak() { } void Start () { dialogText =GetComponent<Text>(); StreamReader sr = File.OpenText("Assets/Resources/Configs/Dialog.txt"); string strline = sr.ReadToEnd(); jd = JsonMapper.ToObject(strline);//jd是一個數組數組中的每個元素是一個Object dialogText.text = (string)jd[index]["dialogText"]; } // Update is called once per frame void Update () { } public void NextDialog() { index++; string ob = (string)jd[index]["ID"];//箱操作 int id= int.Parse(ob);轉換成int類型 if (id > (GameManager.Instance.currDialog+1) * 1000) { //當前對話結束 return; } else { dialogText.text = (string)jd[index]["dialogText"]; } } }
?????? 註意:上面代碼中,jd是一個數組,數組中的每個元素都是一個object對象。取數組中的“ID”字段時,jd[index]["ID"]是一個引用類型,需要轉換成值類型(用來判斷當前對話是否應該結束),此處需要使用拆箱操作來轉換成string類型,然後強制轉換成int類型。
?????? 上面的NextDialog()方法是點擊事件需要調用的方法,我們設定點擊對話文字,開始當前場景的下一對話,方法與文章連連看項目實戰之一(搭建場景)中給按鈕添加點擊事件的方法相似。
?????? 這裏只實現了大致的方法,還有很多細節需要你慢慢優化,比如兩人對話,一方說話時,另一方人物應該隱藏,隱藏方法為:setActive(false);同理顯示方法為:setActive(true)。當前說話人物名字,都可以根據配置表取得。
連連看項目實戰之三(解析配置表)