感謝作者分享,有幾個疑問:
1、服務器收到客戶端預測操作的時候,由于客戶端上行阻塞,服務器可能瞬間收到N個操作包,服務器是以什么頻率在執(zhí)行操作指令?
2、客戶端一直預測,sequence應該是早于服務器的,為何會出現(xiàn)localCmd.sequence <= lastFromserver.sequence ?客戶端卡幀了嗎?
3、“每個模擬幀,客戶端都把本地已經(jīng)執(zhí)行過而且沒有被服務確認過的指令都執(zhí)行一遍,然后再生成新的指令” 這個狀態(tài)不一致是客戶端檢查的,服務器并不知道,此處為何需要生成新的操作指令?服務器此時可能已經(jīng)收到客戶端后面的舊操作指令了。
[從零開始的Unity網(wǎng)絡同步] 6.客戶端本地預表現(xiàn)在上一篇文章已經(jīng)介紹完在服務端控制的物體通過把狀態(tài)發(fā)到客戶端,客戶端去"追趕"服務器的狀態(tài)來實現(xiàn)同步的,現(xiàn)在來談談如何在客戶端做本地預表現(xiàn). 1.什么要本地預表現(xiàn)?為什么要本...