128 lines
3.6 KiB
C#
128 lines
3.6 KiB
C#
using System.Linq;
|
|
using System.Text;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using Assets.Scripts;
|
|
|
|
public class GUIMainNetWorkInfo : MonoBehaviour
|
|
{
|
|
// Start is called before the first frame update
|
|
[SerializeField] Text labelBattery;
|
|
[SerializeField] Image NetImage;
|
|
long _delayTime = 1;
|
|
Dictionary<int, Sprite> dict;
|
|
int getType(long a)
|
|
{
|
|
if (a >= 1 && a <= 30)
|
|
{
|
|
return 5;
|
|
}
|
|
else if (a > 30 && a <= 50)
|
|
{
|
|
return 4;
|
|
}
|
|
else if (a > 50 && a <= 100)
|
|
{
|
|
return 3;
|
|
}
|
|
else if (a > 100 && a <= 200)
|
|
{
|
|
return 2;
|
|
}
|
|
else
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
string getColor(long a)
|
|
{
|
|
if (a > 0 && a <= 50)
|
|
{
|
|
return "#4FE944";
|
|
}
|
|
else if (a > 50 && a <= 100)
|
|
{
|
|
return "#E9BF44";
|
|
}
|
|
else
|
|
{
|
|
return "#EE2929";
|
|
}
|
|
}
|
|
private void Awake()
|
|
{
|
|
#if UNITY_IOS || UNITY_ANDROID
|
|
dict = new Dictionary<int, Sprite>()
|
|
{
|
|
{1 , Resources.Load<Sprite>("Images/delay/Mobile_1") },
|
|
{2 , Resources.Load<Sprite>("Images/delay/Mobile_2") },
|
|
{3 , Resources.Load<Sprite>("Images/delay/Mobile_3") },
|
|
{4 , Resources.Load<Sprite>("Images/delay/Mobile_4") },
|
|
{5 , Resources.Load<Sprite>("Images/delay/Mobile_5") },
|
|
{6 , Resources.Load<Sprite>("Images/delay/wifi-1") },
|
|
{7 , Resources.Load<Sprite>("Images/delay/wifi-2") },
|
|
{8 , Resources.Load<Sprite>("Images/delay/wifi-3") },
|
|
{9 , Resources.Load<Sprite>("Images/delay/wifi-4") },
|
|
{10 , Resources.Load<Sprite>("Images/delay/wifi-5") },
|
|
};
|
|
#else
|
|
dict = new Dictionary<int, Sprite>()
|
|
{
|
|
{1 , Resources.Load<Sprite>("Images/delay/wifi-1") },
|
|
{2 , Resources.Load<Sprite>("Images/delay/wifi-2") },
|
|
{3 , Resources.Load<Sprite>("Images/delay/wifi-3") },
|
|
{4 , Resources.Load<Sprite>("Images/delay/wifi-4") },
|
|
{5 , Resources.Load<Sprite>("Images/delay/wifi-5") },
|
|
};
|
|
#endif
|
|
}
|
|
void Start()
|
|
{
|
|
}
|
|
private void Update()
|
|
{
|
|
if (_delayTime != App.delayTime && dict!=null)
|
|
{
|
|
_delayTime = App.delayTime;
|
|
//Debug.Log("延迟"+_delayTime);
|
|
if (NetImage)
|
|
{
|
|
if (_delayTime != -1)
|
|
{
|
|
#if UNITY_IOS || UNITY_ANDROID
|
|
if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)
|
|
{
|
|
NetImage.sprite = dict[getType(_delayTime) + 5];
|
|
}
|
|
else if (Application.internetReachability == NetworkReachability.ReachableViaCarrierDataNetwork)
|
|
{
|
|
NetImage.sprite = dict[getType(_delayTime)];
|
|
}
|
|
#else
|
|
NetImage.sprite = dict[getType(_delayTime)];
|
|
#endif
|
|
}
|
|
else
|
|
{
|
|
NetImage.sprite = dict[1];
|
|
}
|
|
}
|
|
if (labelBattery)
|
|
{
|
|
if (_delayTime != -1)
|
|
{
|
|
labelBattery.text = $"{_delayTime.ToString("0")}ms";
|
|
}
|
|
else
|
|
{
|
|
labelBattery.text = "No Net";
|
|
}
|
|
labelBattery.color = Utils.HexToColorHtml(getColor(_delayTime));
|
|
}
|
|
}
|
|
}
|
|
}
|