FHSSLayer.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using DG.Tweening;
  5. using UnityEngine;
  6. using UnityEngine.UI;
  7. using System.IO;
  8. using Newtonsoft.Json;
  9. using UnityAsync;
  10. public class AreaFHXSData
  11. {
  12. public string areaName;
  13. public float totalPopulation;
  14. public float totalSize;
  15. public float totalFarmSize;
  16. public float totalPrize;
  17. public float startEva;
  18. public float endEva;
  19. }
  20. public class FHSSLayer : YZTRootLayer
  21. {
  22. private Text yuJingZongShuText;
  23. private Text chaoJingJieShuiWeiText;
  24. private Text chaoBaoZhengShuiWeiText;
  25. private Text chaoLiShiShuiWeiText;
  26. private Text chaoXunXianShuiWeiText;
  27. private Text zhengChangShuiWeiText;
  28. public Text ymmjText;
  29. public Text ymgdText;
  30. public Text yxrkText;
  31. public Text ccssText;
  32. public VerticalLayoutGroup shuiShiliebiaoParent;
  33. public List<ShuiShiLieBiaoItem> shuiShiLieBiaoItems = new List<ShuiShiLieBiaoItem>();
  34. public ShuiShiLieBiaoItem shuiShiLieBiaoItem;
  35. [Header("水位状况")]
  36. public ShuiWeiZhuangKuangData shuiWeiZhuangKuangData;
  37. public WaterRangeCtrlTool mTools;
  38. public RectTransform[] hotPoints;
  39. public async void InitData() {
  40. WWW www = new WWW(Application.streamingAssetsPath + "/areaBaseData.json");
  41. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  42. string areaBaseDataContent = www.text;
  43. GlobalData.areaFHXSDatas = JsonConvert.DeserializeObject<List<AreaFHXSData>>(areaBaseDataContent);
  44. for (int i = 0; i < GlobalData.areaFHXSDatas.Count; i++)
  45. {
  46. ShuiShiLieBiaoItem tempItem = Instantiate(shuiShiLieBiaoItem);
  47. shuiShiLieBiaoItems.Add(tempItem);
  48. tempItem.transform.SetParent(shuiShiliebiaoParent.transform);
  49. tempItem.transform.localScale = Vector3.one;
  50. tempItem.SetData(GlobalData.areaFHXSDatas[i]);
  51. tempItem.Evaluate(1);
  52. }
  53. mTools.onCtrlChange = (float value) =>
  54. {
  55. float ymmj = 0;
  56. float ymgd = 0;
  57. float yxrk = 0;
  58. float ccss = 0;
  59. for (int i = 0; i < shuiShiLieBiaoItems.Count; i++) {
  60. shuiShiLieBiaoItems[i].Evaluate(value);
  61. ymmj += shuiShiLieBiaoItems[i].currentMianJi;
  62. ymgd += shuiShiLieBiaoItems[i].currentGenDi;
  63. yxrk += shuiShiLieBiaoItems[i].currentRenKou;
  64. ccss += shuiShiLieBiaoItems[i].currentCaiChan;
  65. }
  66. ymmjText.text = ymmj.ToString("0.00") + "<color=#A5BFE2>平方公里</color>";
  67. ymgdText.text = ymgd.ToString("0.0") + "<color=#A5BFE2>亩</color>";
  68. yxrkText.text = yxrk.ToString("0") + "<color=#A5BFE2>个</color>";
  69. ccssText.text = ccss.ToString("0.00") + "<color=#A5BFE2>亿元</color>";
  70. };
  71. }
  72. private void Awake()
  73. {
  74. yuJingZongShuText = this.transform.Find("ShuiWeiZhuangKuang/ShuiWeiYuJing/countText").GetComponent<Text>();
  75. chaoJingJieShuiWeiText = this.transform.Find("ShuiWeiZhuangKuang/ChaoJingJieShuiWei/countText").GetComponent<Text>();
  76. chaoBaoZhengShuiWeiText = this.transform.Find("ShuiWeiZhuangKuang/ChaoBaoZhengShuiWei/countText").GetComponent<Text>();
  77. chaoLiShiShuiWeiText = this.transform.Find("ShuiWeiZhuangKuang/ChaoLiShiShuiWei/countText").GetComponent<Text>();
  78. chaoXunXianShuiWeiText = this.transform.Find("ShuiWeiZhuangKuang/ChaoXunXianShuiWei/countText").GetComponent<Text>();
  79. zhengChangShuiWeiText = this.transform.Find("ShuiWeiZhuangKuang/ZhengChangShuiWei/countText").GetComponent<Text>();
  80. if (shuiWeiZhuangKuangData != null)
  81. {
  82. yuJingZongShuText.text = $"{shuiWeiZhuangKuangData.yuJingZongShu}个";
  83. chaoJingJieShuiWeiText.text = $"{shuiWeiZhuangKuangData.chaoJingJieShuiWei}个";
  84. chaoBaoZhengShuiWeiText.text = $"{shuiWeiZhuangKuangData.chaoBaoZhengShuiWei}个";
  85. chaoLiShiShuiWeiText.text = $"{shuiWeiZhuangKuangData.chaoLiShiShuiWei}个";
  86. chaoXunXianShuiWeiText.text = $"{shuiWeiZhuangKuangData.chaoXunXianShuiWei}个";
  87. zhengChangShuiWeiText.text = $"{shuiWeiZhuangKuangData.zhengChangShuiWei}个";
  88. }
  89. InitData();
  90. }
  91. private void OnEnable()
  92. {
  93. StaticLod.instance.OnFoucusStatic("Bird0");
  94. //StaticLod.instance.currentStatic.SetCameraToCenter(new Vector3(513.8401f, 20, 4938.701f), 21389, new Vector2(89.61806f, 85.64014f));
  95. }
  96. private void LateUpdate()
  97. {
  98. if (hotPoints.Length > 3) {
  99. hotPoints[0].anchoredPosition = CameraManager.instance.mainCamera.WorldToScreenPoint(StaticLod.instance.staticImportants[0].transform.position) / Screen.width * 1920.0f; ;
  100. hotPoints[1].anchoredPosition = CameraManager.instance.mainCamera.WorldToScreenPoint(StaticLod.instance.staticImportants[1].transform.position) / Screen.width * 1920.0f; ;
  101. hotPoints[2].anchoredPosition = CameraManager.instance.mainCamera.WorldToScreenPoint(StaticLod.instance.staticImportants[3].transform.position) / Screen.width * 1920.0f; ;
  102. hotPoints[3].anchoredPosition = CameraManager.instance.mainCamera.WorldToScreenPoint(StaticLod.instance.staticImportants[6].transform.position) / Screen.width * 1920.0f; ;
  103. }
  104. }
  105. }