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.
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:
- MixedRealityToolkit service locator
- Afzonderlijke services
- Aangepaste servicezoeker
- Hybride architectuur
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).