unity | 一次鼠標點擊,觸發兩次?


我的使用場景

一個射擊游戲,由於我的update()函數中涉及到射線的檢測等諸多操作,所以使用了FixedUpdate()進行。但是,我發現一次點擊有時(大概率)會向服務端發送兩條數據,開始以為是網絡模塊出了問題,使用wireshark抓包以及分析網絡數據收發代碼后發現,並非代碼的鍋。我猜測是一次點擊,被檢測到了兩次,簡單打印一下log,果然是這樣的。

 解決辦法:

1. 使用FixedUpdate()不受游戲幀率的影響,可以改用update()來進行,可以實現正常的一次點擊響應一次,但是畫面看起來會“卡卡的”,因為update()的刷新率和設備的性能以及需要渲染的工作量有關,會比默認的FexedUpdate(要低一些,故而會“卡卡的”;

 2. 調整FixedUpdate()的固定刷新時間timestep

Edit -> Project setting -> time -> FixedTimeStep 

默認0.02,意味着,一秒要刷新50次,這樣刷新太快可能會引起多次檢測到鼠標動作(我猜測),將其調大(我調了0.033,這樣相當於30fps的樣子會好一些)

 

參考:Unity游戲暫停之Update與FixedUpdate區別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM