首页 > 其他 > 详细

连连看项目实战之三(解析配置表)

时间:2019-01-28 14:45:16      阅读:181      评论:0      收藏:0      [点我收藏+]

推荐阅读:

?????? 这是一款连连看,如果只能连连,那估计大家看看就没兴趣了。如果在里面加上一些场景式对话,那么可能就会有意思许多。

?????? 今天就带大家学习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)。当前说话人物名字,都可以根据配置表取得。

连连看项目实战之三(解析配置表)

原文:https://www.cnblogs.com/shirln/p/10330051.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!