连连看项目实战之三(解析配置表)
推荐阅读:
这是一款连连看,如果只能连连,那估计大家看看就没兴趣了。如果在里面加上一些场景式对话,那么可能就会有意思许多。
今天就带大家学习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"];
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
注意:上面代码中,jd是一个数组,数组中的每个元素都是一个object对象。取数组中的“ID”字段时,jd[index][“ID”]是一个引用类型,需要转换成值类型(用来判断当前对话是否应该结束),此处需要使用拆箱操作来转换成string类型,然后强制转换成int类型。
上面的NextDialog()方法是点击事件需要调用的方法,我们设定点击对话文字,开始当前场景的下一对话,方法与文章连连看项目实战之一(搭建场景)中给按钮添加点击事件的方法相似。
这里只实现了大致的方法,还有很多细节需要你慢慢优化,比如两人对话,一方说话时,另一方人物应该隐藏,隐藏方法为:setActive(false);同理显示方法为:setActive(true)。当前说话人物名字,都可以根据配置表取得。
文章来源: unity3d.blog.csdn.net,作者:爱上游戏开发,版权归原作者所有,如需转载,请联系作者。
原文链接:unity3d.blog.csdn.net/article/details/86672785
- 点赞
- 收藏
- 关注作者
评论(0)