隐藏Airconsole延迟

时间:2016-01-31 00:24:47

标签: unity3d airconsole

使用Airconsole,按下按钮和在屏幕上看到结果之间存在明显的延迟。在有关Airconsole available here,的演示文稿中,提到您可以根据客户的时间戳进行回溯来“欺骗”。

是否有一种简单/内置的方式可以使用Unity执行此操作?通过让服务器和客户端就相互时间戳达成一致,我可以看到你如何做到这一点,但这看起来很棘手,我想知道有一种内置的方法可以做到这一点。

1 个答案:

答案 0 :(得分:1)

使用getServerTime()函数执行此操作相当简单 在控制器上,您将使用消息发送输入发生的时间戳。在屏幕上,您将所述时间戳与当前的GetServerTime()进行比较,差异是延迟。

控制器:

airconsole.message(AirConsole.SCREEN, {"action": "jump", "ts": airconsole.getServerTime()});

屏幕:

void OnMessage(int from, JToken data) {
    if ((string)data ["action"] == "jump") {

        long latency_ms = AirConsole.instance.GetServerTime () - (long)data ["ts"];

        Debug.Log ("device " + from + " latency: " + latency_ms);

        //Jump quicker depending on latency

    } 

}