Nástroje a vizualizéry
Nástroje a vizualizéry v oboru názvů Microsoft.MixedReality.WorldLocking.Tools jsou určeny k pomoci během vývoje. Mohou také být výchozím bodem pro pokročilou přímou interakci se systémem WLT (World Locking Tools).
I když nejsou určené pro přímé použití, jak je to v aplikaci, vývojář aplikace se k tomu může rozhodnout.
WorldLocking.Core má fungovat tak, jak je v libovolném vhodném scénáři aplikace. Nástroje ale můžou předpokládat, že aplikace bude. Tyto předpoklady můžou v některých situacích usnadnit jejich nevhodné chování.
Před začleněním některého z nástrojů přímo v expediční aplikaci zvažte vytvoření verze tohoto nástroje přizpůsobené vašim vlastním požadavkům a prostředkům.
Nástroje
Pojistných událostí
Úpravce jsou komponenty, které zpracovávají události refit. Konkrétně vytvářejí body přílohy. V případě operace opětovného přizpůsobení slouží Aplikace AttachmentPoint jako zpětné volání oznámení. Adjuster zpracovává danou událost odpovídajícím způsobem.
Podívejte se na další koncepční diskuzi o přílohách.
Přesná správná reakce na událost přizpůsobení se bude lišit pro různé typy objektů a je velmi specifická pro aplikaci. Pokud je například fragment objektu momentálně neaktivní, měl by se objekt zobrazit? U některých aplikací, protože správné umístění objektu nelze určit, měl by být skrytý. Pro jiné aplikace může být lepší zobrazit objekt v dočasně nesprávné pozici, než trpět nejasnostmi jeho zmizení. A dokonce i pro aplikace, které by měly objekt skrýt, existují různé způsoby, jak provést skrytí (například zakázání nebo přesunutí daleko).
Komponenty AdjusterFixed a AdjusterMoving zpracovávají dva běžné scénáře minimálně.
Komponenta AdjusterFixed předpokládá, že jeho cíl je obecně nepřesouvací. Pokud Nástroje pro uzamčení světa odesílají pozici úprav z důvodu události přizpůsobení, je určena k zachování objektu AdjusterFixed na světě.
Naproti tomu komponenta AdjusterMoving předpokládá, že jeho cíl je mobilní prostřednictvím souřadnicového prostoru Unity. Systém World Locking Tools je vyhodnocený z umístění cíle, aby v případě operace opětovného přizpůsobení mohl systém poskytnout nejpřesnější opravu, aby v daném okamžiku zachoval pozici cíle vzhledem k fyzickému světu konstantu.
Adaptéry
Součásti adaptéru jsou určeny pouze pro ilustraci. Pokud zjistíte, že používáte některý z adaptérů, měli byste pravděpodobně znovu promyslet, jak se snažíte používat nástroje World Locking Tools.
MrTK již má integrované adaptéry, takže v části aplikace není nutná žádná další transformace souřadnicového systému.
Můžou existovat časy, zejména pokud nepoužíváte MRTK, při převodu z nativních prostředků, které budou hlásit v souřadnicích Spongy Space na Zmrazený prostor. V takových případech může vývojář aplikace najít jeden z adaptérů, které jsou zde uvedeny, aby byl dobrým odkazem.
WorldAnchorAdapter - An WorldAnchor upraví pozici objektu v prostoru Spongy tak, aby zůstal pevně v fyzickém prostoru. To je redundantní se světem uzamčeným prostorem poskytovaným nástroji World Lock Tools, a proto se objekt posune v ukotveném prostoru. Tento adaptér umožňuje WorldAnchor udržovat pozici objektu v zamrzlém prostoru. To není nutné s výjimkou diagnostiky. Všechny objekty v globálním souřadnici prostoru Unity jsou světem uzamčené nástroji World Locking Tools.
ToggleWorldAnchor - Podobá se WorldAnchorAdapter, ale lze přepnout. Při zakázání WorldLockingManager se také automaticky převede na běžné chování WorldAnchor. Užitečné pouze pro diagnostiku.
FrozenSpatialMapping – Adaptér spravuje a správně vykresluje výsledky ze serveru SurfaceObserver. Systém MRTK Spatial Awareness poskytuje všechny tyto funkce a další funkce a nevyžaduje žádný adaptér pro práci s nástroji World Locking Tools.
FrozenTapToAdd – Přímé propojení se vstupním systémem Unity vyžaduje převod příchozích souřadnicových dat, jak je znázorněno zde. To není nutné u vstupního systému MRTK.
Vizualizéry
Ukotvení vizualizace grafu
AnchorGraphVisual a jeho přidružené prefab jsou jádrem zadaných vizualizací. Součásti jsou následující:
Osy - Aktuální pozice pro původ Spongy Space (zelená) a Ukotvený prostor (modrá) jsou zobrazeny jako standardní identifikátory 3 šipek.
Spongy Anchors - Jedná se o nativní podkladové kotvy, které byly vytvořeny pro podávání optimalizace zmrazeného světa motoru. Každý z nich je reprezentován kruhem spolu s textovou značkou, která ji identifikuje. Další informace jsou také vyjádřeny barvou a velikostí.
Aktivní sledované ukotvení bude zelené.
Sledované ukotvení s nulovou relevanci bude červené.
Nepodporované ukotvení bude žluté.
Čím větší prstenec, tím větší je význam pro dané ukotvení.
Ukotvené kotvy – jedná se o odpovídající referenční body v ukotveném prostoru. Pokud chybí chyba sledování, budou přesně v souladu se spongy anchors.
Spongy-Ukotvené hrany - Tyto připojují Spongy Anchors k jejich odpovídající Ukotvené ukotvení. Vzhledem k tomu, že v nepřítomnosti chyby sledování by se tyto chyby shodovaly, neuvidíte tyto hrany znamená, že všechno funguje dokonale. V každém případě by tyto hrany neměly být delší než několik centimetrů. Jsou červené na zamrzlém konci. Barva zmizí na modrém konci spongy.
Hrany ukotvení – tyto tenké modré šedé čáry zobrazují spojení mezi spojovacími kotvami v grafu ukotvení.
Povolení zobrazení grafu ukotvení, který nástroj World Locking Tools generuje při pohybu uživatele o fyzickém prostředí, vyžaduje pouze vyřazení prefabs WorldLockingTools > Prefabs > AnchorGraphVisual prefab do scény. Obvykle se přidává jako stejné umístění do WorldLockingContextu, ale jeho přesné umístění v hierarchii není důležité. Neměl by však být umístěn v hierarchii kamery.
Prostorové kotvy, které WLT vytváří a používá interně, se vytvářejí na pozici kamery. Vzhledem k tomu, že se jedná o nerušující procházení pole vizualizací ukotvení na úrovni očí, systém ve výchozím nastavení zobrazuje 1 měřič dolů od jejich skutečné pozice. Pokud chcete zobrazit vizualizace ukotvení na skutečných pozicích ukotvení, nastavte parametr Svislé posunutí komponenty Anchor Graph Visual na nulu.
Další výstup
Příklady uzamčení světa zahrnují diagnostiku textu. Většina z nich je relevantní pouze pro vývojáře nástroje World Locking Tools, nikoli pro klienty svých schopností. Jsou však k dispozici pro čtení a jak je znázorněno ve skriptu StatusToText pro zobrazení v reálném čase.
Pro analýzu pomortem může být část Diagnostika WorldLockingContext velmi užitečná při hlášení chyb zablokovaného world engine. Další informace najdete v části Hlášení chyby .