MRTK és felügyelt kód sztriptízelése – MRTK2

Ha a Unity IL2CPP-szkriptelési háttérrendszerét használja (a Unity 2018.4-ben nem kötelező, 2019-ben és újabb verzióban szükséges), felügyelt kódrészelés történik. A Unity linkere ezt a folyamatot a bináris méret csökkentése és a buildelési idő csökkentése érdekében hajtja végre.

A Mixed Reality eszközkészlet egy fájlt () használ annak befolyásolására, link.xmlhogy a Unity linkere hogyan dolgozza fel az MRTK-szerelvényeket. Ez a unity dokumentációjában részletesen ismertetett fájl útmutatást nyújt a linkernek arra vonatkozóan, hogyan őrizhető meg a kód, ha a használata nem következtethető ki (például tükröződés útján használható).

Rugalmas és testreszabható platformként az MRTK létrehozza a link.xml fájlt Assets/MixedRealityToolkit.Generated importáláskor, ha nem létezik. A már meglévő link.xml fájlok nincsenek felülírva. Javasoljuk, hogy és link.xmllink.xml.meta a verziókövetéshez is hozzá legyen adva. A fejlesztőknek szabadon testre szabhatják Assets/MixedRealityToolkit.Generated/link.xml a projekt igényeinek megfelelően.

Alapértelmezés szerint az MRTK által létrehozott link.xml fájl megőrzi az alábbi adatokban látható szerelvények teljes egészét.

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

A link.xml fájlformátummal kapcsolatos további információkért tekintse meg a Unity dokumentációját.

Lásd még