Używam kontrolera Wiimote jako urządzenia wejściowego. Używam this wrapper do połączeń HID/pollingu.Unity 3D Sprzęt zewnętrzny ankietowania asynchronicznego w Unity
W scenie demo, która jest dostarczana z tym opakowaniem, odpytywanie kontrolera odbywa się w zdarzeniu Update.
W wielu grach na Wii celowanie w górę iw dół szybko uruchamia akcję. Owijka wskazuje skrajne pionowe stanowisk mających (gdzie celem wykracza poza zakres/jest „poza ekranem”) jako
Y=-1
próbowałem wykryć takie raptowne ruchy góra-dół przez
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
The Problem jednak jest (myślę, że ze względu na naturę pollingu tylko w przypadku aktualizacji), # 2) niekoniecznie musi wystąpić. Możliwe, że cel był na ekranie, ale kontroler nie został odpytany, kiedy był.
Chciałbym zapytać, co może być poprawnym rozwiązaniem tego problemu.
Czy krok 2 jest w ogóle potrzebny? Co, jeśli po prostu najpierw wykryjesz, czy cel znajduje się ponad górną krawędzią ekranu, a następnie ponownie sprawdzasz, czy cel znajduje się poniżej dolnej krawędzi ekranu w określonym przedziale czasu. Możesz ograniczyć lewe i prawe ograniczenie do szerokości ekranu, jeśli potrzebujesz bardziej zdefiniowanego pola ruchu. – ryeMoss
Czy pytasz o to, ponieważ jest to aktualny problem? Jak powolne jest wydarzenie Update? – Mars