Sdílet prostřednictvím


Průvodce portováním vstupů pro Unity

Vstupní logiku můžete přenést na Windows Mixed Reality pomocí jednoho ze dvou přístupů:

Obecná rozhraní API Input.GetButton a Input.GetAxis

Unity v současné době používá svá obecná Input.GetButton rozhraní a Input.GetAxis rozhraní API k zveřejnění vstupu pro sadu Oculus SDK a sadu OpenVR SDK. Pokud už vaše aplikace používají tato rozhraní API pro vstup, představují tato rozhraní API nejjednodušší způsob podpory ovladačů pohybu v Windows Mixed Reality. Stačí přemapovat tlačítka a osy ve Správci vstupů.

Další informace najdete v tabulce mapování tlačítka a osy Unity a v přehledu běžných rozhraní UNITY API.

Důležité

Pokud používáte řadiče HP Reverb G2, další pokyny pro mapování vstupů najdete v tématu Řadiče HP Reverb G2 v Unity .

Vstupní rozhraní API XR

Verze Unity postupně ukončovaly XR. Rozhraní WSA API ve prospěch sady XR SDK. Pro nové projekty je nejlepší používat rozhraní API pro vstup XR od začátku. Další informace najdete v tématu Vstup Unity XR.

Pokud už vaše aplikace vytváří vlastní vstupní logiku pro každou platformu, můžete použít rozhraní API prostorového vstupu specifické pro Windows v oboru názvů UnityEngine.InputSystem.XR . Tato rozhraní API vám umožňují získat přístup k dalším informacím, jako je přesnost pozice nebo druh zdroje, abyste na HoloLensu oddělili ruce a ovladače.

Poznámka

Pokud používáte řadiče HP Reverb G2, všechna vstupní rozhraní API budou dál fungovat s výjimkou InteractionSource.supportsTouchpadpříkazu , který vrací hodnotu false bez dat touchpadu.

Pozice úchytu a pozice ukazatele

Windows Mixed Reality podporuje ovladače pohybu v různých formách. Návrh každého kontroleru se liší ve vztahu mezi polohou ruky uživatele a přirozeným směrem dopředu, který aplikace používají k ukazování při vykreslování kontroleru.

Pokud chcete tyto kontrolery lépe znázorňovat, můžete prozkoumat dva druhy pozic pro každý zdroj interakce: pozici úchytu a pozici ukazatele. Vyjadřujete všechny souřadnice pozice v souřadnicích světa Unity.

Pozice gripu

Pozice gripu představuje umístění buď dlaně ruky rozpoznané HoloLensem, nebo dlaně držící ovladač pohybu. Na imerzivních náhlavních soupravách použijte tuto pozici k vykreslení ruky uživatele nebo objektu, který drží v ruce uživatele, jako je meč nebo zbraň.

  • Pozice rukojeti je centroid dlaně při přirozeném podržení ovladače, upraveno doleva nebo doprava na střed pozice v rukojeti.
  • Pravá osa orientace rukojeti je paprsek, který je normální k vaší dlani, dopředu z levé dlaně, zpět od pravé, když zcela otevřete ruku, abyste vytvořili plochou pozici s pěti prsty.
  • Osa orientace rukojeti vpřed je paprsek, který ukazuje dopředu trubicí tvořenou prsty bez palce, když částečně zavíráte ruku, jako by držel ovladač.
  • Osa orientace úchytu nahoru je osa nahoru odvozená z definic doprava a dopředu.

Přístup k pozici gripu prostřednictvím XR Unity. Rozhraní API InputTracking.GetNodeStates , například XRNodeState.TryGetPosition nebo XRNodeState.TryGetRotation.

Pozice ukazatele

Pozice ukazatele představuje špičku kontroleru směřujícího dopředu. Tato pozice se nejlépe používá k ray cast pointingu v uživatelském rozhraní, když vykreslujete samotný model kontroleru.

Pozice ukazatele je v Unity k dispozici pouze prostřednictvím rozhraní API specifického pro Windows MR, sourceState.sourcePose.TryGetPosition/Rotationkteré se předává InteractionSourceNode.Pointer jako argument.

Viz také