using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ZX6Controller : MonoBehaviour { public GameObject familyNameIndexPrefab; public Transform familyNameIndexsContainer; public Text familyNameText1; public Text familyNameText2; public Text countyNameText; public Text familyNameDes1Text; public Text familyNameDes2Text; public Button backToIndexButton; public Button backToAreaButton; public Button closeButton; public GameObject familyNameAreaPrefab; public Transform familyNameAreasContainer; public Transform CounyContainer; public Text logsText; private Animator animator; private string basePath; private List familyNameIndexDataList; private FamilyNameData familyNameData; void Start() { familyNameIndexDataList = new List(); animator = this.GetComponent(); basePath = CommonData.DataServer + "/ZX6/Data/"; if (backToIndexButton != null) backToIndexButton.onClick.AddListener(onBackToIndexButtonClick); if (backToAreaButton != null) backToAreaButton.onClick.AddListener(onBackToAreaButtonClick); if (closeButton != null) closeButton.onClick.AddListener(onCloseButtonClick); StartCoroutine(JsonLoader.LoadJSON(basePath + "FamilyNameIndexs.json", onFamilyNameIndexDataReceived)); } private void onFamilyNameIndexDataReceived(string data) { familyNameIndexDataList = JsonTools.ListFromJson(data); familyNameIndexsContainer.DetachChildren(); foreach (var familyNameIndexData in familyNameIndexDataList) { GameObject familyNameIndexItem = Instantiate(familyNameIndexPrefab, familyNameIndexsContainer); FamilyNameIndex familyNameIndex = familyNameIndexItem.GetComponent(); familyNameIndex.setData(familyNameIndexData); familyNameIndex.onFamilyNameSelected.AddListener(onFamilyNameSelected); } } private void onFamilyNameDataReceived(string data) { familyNameData = JsonTools.ObjectFromJson(data); familyNameDes1Text.text = familyNameData.des1 + "\n" + familyNameData.des2; familyNameDes2Text.text = familyNameData.des2; familyNameAreasContainer.DetachChildren(); foreach (var familyNameAreaData in familyNameData.areas) { GameObject familyNameAreaItem = Instantiate(familyNameAreaPrefab, familyNameAreasContainer); FamilyNameArea familyNameArea = familyNameAreaItem.GetComponent(); familyNameArea.setData(familyNameAreaData); familyNameArea.onFamilyNameCountySelected.AddListener(onFamilyNameCountySelected); } animator.SetBool("showFamilyName", true); } private void onFamilyNameSelected(FamilyName familyName) { this.familyNameText1.text = familyName.nameText.text; this.familyNameText2.text = familyNameText1.text; StartCoroutine( JsonLoader.LoadJSON(basePath + familyName.nameText.text + ".json", onFamilyNameDataReceived)); } private void onFamilyNameCountySelected(FamilyNameCounty familyNameCounty) { this.countyNameText.text = familyNameCounty.data.countyName; logsText.text = ""; foreach (var str in familyNameCounty.data.logs) { logsText.text += str + "\r\n"; } animator.SetBool("showArea", false); } private void onBackToIndexButtonClick() { animator.SetBool("showFamilyName", false); animator.SetBool("showArea", true); // familyNameIndexsContainer.GetComponent().anchoredPosition = Vector2.zero; familyNameAreasContainer.GetComponent().anchoredPosition = Vector2.zero; } private void onBackToAreaButtonClick() { animator.SetBool("showArea", true); familyNameAreasContainer.GetComponent().anchoredPosition = Vector2.zero; } private void onCloseButtonClick() { BaseController.HideView(); Destroy(gameObject.transform.parent.gameObject); } }