Jak obsługiwać pióra Surface w Unity?

18

Nasza gra działa świetnie z dotykiem lub myszą, ale pióro Surface nie wydaje się w ogóle rejestrować jako urządzenie wskazujące. Jak możemy obsługiwać pióro w Unity w natywnej wersji?

To pytanie na stronie Unity Answers sugeruje, że moglibyśmy zbudować ją jako aplikację UWP, ale to oznacza ograniczenie się do bardzo ograniczonego podzbioru frameworku .NET (w szczególności tracimy wiele bibliotek serializacji).

Gregory Avery-Weir
źródło
Czy możesz to potraktować jako dotykowe?
Evorlor
@Everlor, nie rejestruje się w Unity jako wprowadzanie dotykowe. Jeśli wiesz, jak to zrobić, byłoby świetnie.
Gregory Avery-Weir
@ArcaneEngineer Nie jestem pewien; w tej chwili (1) wygląda bardzo podchwytliwie i nie jestem pewien, jak to zrobić (2). Obsługa jednego z wbudowanych systemów wejściowych systemu operacyjnego nie wydaje się być szczególnie trudna, ale w ogóle nie mogę znaleźć na nim zasobów.
Gregory Avery-Weir
2
Nigdzie nie znalazłem odpowiedzi, takich jak ty. W przypadku (2) potrzebujesz biblioteki DLL wywoływanej przez aplikację Unity lub usługi Windows (lub aplikacji Win, jeśli usługa nie wykona zadania) działającej obok Twojej aplikacji. Musisz pobrać dane z tej usługi / aplikacji z odpowiedniego interfejsu API Microsoft (myślę, że to Pen) i skierować te dane do aplikacji Unity przez IPC . Łatwiejsze podłączanie bibliotek DLL do Unity direct. Ale czy może uzyskać dostęp do danego interfejsu API? - Nie jestem pewny.
Inżynier

Odpowiedzi:

0

W moim dodatku SP3 pióro działa z https://docs.unity3d.com/ScriptReference/Input-mousePosition.html i zwraca Vector3 ze współrzędnymi x, y i 0z. Używam Unity 5.6 w systemie Linux, ale jeśli pióro nie pojawia się jako dotykowe w systemie Windows, zakładam, że zachowuje się tak samo.

użytkownik3362964
źródło
3
To jest komentarz, a nie odpowiedź na pytanie: „Jak możemy wesprzeć pióro w Unity w natywnej wersji?” .
Inżynier
1
Nie mam wystarczającej liczby przedstawicieli, aby skomentować pytanie, a to działa. Przetestowałem to ponownie z SP3 z Windows 10 i Unity 5.2 i poprawnie raportował lokalizację pióra powierzchniowego, jakby to była mysz.
user3362964
Niesamowite! Pozycja pióra rzeczywiście jest zgłaszana, ale nie zdawałem sobie z tego sprawy, ponieważ stuknięcia pióra nie rejestrują się jako kliknięcia myszą. Czy masz wgląd w to, jak rozpoznać stuknięcia piórem jako kliknięcia myszą (lub jakikolwiek inny sposób wprowadzania danych)?
Gregory Avery-Weir
1
Możesz zrobić coś włamywalnego z wykrywaniem, kiedy pióro przestaje się poruszać, ale nie znalazłem niczego w interfejsie wejściowym Unity, które poprawnie wykrywa stuknięcia. Myślę, że musiałbyś skorzystać z jednej z sugestii @Arcane Engineer i użyć czegoś zewnętrznego, który przekazuje dane do twojej gry.
user3362964