Unity获取网络延迟

在游戏中,通常需要显示网络状态。类似王者荣耀右上角的网络XX MS。通常使用Ping来检测网络状态。

using System.Linq;
using System.Text;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;;
public class GUIMainNetWorkInfo : MonoBehaviour
{
    // Start is called before the first frame update
    [SerializeField]
    UILabel labelBattery;
    StringBuilder sb = new StringBuilder();
    public string ip = string.Empty;
    Ping ping;
    Color bestColor = new Color(0.5f,0.63f,0.39f);
    Color normalColor = new Color(1,1,0);
    bool isNetWorkLose = false;

    void Start()
    {
        ip = ClientMainContext.ServerAddress.Ip;
        SendPing();
    }
    private void Update() {
        if (Application.internetReachability == NetworkReachability.NotReachable)
        {
            sb.Remove(0, sb.Length);
            labelBattery.text = "-MS";
            isNetWorkLose = true;
        }
        else if (isNetWorkLose || (null != ping && ping.isDone))
        {
            isNetWorkLose = false;
            sb.Remove(0, sb.Length);
            sb.Append(ping.time);
            sb.Append("MS");
            labelBattery.text = sb.ToString();
            ping.DestroyPing();
            ping = null;
            Invoke("SendPing", 1);//每秒Ping一次
        }
    }
    void SendPing()
    {
        ping = new Ping(ip);
    }

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 0 01、网络管理的五大功能(包括每项功能的具体情况) 1.配置管理:ISO定义的管理功能域中,配置管理包括视图管...
    哈熝少主阅读 3,662评论 1 20
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,995评论 0 11
  • 简介 DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,顾名思义,DOS主要是...
    Coder_Cat阅读 19,628评论 1 18
  • 一直被一个声音提醒,我们为什么活着,这个问题估计一百个人有一百种答案,但是多久思考一次也是因人而异。 我不是哲学家...
    圈圈1116阅读 245评论 0 0
  • 当时光一分一秒的过去的时候,内在总是有很多的不安,想着今天又浪费了一天光阴,每晚看到时钟指向零点的时候,心情...
    fighting鲸鱼宝宝阅读 164评论 0 1

友情链接更多精彩内容