Udostępnij za pośrednictwem


Procedura obsługi manipulowania — MRTK2

Procedura obsługi manipulowania

Skrypt programu ManipulationHandler umożliwia tworzenie obiektu wymiennego, skalowalnego i obracalnego przy użyciu jednej lub dwóch rąk. Manipulacja może być ograniczona, tak aby zezwalała tylko na pewne rodzaje transformacji. Skrypt współpracuje z różnymi typami danych wejściowych, w tym HoloLens 2 przegubowymi wejściami ręcznymi, promieniami ręcznymi, wejściem gestu holoLens (1. generacji) i immersywnym wejściem kontrolera ruchu zestawu nagłownego.

Jak używać programu obsługi manipulacji

Dodaj składnik skryptu ManipulationHandler 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.

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

Właściwości inspektora

Struktura obsługi manipulowania

Przekształcanie hosta Przekształć, które zostaną przeciągnięte. Domyślnie obiekt składnika.

Typ manipulowania Określa, czy obiekt można manipulować za pomocą jednej ręki, dwóch rąk, czy obu.

  • Tylko jedna ręka
  • Tylko dwie wręczone
  • Jeden i dwa wręczone

Typ manipulowania dwoma rękami

  • Skalowanie: dozwolone jest tylko skalowanie.
  • Obracanie: dozwolona jest tylko rotacja.
  • Skalowanie przenoszenia: przenoszenie i skalowanie jest dozwolone.
  • Obracanie ruchu: przenoszenie i obracanie jest dozwolone.
  • Obróć skalę: obracanie i skalowanie jest dozwolone.
  • Skalowanie obróć przenoszenia: dozwolone jest przenoszenie, obracanie i skalowanie.

Procedura obsługi manipulowania

Zezwalaj na dalekie manipulowanie Określa, czy można manipulować przy użyciu dalekiej interakcji ze wskaźnikami.

Tryb obracania jednej ręki w pobliżu Określa, jak obiekt będzie zachowywał się, gdy jest chwytany z jedną ręką / kontrolerem w pobliżu.

Tryb rotacji z jedną ręką daleko Określa, jak obiekt będzie zachowywał się, gdy jest chwytany z jedną ręką / kontrolerem w odległości.

Opcje trybu rotacji jednej ręki Określa, jak obiekt będzie obracać się, gdy jest chwytany za jedną ręką.

  • Zachowaj oryginalną rotację: nie obraca obiektu w miarę jego przenoszenia
  • Obsługa rotacji dla użytkownika: utrzymuje oryginalną rotację obiektu dla osi X/Y dla użytkownika
  • Wyrównana grawitacja utrzymuje rotację do użytkownika: utrzymuje oryginalną rotację obiektu dla użytkownika, ale sprawia, że obiekt jest pionowy. Przydatne w przypadku obiektów z kontrolką granic.
  • Użytkownik rozpoznawania twarzy: zapewnia, że obiekt zawsze stoi przed użytkownikiem. Przydatne w przypadku slates/paneli.
  • Twarz z dala od użytkownika: zapewnia, że obiekt zawsze stoi poza użytkownikiem. Przydatne w przypadku slates/paneli skonfigurowanych wstecz.
  • Obracanie środka obiektu: działa tylko w przypadku przegubowych rąk/kontrolerów. Obróć obiekt przy użyciu obrotu ręki/kontrolera, ale o punkcie środkowym obiektu. Przydatne do inspekcji w odległości.
  • Obracanie punktu chwytu: działa tylko w przypadku przegubowych rąk/kontrolerów. Obróć obiekt tak, jakby był utrzymywany ręcznie/przez kontroler. Przydatne do inspekcji.

Zachowanie wydania Po zwolnieniu obiektu określ jego zachowanie podczas przenoszenia fizycznego. Wymaga, aby na tym obiekcie znajdować się sztywny składnik.

  • Nothing
  • Wszystko
  • Zachowaj szybkość
  • Zachowaj szybkość Angular

Ograniczenia rotacji Określa, na której osi obiekt będzie obracany podczas interakcji.

  • Brak
  • Tylko oś X
  • Tylko oś Y
  • Tylko oś Z

Używanie miejsca lokalnego dla ograniczenia Przełącznik umożliwiający przełączanie się między stosowaniem ograniczeń w odniesieniu do osi przestrzeni światowej lub lokalnej osi przestrzeni.

Ograniczenia ruchu

  • Brak
  • Napraw odległość od głowy

Wygładzanie aktywne Określa, czy wygładzanie jest aktywne.

Wygładzanie jednej ręki Ilość wygładzania do zastosowania do ruchu, skalowania, obrotu. Wygładzanie 0 oznacza brak wygładzania. Wartość maksymalna nie oznacza zmiany na wartość.

Zdarzenia

Procedura 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 unosi się do manipulowania, w pobliżu lub daleko.
  • OnHoverEnded: Uruchamia się, gdy ręka / kontroler un-hoverable, w pobliżu lub daleko.