2017-10-29 58 views
6

我正在使用Wiimote控制器作爲輸入設備。 我使用this wrapper進行HID呼叫/輪詢。Unity 3D異步輪詢Unity中的外部硬件

在這個包裝器附帶的演示場景中,輪詢控制器在Update事件中完成。

在很多Wii遊戲中,極其快速地向上和向下快速觸發動作。 該包裝表示極端豎直對準的位置(其中,目標超出範圍/是「屏幕外」)作爲

Y=-1 

我試圖通過

1) Detecting if aim is off-screen 
2) If yes, have a look if the aim is within the screen again 
3) Detect if aim is off-screen again and if all this happened in a certain time period 

的檢測這樣的快速上下移動問題是(我認爲由於僅在更新事件中進行輪詢的性質),#2)不一定必須發生。目標可能在屏幕上,但控制器在此時未被輪詢。

我想問問什麼可能是這個問題的有效解決方案。

+0

第2步是否需要?如果您只是首先檢測目標是否在屏幕的上邊緣之上,然後再次檢查目標是否在特定時間段內低於屏幕的底部邊緣,該怎麼辦?如果您需要更多定義的運動區域,則可以將左右邊界限制爲屏幕寬度。 – ryeMoss

+0

你問這是因爲這是你遇到的實際問題嗎?你的更新事件有多慢? – Mars

回答

2

您的投票將不得不是非常糟糕的,因爲這是一個問題,但除了提高投票率之外,在這裏沒有什麼可以做的。

唯一的其他選擇是使用陀螺儀或加速度計代替(對不起,沒有打擾檢查你的包裝是否暴露了這些)。基本上,您可以將嚴酷的垂直搖擺與屏幕外的點組合在一起,但如果您的輪詢在原始解決方案中存在問題,那麼它也可能是一個問題。