MRTK とマネージド コードの削除 — MRTK2
Unity の IL2CPP スクリプト バックエンド (Unity 2018.4 ではオプション、2019 以降では必須) を使用すると、マネージド コードが削除されます。 Unity のリンカーでは、このプロセスを実行することでバイナリ サイズを減らすと共に、ビルド時間を短縮します。
Mixed Reality ツールキットでは、ファイル link.xml
を使用して Unity のリンカーによる MRTK アセンブリの処理方法を制御します。 このファイル (Unity のドキュメントに詳しい説明があります) は、その使用方法を推測できない場合 (たとえば、リフレクションを通じて使用するなど) に、リンカーにコードの保持方法に関する指示を与えます。
柔軟でカスタマイズ可能なプラットフォームとして、MRTK ではインポート時に link.xml
ファイルを Assets/MixedRealityToolkit.Generated
に作成します (存在しないとわかった場合)。 既存の link.xml ファイルは上書きされません。 link.xml
と link.xml.meta
をバージョン管理に追加することをお勧めします。 開発者はプロジェクトのニーズに合わせて Assets/MixedRealityToolkit.Generated/link.xml
を自由にカスタマイズできます。
既定では、MRTK によって作成された link.xml ファイルには、次のデータに示されているアセンブリ全体が保持されます。
<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>
link.xml ファイル形式の詳細については、Unity のドキュメントを参照してください。