MRTK und verwaltetes Code-Stripping – MRTK2

Bei Verwendung des IL2CPP-Skript-Back-Ends von Unity (optional in Unity 2018.4, erforderlich in 2019 und höher) wird verwalteter Code entfernt . Der Linker von Unity führt diesen Prozess aus, um die Binärgröße zu reduzieren und die Buildzeiten zu verringern.

Das Mixed Reality Toolkit verwendet die Datei , um zu beeinflussen, link.xmlwie der Linker von Unity MRTK-Assemblys verarbeitet. Diese Datei, die in der Unity-Dokumentation vollständig beschrieben wird, enthält dem Linker Anweisungen zum Beibehalten von Code, wenn seine Verwendung nicht abgeleitet werden kann (z. B. verwendung per Reflektion).

Als flexible und anpassbare Plattform erstellt MRTK die link.xml Datei beim Assets/MixedRealityToolkit.Generated Import, wenn sie nicht vorhanden ist. Bereits vorhandene link.xml Dateien werden nicht überschrieben. Es wird empfohlen, dass link.xml und link.xml.meta zur Versionskontrolle hinzugefügt werden. Entwickler können sich an die Anforderungen des Projekts anpassen Assets/MixedRealityToolkit.Generated/link.xml .

Standardmäßig behält die von MRTK erstellte link.xml-Datei die Gesamtheit der in den folgenden Daten dargestellten Assemblys bei.

<linker> 
  <!-- 
    This link.xml file is provided to prevent MRTK code from being optimized away 
    during IL2CPP builds.More details on when this is needed and why this is needed 
    can be found here: https://github.com/microsoft/MixedRealityToolkit-Unity/issues/5273 
    If your application doesn't use some specific services (for example, if teleportation system is 
    disabled in the profile), it is possible to remove their corresponding lines down 
    below(in the previous example, we would remove the TeleportSystem below). 
    It's recommended to start with this list and narrow down if you want to ensure 
    specific bits of code get optimized away. 
  --> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.SDK" preserve="all"/> 
  <!-- Core systems --> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Services.BoundarySystem" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Services.CameraSystem" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Services.DiagnosticsSystem" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Services.InputSystem" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Services.SceneSystem" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Services.SpatialAwarenessSystem" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Services.TeleportSystem" preserve="all"/> 
  <!-- Data providers --> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Providers.LeapMotion" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Providers.OpenVR" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Providers.UnityAR" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality.Shared" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Providers.XRSDK.WindowsMixedReality" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Providers.WindowsVoiceInput" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Providers.XRSDK" preserve="all"/> 
  <!-- Extension services --> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Extensions.HandPhysics" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Extensions.Tracking" preserve="all"/> 
  <assembly fullname = "Microsoft.MixedReality.Toolkit.Extensions.SceneTransitionService" preserve="all"/> 
</linker>

Weitere Informationen zum link.xml Dateiformats finden Sie in der Unity-Dokumentation.

Weitere Informationen