109 lines
2.3 KiB
C#
109 lines
2.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class UIBatteryAndSignalNode: UINode
|
|
{
|
|
private List<Image> _batteryImgs = new List<Image>();
|
|
private List<Image> _signalImgs = new List<Image>();
|
|
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<Image>("UI_Battery/Image_Battery"+ i));
|
|
}
|
|
}
|
|
var goSignal = _FindObj("UI_Signal");
|
|
if (goSignal)
|
|
{
|
|
for (int i = 0; i < 5; i++)
|
|
{
|
|
_signalImgs.Add(_GetComponent<Image>("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
|
|
} |