MRTK y eliminación de código administrado: MRTK2

Al usar el back-end de scripting IL2CPP de Unity (opcional en Unity 2018.4, necesario en 2019 y versiones posteriores), se produce la eliminación de código administrado . El enlazador de Unity realiza este proceso para reducir el tamaño binario, así como para reducir los tiempos de compilación.

El kit de herramientas de Mixed Reality usa un archivo, link.xml, para influir en cómo el enlazador de Unity procesa los ensamblados MRTK. Este archivo, que se describe en su totalidad en la documentación de Unity, proporciona al enlazador instrucciones sobre cómo conservar el código cuando no se puede deducir su uso (por ejemplo, se usa mediante reflexión).

Como plataforma flexible y personalizable, MRTK crea el link.xml archivo en la Assets/MixedRealityToolkit.Generated importación, si no existe. Los archivos de link.xml ya existentes no se sobrescriben. Se recomienda que link.xml y link.xml.meta se agreguen al control de versiones. Los desarrolladores deben sentirse libres de personalizar Assets/MixedRealityToolkit.Generated/link.xml para satisfacer las necesidades del proyecto.

De forma predeterminada, el archivo de link.xml creado por MRTK conserva la totalidad de los ensamblados que se muestran en los datos siguientes.

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

Para obtener más información sobre el formato de archivo link.xml, consulte la documentación de Unity.

Consulte también