MRTK-modularisatie — MRTK2

Een van de geweldige nieuwe functies van Mixed Reality Toolkit v2 is verbeterde componentisatie. Waar mogelijk worden afzonderlijke componenten geïsoleerd van alle onderdelen, behalve de kernlaag van de basis.

Geminimaliseerde afhankelijkheden

MRTK v2 is opzettelijk ontwikkeld om modulair te zijn en om afhankelijkheden tussen systeemservices (bijvoorbeeld ruimtelijk bewustzijn) te minimaliseren.

Vanwege de aard van sommige systeemservices (bijvoorbeeld invoer en teleportatie) bestaat er een klein aantal afhankelijkheden.

Hoewel wordt verwacht dat services een of meer onderdelen van de gegevensprovider nodig hebben, zijn er geen directe koppelingen tussen deze onderdelen. Hetzelfde geldt voor SDK-functies (bijvoorbeeld onderdelen van de gebruikersinterface).

Componentcommunicatie

Om ervoor te zorgen dat er geen directe koppelingen tussen onderdelen zijn, maakt MRTK v2 gebruik van interfaces om te communiceren tussen services, gegevensproviders en toepassingscode. Deze interfaces worden gedefinieerd in en alle communicatie wordt gerouteerd via het kernonderdeel Mixed Reality Toolkit.

Het ruimtelijk bewustzijnssysteem gebruiken via interfaces

Mrtk-importvoetafdruk minimaliseren

Op dit moment wordt MRTK geïmporteerd als één Foundation-pakket (waarbij het bestaan van het voorbeeldenpakket even wordt genegeerd, wat een volledig optioneel pakket is). Het is mogelijk om deze voetafdruk kleiner te maken door handmatig de geïmporteerde bestanden te verminderen, hoewel dit een zeer handmatig proces is dat geen goed gedefinieerde handleiding heeft.

Het is mogelijk om willekeurige items uit te schakelen tijdens het importeren van het Foundation-pakket. Het wordt echter niet aanbevolen om dit in een vroeg stadium van de ontwikkeling te doen, omdat de functionaliteit hierdoor kan worden verbroken. Nadat u de laatste functieset van een app hebt bepaald, kunt u overbodige providers en services verwijderen in de volgende mappen:

  • MRTK/Services
  • MRTK/Providers
  • MRTK/SDK/Functies

Notitie

MRTK v2.x vereist de inhoud van de map Assets/MRTK/Core.

Toekomstige functies

Toepassingsarchitectuur

MRTK biedt ondersteuning voor het bouwen van toepassingen met verschillende architecturen, waaronder:

Bij het selecteren van een toepassingsarchitectuur is het belangrijk om rekening te houden met ontwerpflexiteit en toepassingsprestaties. De architecturen die hier worden beschreven, zijn naar verwachting niet geschikt voor elke toepassing.

MixedRealityToolkit service locator

MRTK schakelt (en configureert) toepassingsscènes in om het standaardservicezoekeronderdeel MixedRealityToolkit te gebruiken. Dit onderdeel bevat ondersteuning voor het configureren van MRTK-systemen en gegevensproviders via configuratiecontrole en beheert de levensduur van onderdelen en kerngedrag (bijvoorbeeld wanneer bijwerken).

Alle systemen worden weergegeven in de basisconfiguratiecontrole, ongeacht of ze aanwezig zijn of niet in het project zijn ingeschakeld. Raadpleeg de configuratiehandleiding voor Mixed Reality voor meer informatie.

Afzonderlijke serviceonderdelen

Sommige ontwikkelaars hebben de wens uitgesproken om afzonderlijke serviceonderdelen op te nemen in de hiërarchie van de toepassingsscène. Om dit gebruik mogelijk te maken, moeten services worden ingekapseld in een aangepaste registrar of moeten ze zichzelf registreren/zelf beheren.

Een zelf-registrerende service implementeert de IMixedRealityServiceRegistrar en registreert zichzelf, zodat de toepassingscode het service-exemplaar kan detecteren via een register.

Een zelfbeheerende service kan worden geïmplementeerd als een singleton-object in de scènehiërarchie. Dit object zou de eigenschap en instantie bieden die de toepassingscode kan gebruiken om rechtstreeks toegang te krijgen tot de servicefunctionaliteit.

Aangepaste servicezoeker

Sommige ontwikkelaars hebben de mogelijkheid aangevraagd om een aangepast servicezoekeronderdeel te maken. Aangepaste servicelocators implementeren de IMixedRealityServiceRegistrar interface en beheren de levenscyclus en het kerngedrag van actieve services.

Hybride architectuur

MRTK ondersteunt een hybride architectuur waarin ontwikkelaars de vorige benaderingen naar behoefte of gewenst kunnen combineren. Een ontwikkelaar kan bijvoorbeeld beginnen met de MixedRealityToolkit servicezoeker en een zelf registrerende service toevoegen.

Notitie

Wanneer u voor een hybride architectuur wilt kiezen, is het belangrijk om rekening te houden met duplicatie van werk (bijvoorbeeld het verkrijgen van controllergegevens van meerdere onderdelen).