using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class GetRealtimeConsume : MonoBehaviour { /// /// 出水方实时消耗总量(data)= 各个出水方流量(Flow)之和 - 消火栓分担的流量(消火栓上的TotalFlow) /// private FloatData data = new FloatData(0); /// /// 统计实时消耗的事件 /// public static event Func getAllRealtimeConsume; private void OnEnable() { data.Clear(); if(getAllRealtimeConsume != null) { data = getAllRealtimeConsume(data); } GetComponent().text = Math.Round(data.value,2) + "L/s"; StartCoroutine(GetRealtimeOnInternal()); } private void OnDisable() { StopCoroutine(GetRealtimeOnInternal()); } IEnumerator GetRealtimeOnInternal() { while (true) { yield return new WaitForSeconds(1.0f); data.Clear(); if (getAllRealtimeConsume != null) { data = getAllRealtimeConsume(data); } GetComponent().text = Math.Round(data.value, 2) + "L/s"; } } }