Procedura obsługi manipulowania

Procedura obsługi manipulowania

Skrypt ManipulationHandler umożliwia tworzenie obiektów wymiennych, skalowalnych i obracalnych przy użyciu jednej lub dwóch rąk. Manipulowanie może być ograniczone, tak aby zezwalało tylko na niektóre rodzaje transformacji. Skrypt działa z różnymi typami danych wejściowych, w tym z układem wejściowym HoloLens 2, promieniami rąk, wejściowymi gestami HoloLens (1. generacji) i immersywnym kontrolerem ruchu nagłownym.

Jak używać procedury obsługi manipulowania

Dodaj składnik ManipulationHandler skryptu do gameobject. Upewnij się, że do obiektu dodasz również kolidujący obiekt pasujący do jego granic chwytnych.

Aby obiekt reagował na niemal wyartykułowane dane wejściowe, dodaj NearInteractionGrabbable również skrypt.

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

Właściwości inspektora

Manipulation Handler structure

Przekształcenie hosta Przekształć, który zostanie przeciągnięty. Wartość domyślna to obiekt składnika.

Typ manipulacji Określa, czy obiekt może być manipulowany przy użyciu jednej ręki, dwóch rąk lub obu.

  • Tylko jedna ręka
  • Tylko dwóch osób
  • Jedno i dwurękane

Typ manipulacji dwuręcej

  • Skalowanie: dozwolone jest tylko skalowanie.
  • Obracanie: dozwolony jest tylko obrót.
  • Przenoszenie skalowania: przenoszenie i skalowanie jest dozwolone.
  • Przenoszenie rotacji: przenoszenie i obracanie jest dozwolone.
  • Obracanie skali: obracanie i skalowanie jest dozwolone.
  • Przenoszenie obracania skali: przenoszenie, obracanie i skalowanie jest dozwolone.

Procedura obsługi manipulowania

Zezwalaj na manipulowanie najdalej Określa, czy można manipulować za pomocą bardzo interakcji ze wskaźnikami.

Tryb rotacji jednej ręki blisko Określa, jak obiekt będzie zachowywać się, gdy jest chwycony z jednej ręki / kontrolera w pobliżu.

Tryb rotacji jednej ręki daleko Określa, jak obiekt będzie zachowywać się, gdy jest chwycony z jednej ręki / kontrolera na odległość.

Opcje trybu rotacji jednej ręki Określa sposób obracania obiektu, gdy jest chwycony za pomocą jednej ręki.

  • Zachowaj oryginalny obrót: nie obraca obiektu podczas jego przesuwania
  • Utrzymywanie rotacji dla użytkownika: zachowuje oryginalną rotację obiektu dla osi X/Y dla użytkownika
  • Rotacja utrzymania wyrównana do grawitacyjnego dla użytkownika: zachowuje oryginalny obrót obiektu dla użytkownika, ale sprawia, że obiekt jest pionowy. Przydatne w przypadku obiektów z kontrolką granic.
  • Użytkownik twarzy: zapewnia, że obiekt zawsze jest twarzą użytkownika. Przydatne w przypadku plansz/paneli.
  • Twarz z dala od użytkownika: zapewnia, że obiekt zawsze jest twarzą z dala od użytkownika. Przydatne w przypadku plansz/paneli, które są konfigurowane wstecz.
  • Obracanie o środek obiektu: działa tylko w przypadku rąk/kontrolerów. Obracanie obiektu przy użyciu obrotu ręki/kontrolera, ale wokół punktu środkowania obiektu. Przydatne do inspekcji na odległość.
  • Obracanie wokół punktu chwycenia: działa tylko w przypadku rąk/kontrolerów. Obracaj obiekt tak, jakby był utrzymywany przez ręka/kontroler. Przydatne do inspekcji.

Zachowanie wydania Po zwolnieniu obiektu określ jego fizyczne zachowanie podczas ruchu. Wymaga, aby na tym obiekcie był element sztywnobodowy.

  • Nothing
  • Wszystko
  • Keep Velocity
  • Zachowaj Angular prędkości

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

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

Użyj miejsca lokalnego dla ograniczenia Przełącznik przełączania między stosowaniem ograniczeń w odniesieniu do osi przestrzeni światowej lub lokalnej osi przestrzeni.

Ograniczenia dotyczące ruchu

  • Brak
  • Naprawianie odległości od głowy

Wygładanie aktywne Określa, czy wygładzenie jest aktywne.

Smoothing Amount One Hand Ilość wygładzenia do zastosowania w przypadku ruchu, skalowania i obrotu. Wygładanie 0 oznacza brak wygładzenia. Wartość maksymalna oznacza brak zmiany wartości.

Zdarzenia

Procedura obsługi manipulowania zapewnia następujące zdarzenia:

  • OnManipulationStarted: wyzwano podczas uruchamiania manipulacji.
  • OnManipulationEnded: jest wyzwana po zakończeniu manipulacji.
  • OnHoverStarted: jest aktywowany, gdy ręka/kontroler umieszcza wskaźnik myszy na manipulowalnym, blisko lub daleko.
  • OnHoverEnded: jest aktywowany, gdy ręka/kontroler uniewają wskaźnik myszy na manipulowalnym, blisko lub daleko.