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 から
InternetClient
とInternetClientServer
とPrivateNetworkClientServer
にチェックを入れます.
- Unity の Build Settings の UWP の項目から
Copy References
とDevelopment Build
とScript Debugging
にチェックを入れ Build を行います.
デバック手順
- デバック時には Unity プロジェクトと Unity Editor から開いた Visual Studio も出しておきます.
- Build で生成された Visual Studio の UWP プロジェクトを開き Debug モードで実行します.
- UWPアプリ実行中にUnity Editor から開いた Visual Studio の
Debug/Attach Unity Debugger
を選択し, Select Unity Instance からType
がPlayer
になっている Project 選択することで C# でのデバックが可能になります.
- C# のコード上で
#if WINDOWS_UWP
内の処理に対して Breakpoint による確認ができました.