Bagikan melalui


MRTK dan stripping kode terkelola — MRTK2

Saat menggunakan backend pembuatan skrip IL2CPP Unity (opsional di Unity 2018.4, diperlukan pada tahun 2019 dan yang lebih baru), stripping kode terkelola terjadi. Linker Unity melakukan proses ini untuk mengurangi ukuran biner serta mengurangi waktu build.

Toolkit Mixed Reality menggunakan file, link.xml, untuk memengaruhi bagaimana linker Unity memproses rakitan MRTK. File ini, yang dijelaskan secara lengkap dalam dokumentasi Unity, menyediakan petunjuk kepada linker tentang cara mempertahankan kode ketika penggunaannya tidak dapat disimpulkan (mis: digunakan melalui pantulan).

Sebagai platform yang fleksibel dan dapat disesuaikan, MRTK membuat link.xml file saat diimpor Assets/MixedRealityToolkit.Generated , jika ditemukan tidak ada. File link.xml yang sudah ada sebelumnya tidak ditimpa. Disarankan agar link.xml dan link.xml.meta ditambahkan ke kontrol versi. Pengembang harus merasa bebas untuk menyesuaikan Assets/MixedRealityToolkit.Generated/link.xml untuk memenuhi kebutuhan proyek.

Secara default, file link.xml yang dibuat oleh MRTK mempertahankan keseluruhan rakitan yang diperlihatkan dalam data berikut.

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

Untuk informasi lebih lanjut tentang format file link.xml, silakan lihat dokumentasi Unity.

Lihat juga