2016-01-31 144 views
0

使用Airconsole,在按下按鈕和在屏幕上查看結果之間存在明顯的延遲。在有關Airconsole available here,的演示文稿中提到,您可以根據來自客戶端的時間戳進行回溯「欺騙」。隱藏Airconsole延遲

有沒有一個簡單的/內置的方式來做到這一點與Unity?我可以看到如何讓服務器和客戶端達成共同的時間戳,但這似乎很棘手,我想知道是否有內置的方法來做到這一點。

回答

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 

    } 

}