使用Airconsole,按下按钮和在屏幕上看到结果之间存在明显的延迟。在有关Airconsole available here,的演示文稿中,提到您可以根据客户的时间戳进行回溯来“欺骗”。
是否有一种简单/内置的方式可以使用Unity执行此操作?通过让服务器和客户端就相互时间戳达成一致,我可以看到你如何做到这一点,但这看起来很棘手,我想知道有一种内置的方法可以做到这一点。
答案 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
}
}