MRTK-modularisering

En av de nya funktionerna i Mixed Reality Toolkit v2 är förbättrad komponentisering. När det är möjligt isoleras enskilda komponenter från alla utom grundskiktet i grunden.

Minimerade beroenden

MRTK v2 utvecklades avsiktligt för att vara modulär och för att minimera beroenden mellan systemtjänster (t.ex. rumslig medvetenhet).

På grund av typen av systemtjänster (till exempel indata och teleportering) finns det ett litet antal beroenden.

Även om det förväntas att tjänster behöver en eller flera dataleverantörskomponenter finns det inga direkta länkar mellan dem. Samma sak gäller för SDK-funktioner (t.ex. Användargränssnitt komponenter).

Komponentkommunikation

För att säkerställa att det inte finns några direkta länkar mellan komponenter använder MRTK v2 gränssnitt för att kommunicera mellan tjänster, dataleverantörer och programkod. Dessa gränssnitt definieras i och all kommunikation dirigeras via Mixed Reality Toolkit-kärnkomponenten.

Använda systemet för rumslig medvetenhet via gränssnitt

Minimera MRTK-importfotavtryck

För tillfället importeras MRTK som ett enda grundpaket (om vi för tillfället ignorerar förekomsten av exempelpaketet, vilket är ett helt valfritt paket). Det är möjligt att göra det här fotavtrycket mindre genom att manuellt minska de importerade filerna, även om det här är en mycket manuell process som inte har en väldefinierad guide.

Det går att avmarkera godtyckliga objekt under importen av Foundation-paketet. Vi rekommenderar dock inte att du gör detta i ett tidigt skede i utvecklingen eftersom det kan bryta funktionaliteten. När du har kommit fram till den sista funktionsuppsättningen för en app kan du rensa leverantörer och tjänster som inte behövs i följande mappar:

  • MRTK/Tjänster
  • MRTK/Providers
  • MRTK/SDK/Funktioner

Anteckning

MRTK v2.x kräver innehållet i mappen Assets/MRTK/Core.

Kommande funktioner

Programmets arkitektur

MRTK kommer att ha stöd för att göra det möjligt för program att byggas med en mängd olika arkitekturer, inklusive:

När du väljer en programarkitektur är det viktigt att tänka på designflexibilitet och programprestanda. Arkitekturerna som beskrivs här förväntas inte vara lämpliga för varje program.

MixedRealityToolkit-tjänstlokaliserare

MRTK aktiverar (och konfigurerar automatiskt) programscenarier för att använda MixedRealityToolkit standardkomponenten för tjänstlokaliserare. Den här komponenten innehåller stöd för att konfigurera MRTK-system och dataleverantörer via konfigurationskontrollerna och hanterar komponentens livslängd och kärnbeteenden (t.ex. när du ska uppdatera).

Alla system representeras i kärnkonfigurationskontrollen, oavsett om de finns eller är aktiverade i projektet. Se konfigurationsguiden Mixed Reality för mer information.

Enskilda tjänstkomponenter

Vissa utvecklare har uttryckt en vilja att inkludera enskilda tjänstkomponenter i programscenshierarkin. För att aktivera den här användningen måste tjänsterna antingen kapslas in i en anpassad registrator eller vara självregistrering/självhantering.

En självregistrerande tjänst implementerar och registrerar sig IMixedRealityServiceRegistrar själv så att programkoden kan identifiera tjänstinstansen via ett register.

En självhanteringstjänst kan implementeras som ett singleton-objekt i scenhierarkin. Det här objektet tillhandahåller instansegenskapen och som programkod kan använda för direkt åtkomst till tjänstens funktioner.

Lokaliserare för anpassad tjänst

Vissa utvecklare har begärt möjligheten att skapa en komponent för en anpassad tjänstlokaliserare. Anpassade tjänstlokaliserare implementerar IMixedRealityServiceRegistrar gränssnittet och hanterar livscykeln och kärnbeteenden för aktiva tjänster.

Hybridarkitektur

MRTK stöder en hybridarkitektur där utvecklare kan kombinera de tidigare metoderna efter behov eller önskemål. En utvecklare kan till exempel börja med MixedRealityToolkit tjänstlokaliseraren och lägga till en självregistrerande tjänst.

Anteckning

När du väljer en hybridarkitektur är det viktigt att tänka på all duplicering av arbete (till exempel att hämta kontrollantdata från flera komponenter).