Partager via


MrTK et suppression du code managé — MRTK2

Lors de l’utilisation du back-end de script IL2CPP d’Unity (facultatif dans Unity 2018.4, requis en 2019 et versions ultérieures), le déshabillage du code managé se produit. L’éditeur de liens d’Unity effectue ce processus pour réduire la taille binaire et réduire les temps de génération.

Le kit de ressources Mixed Reality utilise un fichier, link.xml, pour influencer la façon dont l’éditeur de liens Unity traite les assemblys MRTK. Ce fichier, décrit en intégralité dans la documentation d’Unity, fournit à l’éditeur de liens des instructions sur la façon de préserver le code lorsque son utilisation ne peut pas être déduite (par exemple, utilisation via la réflexion).

En tant que plateforme flexible et personnalisable, MRTK crée le fichier dans lors Assets/MixedRealityToolkit.Generated de l’importationlink.xml, s’il n’existe pas. Les fichiers link.xml préexistants ne sont pas remplacés. Il est recommandé d’ajouter link.xml et link.xml.meta au contrôle de version. Les développeurs doivent se sentir libres de personnaliser Assets/MixedRealityToolkit.Generated/link.xml pour répondre aux besoins du projet.

Par défaut, le fichier link.xml créé par MRTK conserve l’intégralité des assemblys indiqués dans les données suivantes.

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

Pour plus d’informations sur le format de fichier link.xml, reportez-vous à la documentation Unity.

Voir aussi