Manipulator obiektów — MRTK2
ObjectManipulator to nowy składnik do manipulowania zachowaniem, który został wcześniej znaleziony w programie ManipulationHandler. Manipulator obiektów wprowadza szereg ulepszeń i uproszczeń. Ten składnik jest zamiennikiem programu obsługi manipulowania, który zostanie wycofany.
Skrypt ObjectManipulator sprawia, że obiekt jest wymienny, skalowalny i obracany przy użyciu jednej lub dwóch rąk. Manipulator obiektu można skonfigurować tak, aby kontrolować sposób reagowania obiektu na różne dane wejściowe. Skrypt powinien pracować z większością form interakcji, takich jak HoloLens 2 przegubowy, HoloLens 2 promienie dłoni, spojrzenie i gesty HoloLens 1 oraz immersyjne wejście kontrolera ruchu zestawu nagłownego.
Jak używać manipulatora obiektów
Aby użyć manipulatora obiektów, najpierw dodaj składnik skryptu ObjectManipulator
do obiektu GameObject. Pamiętaj również, aby dodać zderzacz do obiektu, pasując do jego granic chwytanych.
Aby obiekt reagował na dane wejściowe niemal ręki, dodaj NearInteractionGrabbable
również skrypt.
Zachowanie fizyki można włączyć dla manipulatora obiektów przez dodanie sztywnego składnika do obiektu. Zachowanie fizyki umożliwione przez dodanie tego składnika zostało omówione bardziej szczegółowo w fizyce i kolizjach.
Ponadto manipulowanie może być ograniczone przez dodanie składników ograniczeń manipulowania do obiektu. Są to specjalne składniki, które współpracują z manipulacją i zmieniają zachowanie manipulacji w jakiś sposób.
Właściwości i pola inspektora
Właściwości ogólne
Przekształcenie hosta
Przekształcenie obiektu, które będzie manipulowane. Domyślnie obiekt składnika.
Typ manipulowania
Określa, czy obiekt można manipulować za pomocą jednej ręki, czy dwóch rąk. Ponieważ ta właściwość jest flagą, można wybrać obie opcje.
- Jedna ręka: Umożliwia manipulowanie rękami w przypadku wybrania.
- Dwie ręce: Włącza dwie ręce manipulacji, jeśli wybrano.
Zezwalaj na dalekie manipulowanie
Określa, czy można manipulować przy użyciu dalekiej interakcji ze wskaźnikami.
Właściwości manipulowania jedną ręką
Tryb obracania jednej ręki w pobliżu
Określa, jak obiekt będzie zachowywał się, gdy jest chwytany z jedną ręką w pobliżu. Te opcje działają tylko w przypadku przegubowych rąk.
- Obróć o środek obiektu: obiekt obraca się przy użyciu obrotu ręki, ale o punkcie środkowym obiektu. Obiekt wydaje się być mniej przesuwany w miarę obracania się, ale może wystąpić uczucie rozłączenia między ręką a obiektem. Bardziej przydatne w przypadku dalekiej interakcji.
- Obróć o punkt chwytu: Obróć obiekt ręką o punkcie chwytu między kciukiem a palcem wskazującym. Powinno to wyglądać tak, jakby obiekt był trzymany przez rękę.
Tryb rotacji z jedną ręką daleko
Określa, jak obiekt będzie zachowywał się, gdy jest chwytany z jedną ręką w odległości. Te opcje działają tylko w przypadku przegubowych rąk.
- Obróć o środek obiektu: obróć obiekt przy użyciu obrotu ręki, ale o punkcie środkowym obiektu. Przydatne do inspekcji w odległości bez środka obiektu poruszającego się w miarę obracania się obiektu.
- Obróć o punkt chwytu: Obróć obiekt przy użyciu obrotu ręki, ale o punkt trafienia wskaźnika. Przydatne do inspekcji.
Dwie właściwości manipulowania rękami
Typ manipulowania dwoma rękami
Określa sposób, w jaki dwie manipulacje ręką mogą przekształcić obiekt. Ponieważ ta właściwość jest flagą, można wybrać dowolną liczbę opcji.
- Przenieś: Przenoszenie jest dozwolone, jeśli wybrano.
- Skalowanie: skalowanie jest dozwolone w przypadku wybrania.
- Obróć: w przypadku wybrania opcji Rotacja jest dozwolona.
Ograniczenia
Włączanie ograniczeń
To ustawienie spowoduje włączenie połączonego menedżera ograniczeń. Zmiany przekształcenia będą przetwarzane przez ograniczenia zarejestrowane w wybranym menedżerze ograniczeń.
Menedżer ograniczeń
Lista rozwijana umożliwia wybranie dowolnego z dołączonych menedżerów ograniczeń. Manipulator obiektów zapewnia, że przez cały czas jest dołączony menedżer ograniczeń . Należy pamiętać, że wiele składników tego samego typu będzie wyświetlanych pod tą samą nazwą w a unity. Aby ułatwić rozróżnienie między wieloma menedżerami ograniczeń w tym samym obiekcie, dostępne opcje pokażą wskazówkę dotyczącą konfiguracji wybranego menedżera ograniczeń (wybór ręczny lub automatyczny).
Przejdź do składnika
Wybór menedżera ograniczeń jest dostarczany z przyciskiem Przejdź do składnika . Ten przycisk spowoduje przewinięcie inspektora do wybranego składnika w celu skonfigurowania go.
Fizyki
Ustawienia w tej sekcji są wyświetlane tylko wtedy, gdy obiekt ma składnik RigidBody.
Zachowanie wersji
Określ właściwości fizyczne, które mają być utrzymywane po wydaniu manipulowanego obiektu. Ponieważ ta właściwość jest flagą, można wybrać obie opcje.
- Zachowaj szybkość: jeśli obiekt zostanie zwolniony, jeśli ta opcja zostanie wybrana, zachowa szybkość liniową.
- Zachowaj szybkość Angular: jeśli obiekt zostanie zwolniony, jeśli ta opcja zostanie wybrana, zachowa prędkość kątową.
Używanie sił do bliskiej manipulacji
Czy siły fizyki są używane do przenoszenia obiektu podczas wykonywania niemal manipulacji. Ustawienie wartości false spowoduje, że obiekt będzie bardziej bezpośrednio połączony z użytkownikami. Ustawienie wartości true spowoduje, że masa i inercja obiektu będą honorowane, ale może wydawać się, że obiekt jest połączony przez wiosnę. Wartość domyślna to false.
Wygładzanie
Wygładzanie daleko
Niezależnie od tego, czy funkcja wygładzania szybkości klatek jest włączona w przypadku dalekich interakcji. Znacznie wygładzanie jest domyślnie włączone.
Wygładzanie w pobliżu
Określa, czy funkcja wygładzania niezależnego od szybkości klatek jest włączona w przypadku niemal interakcji. Niemal wygładzanie jest domyślnie wyłączone, ponieważ efekt może być postrzegany jako "odłączony" od ręki.
Aktywne wygładzanie
Przestarzałe i zostaną usunięte w przyszłej wersji. Aplikacje powinny używać smoothingFar, SmoothingNear lub kombinacji tych dwóch.
Przenieś czas lerp
Ilość wygładzania do zastosowania do ruchu. Wygładzanie 0 oznacza brak wygładzania. Wartość maksymalna nie oznacza zmiany na wartość.
Obracanie czasu lerp
Ilość wygładzania do zastosowania do obrotu. Wygładzanie 0 oznacza brak wygładzania. Wartość maksymalna nie oznacza zmiany na wartość.
Skalowanie czasu lerp
Ilość wygładzeń do zastosowania do skali. Wygładzanie 0 oznacza brak wygładzenia. Maksymalna wartość oznacza brak zmiany na wartość.
Zdarzenia manipulowania
Program obsługi manipulowania udostępnia następujące zdarzenia:
- OnManipulationStarted: wyzwolony po rozpoczęciu manipulowania.
- OnManipulationEnded: Uruchamia się po zakończeniu manipulacji.
- OnHoverStarted: uruchamia się, gdy ręka / kontroler zatrzyma się na manipulowaniu, w pobliżu lub daleko.
- OnHoverEnded: Uruchamia się, gdy ręka / kontroler un-hovery manipulowanie, w pobliżu lub daleko.
Kolejność pożaru zdarzenia do manipulowania to:
OnHoverStarted ->OnManipulationStarted ->OnManipulationEnded ->OnHoverEnded
Jeśli nie ma manipulacji, nadal będziesz otrzymywać zdarzenia aktywowania z następującą kolejnością pożaru:
OnHoverStarted ->OnHoverEnded
Fizyka i kolizje
Zachowanie fizyki można włączyć przez dodanie sztywnego składnika do tego samego obiektu co manipulator obiektu. Nie tylko umożliwia to konfigurację zachowania wydań powyżej, ale także umożliwia kolizje. Bez sztywnego składnika, kolizje nie zachowują się poprawnie podczas manipulowania:
- Kolizje między manipulowanym obiektem a statycznym zderzaczem (tj. obiektem z zderzaczem, ale nie sztywnym) nie działają, manipulowany obiekt przechodzi prosto przez statyczny zderzacz bez wpływu.
- Kolizje między manipulowanym obiektem a sztywnym osobie (tj. obiektem z zarówno zderzaczem, jak i sztywnym osobie) powodują, że sztywny ktoś ma reakcję kolizji, ale odpowiedź jest skocznia i nienaturalna. Nie ma również odpowiedzi na kolizję na manipulowanym obiekcie.
Po dodaniu sztywnego ciała kolizje powinny działać poprawnie.
Bez sztywnego nikogo
Z sztywnym nikim
Elastyczne (eksperymentalne)
Elastyczne mogą być używane podczas manipulowania obiektami za pomocą manipulatora obiektów. Należy pamiętać, że system elastics jest nadal w stanie eksperymentalnym. Aby włączyć elastyczne, połącz istniejący składnik menedżera elastycznych lub utwórz i połącz nowy menedżer elastycznych za pomocą Add Elastics Manager
przycisku.