using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using LitJson; public class BlockInit : MonoBehaviour { public List blockList = new List(); public List jsonfiles; public Transform blockUIContent; public GameObject blockUIPreferb; void Start() { initBlockListUI(); } public string ReadJson(TextAsset file) { return file.text; } //读取到的json文件转换成实体类 public List JsonToBlockInstance(string json) { JsonData blockMsgArray = JsonMapper.ToObject(json); List blockinsts = new List(); foreach (JsonData bjson in blockMsgArray) { //print(JsonMapper.ToObject(bjson).name); blockinsts.Add(JsonMapper.ToObject(bjson.ToJson())); } return blockinsts; } public void addToBlockList(List insts) { foreach (BlockInstance inst in insts) { blockList.Add(inst); } } public void refreshUI() { ClearTransfromChild(blockUIContent); foreach (BlockInstance block in blockList) { GameObject blockUI = Instantiate(blockUIPreferb,blockUIContent); blockUI.GetComponentInChildren().text = block.name; } } public void ClearTransfromChild(Transform group) { foreach (Transform TransformChild in group) { Destroy(TransformChild.gameObject); } } public void initBlockListUI() { foreach(TextAsset jsonfile in jsonfiles) { List instances = JsonToBlockInstance(jsonfile.text); addToBlockList(instances); } refreshUI(); } }