なんかいろいろしてみます

Jun 13, 2021 - 1 minute read - HoloLens

Unity の IL2CPP ビルド後の UWP アプリを C# のコードでデバックする方法

HoloLens など実機動作しないと確認できない機能をC#でデバックしたかったので書いておきます.

UnityのIL2CPPビルドUWPアプリでデバック時にBreakpointで確認したい

  • Unity で開発する UWP アプリは IL2CPP によって変換された Visual Studio プロジェクトを利用している.
  • Unity Editor 上では Visual Studio のデバック機能で C# コード上で Breakpoint を設定して確認することができます.
  • しかし #if WINDOWS_UWP で切り分けされた部分は確認できません.
  • Unity でのビルド後に IL2CPP されたコードでは C# のコードに対する確認は難しくなってしまいます.

環境

  • Unity 2020.3.10f1
  • Visual Studio 2019
  • Visual Studio Tools for Unity
    • Visual Studio Installer から追加でインストール

デバック手順

  • UWP ビルド後のプロジェクトを実行しつつ,Unity Editor から開いた Visual Studio の C# をデバックすることができます.

プロジェクト設定

  • ネットワークを利用してデバックを行うため, Project Settings の Player/Capabilities から InternetClientInternetClientServerPrivateNetworkClientServer にチェックを入れます.
  • Unity の Build Settings の UWP の項目から Copy ReferencesDevelopment BuildScript Debugging にチェックを入れ Build を行います.

デバック手順

  • デバック時には Unity プロジェクトと Unity Editor から開いた Visual Studio も出しておきます.
  • Build で生成された Visual Studio の UWP プロジェクトを開き Debug モードで実行します.
  • UWPアプリ実行中にUnity Editor から開いた Visual Studio の Debug/Attach Unity Debugger を選択し, Select Unity Instance から TypePlayer になっている Project 選択することで C# でのデバックが可能になります.
  • C# のコード上で #if WINDOWS_UWP 内の処理に対して Breakpoint による確認ができました.