Obslužná rutina manipulace – MRTK2

Obslužná rutina manipulace

Skript ManipulationHandler umožňuje, aby byl objekt pohyblivý, škálovatelný a otočný pomocí jedné nebo dvou rukou. Manipulaci lze omezit tak, aby umožňovala pouze určité druhy transformace. Skript funguje s různými typy vstupů, včetně HoloLens 2 artikulovaného vstupu rukou, paprsků rukou, vstupu gest HoloLensu (1. generace) a vstupu imerzivního ovladače pohybu náhlavní soupravy.

Jak používat obslužnou rutinu manipulace

Přidejte komponentu ManipulationHandler script do objektu GameObject. Nezapomeňte také k objektu přidat s collider, který odpovídá jeho uchopitelným hranicím.

Pokud chcete, aby objekt reagoval na téměř artikulovaný vstup rukou NearInteractionGrabbable , přidejte také skript.

Použití obslužné rutiny manipulace v editoru unity

Vlastnosti inspektoru

Struktura obslužné rutiny manipulace

Transformace hostitele Transformace, která bude přetažena. Výchozí hodnota je objekt komponenty.

Typ manipulace Určuje, zda lze s objektem manipulovat jednou rukou, dvěma rukama nebo oběma.

  • Pouze jednou rukou
  • Pouze pro dvě ruku
  • Jednoruční a dvouruční

Typ manipulace se dvěma rukama

  • Škálování: Je povoleno pouze škálování.
  • Otočení: Je povoleno pouze otáčení.
  • Přesunout škálování: Přesun a škálování je povolené.
  • Otočení přesunutí: Přesunutí a otáčení je povoleno.
  • Otočit měřítko: Otáčení a škálování je povolené.
  • Přesunout měřítko otočení: Přesunutí, otáčení a škálování je povoleno.

Obslužná rutina pro manipulaci

Povolit dalekou manipulaci Určuje, zda lze manipulaci provádět pomocí vzdálené interakce s ukazateli.

Režim otáčení jednou rukou poblíž Určuje, jak se bude objekt chovat, když je uchopen s jednou rukou nebo ovladačem blízko.

Režim otáčení jednou rukou daleko Určuje, jak se bude objekt chovat, když je uchopen jednou rukou nebo ovladačem ve vzdálenosti.

Možnosti režimu otočení jednou rukou Určuje, jak se bude objekt otáčet, když je uchopen jednou rukou.

  • Zachovat původní otočení: Neotáčí objekt při přesouvání.
  • Zachovat otáčení pro uživatele: Zachová původní otočení objektu pro osu X/Y k uživateli.
  • Gravitace zarovnaná udržuje otáčení uživatele: Zachová původní otočení objektu uživateli, ale nastaví objekt svisle. Užitečné pro objekty s ovládacím prvku ohraničení.
  • Rozpoznávání tváře uživatele: Zajišťuje, aby objekt byl vždy tváří v tvář uživateli. Užitečné pro tabule/panely.
  • Rozpoznávání tváře od uživatele: Zajišťuje, aby objekt byl vždy obrácený k uživateli. Užitečné pro slates/panely, které jsou nakonfigurovány dozadu.
  • Otáčení o střed objektů: Funguje jenom pro kloubové ruce nebo ovladače. Otočte objekt pomocí otočení ruky nebo ovladače, ale o středový bod objektu. Užitečné pro kontrolu na dálku.
  • Otočení o bod chytnutí: Funguje jenom pro kloubové ruce nebo ovladače. Otočte objekt tak, jako by byl přidržen rukou nebo ovladačem. Užitečné pro kontrolu.

Chování při vydávání verzí Při uvolnění objektu určete jeho chování fyzického pohybu. Vyžaduje, aby na daném objektu byla součást tuhého objektu.

  • Nothing
  • Všechno
  • Zachovat rychlost
  • Zachování rychlosti Angular

Omezení rotace Určuje, na které ose se objekt při interakci otočí.

  • Žádný
  • Pouze osa X
  • Pouze osa Y
  • Pouze osa Z

Použití místního prostoru pro omezení Přepínač pro přepínání mezi použitím omezení s ohledem na světovou osu nebo místní prostorovou osu.

Omezení pohybu

  • Žádný
  • Upevněte vzdálenost od hlavy

Vyhlazení aktivní Určuje, jestli je vyhlazení aktivní.

Vyhlazení množství jednou rukou Míra vyhlazování, které se má použít pro pohyb, měřítko, otočení. Vyhlazení 0 znamená žádné vyhlazování. Maximální hodnota znamená, že se hodnota nezmění.

Události

Obslužná rutina pro manipulaci poskytuje následující události:

  • OnManipulationStarted: Aktivuje se při zahájení manipulace.
  • OnManipulationEnded: Aktivuje se při ukončení manipulace.
  • OnHoverStarted: Aktivuje se, když ruka nebo ovladač najetý myší na manipulovatelnou, blízko nebo daleko.
  • OnHoverEnded: Aktivuje se, když ruka nebo ovladač najetí myší na manipulovatelné poblíž nebo daleko.