using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class WaterUsedValue : MonoBehaviour { /// /// 已用水量统计 /// public static event Func getAllUsedWater; private FloatData data = new FloatData(0); private void OnEnable() { data.Clear(); if(getAllUsedWater != null) { data = getAllUsedWater(data); } GetComponent().text = data.value > 1000 ? Math.Round(data.value / 1000,2).ToString() + " T" : Math.Round(data.value,2).ToString() + " L"; StartCoroutine(GetUsedWaterOnInternal()); } private void OnDisable() { StopCoroutine(GetUsedWaterOnInternal()); } IEnumerator GetUsedWaterOnInternal() { while (true) { yield return new WaitForSeconds(1.0f); data.Clear(); if (getAllUsedWater != null) { data = getAllUsedWater(data); } GetComponent().text = data.value > 1000 ? Math.Round(data.value / 1000, 2).ToString() + " T" : Math.Round(data.value, 2).ToString() + " L"; } } }