using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UIBatteryAndSignalNode: UINode { private List _batteryImgs = new List(); private List _signalImgs = new List(); private void Awake() { _Init(); } private void OnDestroy() { OnRelease(); } #region API public void SetData() { } public void Refresh() { _Refresh(); } #endregion #region Inner private void _Init() { var goBattery = _FindObj("UI_Battery"); if (goBattery) { for (int i = 0; i < 5; i++) { _batteryImgs.Add(_GetComponent("UI_Battery/Image_Battery"+ i)); } } var goSignal = _FindObj("UI_Signal"); if (goSignal) { for (int i = 0; i < 5; i++) { _signalImgs.Add(_GetComponent("UI_Signal/Image_Signal" + i)); } } } private void _Refresh() { var level = Math.Max(0, SystemInfo.batteryLevel); var index = -1; if (level <= 0) { index = 0; } else if (level <= 0.25) { index = 1; } else if (level <= 0.5) { index = 2; } else if (level <= 0.75) { index = 3; } else { index = 4; } for (int i = 0; i < _batteryImgs.Count; i++) { if (index == i) { _batteryImgs[i].gameObject.SetActiveEx(true); continue; } _batteryImgs[i].gameObject.SetActiveEx(false); } NetworkReachability reachability = Application.internetReachability; var curIdx = 0; if (reachability != NetworkReachability.NotReachable) { curIdx = 4; } for (int i = 0; i < _signalImgs.Count; i++) { if (curIdx == i) { _signalImgs[i].gameObject.SetActiveEx(true); continue; } _signalImgs[i].gameObject.SetActiveEx(false); } } #endregion }