2015-10-20 15 views

回答

2

AccelerationEvent.deltaTime變量返回自上次採樣設備加速度計以來的時間量。但是,這種採樣不能保證與遊戲幀速率同步(即使兩者的目標是達到60Hz),因此在一幀期間所有Input.accelerationEvents的總和可能不等於該幀的Time.deltaTime

the Unity documentation提到的東西這樣的效果:

[...]在現實中,事情變得有點複雜 - 加速度計 採樣不以一致的時間間隔進行,如果在 顯著CPU負載。因此,系統可能會在一個幀中報告2個樣本,然後在下一個幀中報告1個樣本。可視化此

的一種方法是用下面的(假設每一劃線是一個時間任意單位):

Frames completed: 
1-----2-----3-----4-----5-----6-----7-----8-----9----- 

Accelerometer samples made: 
1-----2-----3-----4------5-----6---7-----8-----9----- 

注意,儘管正在完成frame6是,既sample6sample7作了。但是,儘管frame6.deltaTime = 5,但總和爲sample6.deltaTime + sample7.deltaTime = 5 + 3 = 8。因此,它們的時間不匹配。

希望這會有所幫助!如果您有任何問題,請告訴我。

0

下面是他們團結文檔中說關於加速http://docs.unity3d.com/Manual/MobileInput.html

統一樣本的硬件以60Hz的頻率什麼,結果存儲到>變量。實際上,如果CPU>負載很重要,情況會稍微複雜一些 - 加速計>採樣不會以一致的時間間隔進行。其結果是,系統可能會在下一幀

另外在一個幀期間報告2個樣品,然後1>樣品不要忘記,

AccelerationEvent.deltaTime是自上通過的時間量加速度計測量。 Time.deltaTime是完成最後一幀所用的時間(以秒爲單位)。

這些值是獨立的,沒有理由讓它們彼此相等。

相關問題