Manipulator obiektów — MRTK2

Manipulator obiektów

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.

Używanie programu obsługi manipulowania w edytorze aparatu Unity

Właściwości i pola inspektora

Struktura manipulatora obiektów

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.

Procedura obsługi manipulowania

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

Brak sztywnego korpusu

Z sztywnym nikim

Sztywna treść

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.

Ograniczenia, kontrolka elastics

Zobacz też