UnityネイティブプラグインをVisual Studio でステップ実行デバッグする
Unityのネイティブプラグインを開発していると、Unityで実行中にプラグイン内部のコードや変数の状態をデバッグしたくなる時がよくありますよね。
これは簡単な手順で行うことができるので手順を書いておきます。
デバッグ実行できる条件
つまり自作プラグインやオープンソースのものであればデバッグ可能です。
反対に .dllファイルだけ提供されているようなプラグインはデバッグできないということです。
デバッグ実行するための手順
ネイティブプラグインをDebugビルドする
Debug構成でプラグインをビルドします。
ビルドが成功すると .dllファイルと .pdbファイルが出力されます。
Unityのプラグインフォルダに必要なファイルを配置する
.dllファイルと .pdbファイルをUnity内のPluginsフォルダに配置します。
Visual StidoからUnityにアタッチする
Unityプロジェクトを開いたのち、プラグインプロジェクトを開いているVisual Studio の [デバッグ]-[プロセスにアタッチ]メニューを選択します。
"プロセスにアタッチ"ダイアログが表示されるのでUnityのプロセスを選択して[アタッチ]します。
プロセスはたくさん列挙されますが"unity"で絞り込めば見つけやすいです。
ブレークポイントの設定を行う
ステップ実行したい部分にブレークポイントを設定しましょう。
UnityでPlayする
この状態でUnityでPlayすると、なんということでしょう。
プラグイン側のソースコード上のブレークポイントが効きましたね。
もちろん、普通にステップ実行ができますし、変数の内容もウォッチすることができます。
ブレークポイントが効かない時は
プラグインプロジェクト側とUnity側で .dllファイルと .pdbファイルのバージョンが一致していないことが原因として考えられます。
再ビルドとUnityへのファイル更新を再度行ったり、Unityの再起動を行ってみてください。
まとめ
これでプラグインを絡めてUnityアプリケーションを開発するスピードが爆上がりですね(笑)!