将 Ping.time 存储在浮点数中 (Unity 2018)



>任何人都知道如何将 Ping 存储在浮点值中以便稍后我可以在图表中显示它的任何方法。目前在下面的代码中,Pinging仅显示-1,而在文本中显示正确的ping。谢谢

平码

IEnumerator TestPing()
{
var PingTest = new Ping("http://localhost:8081/website/index.php");
pinging = PingTest.time;
while (!PingTest.isDone)
yield return new WaitForSeconds(.1f);
pingText.text = (PingTest.time).ToString() + " ms";
}

似乎您可能想在isDone之后获得ping时间?

IEnumerator TestPing()
{
var PingTest = new Ping("http://localhost:8081/website/index.php");
while (!PingTest.isDone)
yield return new WaitForSeconds(.1f);
pinging = PingTest.time;
pingText.text = pinging + " ms";
}

PingTest.time是一个int- 一个值类型。pinging是一个float- 也是一种值类型。 这意味着,当您分配pinging = PingTest.time时,您将当前值PingTest.time分配给pinging,并且无论之后PingTest.time发生什么情况,除非您更新它,否则pinging的值都不会更改。

如果您希望pinging

在 ping 完成后具有PingTest.time值的值,则必须在 ping 完成后设置它。顺便说一下,您可以使用WaitUntil

IEnumerator TestPing()
{
var PingTest = new Ping("http://localhost:8081/website/index.php");
yield return new WaitUntil(()=>PingTest.isDone);
pinging = PingTest.time;
pingText.text = (PingTest.time).ToString() + " ms";
}

顺便说一下,C# 的典型约定是命名camelCase中的局部变量,例如pingTest

相关内容

  • 没有找到相关文章

最新更新