Delen via


MRTK en beheerde codestripping — MRTK2

Wanneer u de IL2CPP-back-end van Unity gebruikt (optioneel in Unity 2018.4, vereist in 2019 en hoger), vindt het strippen van beheerde code plaats. De koppeling van Unity voert dit proces uit om de binaire grootte te verminderen en de buildtijden te verkorten.

De Mixed Reality Toolkit gebruikt een bestand, link.xml, om te beïnvloeden hoe de linker van Unity MRTK-assembly's verwerkt. Dit bestand, volledig beschreven in de documentatie van Unity, biedt de koppeling instructies voor het behouden van code wanneer het gebruik ervan niet kan worden afgeleid (bijvoorbeeld gebruikt via reflectie).

Als flexibel en aanpasbaar platform maakt MRTK het bestand in Assets/MixedRealityToolkit.Generated bij het link.xml importeren, als het niet bestaat. Bestaande link.xml-bestanden worden niet overschreven. Het wordt aanbevolen om link.xml en link.xml.meta toe te voegen aan versiebeheer. Ontwikkelaars moeten zich vrij voelen om ze aan te passen Assets/MixedRealityToolkit.Generated/link.xml aan de behoeften van het project.

Standaard behoudt het link.xml-bestand dat door MRTK is gemaakt, de volledige assembly's die in de volgende gegevens worden weergegeven.

<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>

Raadpleeg de Documentatie van Unity voor meer informatie over de link.xml-bestandsindeling.

Zie ook