因此,Unity不會在android上做很多節奏遊戲。我決定找出原因,並將它編程爲作業(反正它的基礎)。我最重要的障礙是用戶輸入。由於我們知道輸入是基於幀速率的統一,而音樂遊戲(我假設)會更喜歡按鈕按下和動作之間的最小可能延遲。輸入一個節奏遊戲
如果我們看音樂,在15到20毫秒左右的延遲時間內,人耳聽到的東西就是「不合拍」。
我聽說Android Unity遊戲運行在30FPS(因爲60FPS吸乾電池),簡單的數學表明:1000/30 =每幀33ms。在15ms內計算,我們可能不會注意到,我們處於可能的災難18ms。假設我們在任何時候總是達到這個30FPS。
當我從用戶獲得輸入時,我可以在完全相同的幀上在該輸入上播放聲音。但是,我們可以在18分鐘內關閉。
現在有一種方法可以從鼠標和鍵盤獲取DIRECT控件,該控件使用OnGui()而不是Update()來當場獲取鍵盤或鼠標點擊的事件。問題是,android可能不適用於此(對於遊戲手柄也不適用),而且這些方法聽起來很奇怪,特別是當我們嘗試播放OnGui()方法中的聲音時。我的問題: 你會怎麼做,爲什麼?我們是否應該接受18ms的可能性,並假設我們達到30FPS,還是應該尋找一種可靠的方式來直接獲得輸入,而不是等待更新來臨?
感謝您提供給我的任何見解,我還沒有發現任何有用的文章。 -Smiley
編輯 我只是做了一個節拍器一些基本的測試,在編輯器中(這應該是每幀10ms)的竊聽我的內部團結節拍器空格鍵在100FPS運行。我得到的結果非常糟糕。 快速點擊:我的節拍器刻度接近20ms,但沒有更接近。 敲擊節拍:我的目標節拍至少要200ms。除非我對這個節奏感到困惑,否則這是錯誤的。
目前我使用Debug.Log來獲取我的測試數據到日誌。任何人都可以請確認,如果這可能是原因(導致一些長時間的延遲?我知道調試不是那麼優化),或者實際上它的時間是不好的?
由於提前, -Smiley
[可靠,實時輸入是Unity的問題](http://forum.unity3d.com/threads/54154-Realtime-input-in-Unity)。就你的個人測試而言,大多數人沒有意識到'Debug.Log'是一個非常昂貴的通話(通常需要5ms以上)。它經常值得開發,但我不會推薦它用於任何性能基準測試。 – rutter