怎樣做網(wǎng)站策劃網(wǎng)站收錄免費(fèi)咨詢
一、拿到了題庫(kù)
分析一下可以定義的
1、序號(hào),用來區(qū)分題目數(shù),每個(gè)題有唯一的序號(hào)
2、題目,就是下圖的Q
3、預(yù)設(shè)的回答,下圖的A
?分析完我可以知道有三個(gè)字段,分別是int index、string Q、string A。
二、把字段丟到Excel表格里
?第一行寫字段,下面再寫數(shù)據(jù)
?三、通過一些工具把Excel轉(zhuǎn)化成Json文件
可以看到生成的Json文件是這樣的
?看著稍微有點(diǎn)亂,可以用格式化工具調(diào)整一下
這是我常用的格式化工具
在線JSON校驗(yàn)格式化工具(Be JSON)
?
?這樣就可以清晰分辨我們的題目和預(yù)設(shè)回答了,一些小調(diào)整也可以直接在這里處理
?四、改Json文件
新建一個(gè)txt文本,把剛剛生成的數(shù)據(jù)全部粘貼進(jìn)文本里,并把后綴改成.json
這樣就是一個(gè)合格的Json文件了
?五、生成C#類
還是剛剛那個(gè)網(wǎng)站,找到Json轉(zhuǎn)C#實(shí)體類,把你的Json文件丟進(jìn)去他就能幫你生成一個(gè)C#類
?在Unity里新建一個(gè)QAData類,復(fù)制這些生成的這些就好了(生成的一般都是Root,改成自己的類)。
?六、Json解析
using Newtonsoft.Json;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Networking;public class Test : MonoBehaviour
{void Start(){StartCoroutine(LoadJson(Application.streamingAssetsPath + "/QA.json",JsonHandle));}/// <summary>/// 處理Json數(shù)據(jù)/// </summary>void JsonHandle(string jsonData) {Debug.Log(jsonData);QAData qAData = JsonConvert.DeserializeObject<QAData>(jsonData);Debug.Log(" 共有" + qAData.QA.Count + "題");foreach (var item in qAData.QA){Debug.Log(item.index); Debug.Log(item.Q); Debug.Log(item.A);}}/// <summary>/// 讀取Json數(shù)據(jù)/// </summary>/// <param name="path"></param>/// <param name="action"></param>/// <returns></returns>IEnumerator LoadJson(string path,UnityAction<string> action = null){// 提取Json文件UnityWebRequest www = UnityWebRequest.Get(path);yield return www.SendWebRequest();if (www.result == UnityWebRequest.Result.Success){string jsonString = www.downloadHandler.text;action?.Invoke(jsonString);}else{Debug.Log("讀取失敗");}}
}
?這樣就全部拆出來了,答題系統(tǒng)也是一樣的思路。
?這樣做的好處是,當(dāng)需要外部去修改題庫(kù)時(shí)也無需重新打包,直接改Json文件就好了