LoginSignup
36
37

More than 5 years have passed since last update.

ストレスフリーなWindowsネイティブプラグイン開発

Posted at

おしながき

Windows向けのUnityネイティブプラグインを書くときのTipsです。

  • ネイティブプラグインをF5でデバッグする方法
  • Unityの中でクラッシュしたときのデバッグ方法
  • ビルド時にネイティブプラグインをAssets以下に配置する方法

ネイティブプラグインをF5でデバッグする方法

ネイティブプラグインをデバッグするときに「いちいちアタッチするのがめんどくさい」と思う人が多いと思います。
実は、Visual Studioの「デバッグ実行(F5キー)」でUnityを起動するように設定すれば、自動的にネイティブプラグインをデバッグできます。アタッチしたときと同じように、ブレークポイントを張ったり、例外発生時に止めることもできます。

ネイティブプラグインのデバッグ実行時にUnityを立ち上げて自動的にアタッチするには、プロジェクトのプロパティで以下のように設定します。

  • コマンド: Unityエディターへのパス
  • コマンド引数: -projectPath [Unityプロジェクトへの絶対パス]

Debugger Configuration.png

あとはF5キーを押してデバッグ実行するだけで、自動的にUnityが起動してアタッチされます。

Unityの中でクラッシュしたときのデバッグ方法

ネイティブプラグインを開発していると、たまにUnityの中でクラッシュしてしまい、スタックトレースが追えないときがあります。
そんなときは、Unityが提供しているデバッグシンボルサーバーに接続して、せめてでも関数名を見れるようにしましょう。

Unityのデバッグシンボルサーバーについては、Unityのマニュアルに詳細があります。

設定方法は以下の手順のとおりです。

  1. メニューバーの[デバッグ > オプション]を開く
  2. 右のペインで[デバッグ > シンボル]ページを開く
  3. シンボルサーバーhttp://symbolserver.unity3d.comを追加する

Debug Symbol Server.png

最初のデバッグ実行時には長いロード時間がかかりますが、2回目からはキャッシュに保存されるようで早くなります。
これで、UnityのDLLやexe内でブレークした場合でも、スタックトレースで関数名がわかるようになります。

ビルド時にネイティブプラグインをAssets以下に配置する方法

ビルド時にプラグインをAssetsフォルダ以下に配置することができます。
Visual Studioのプロジェクトのプロパティで、ビルド後のイベントを以下のように設定します。
xcopy /Y $(TargetPath) [配置するフォルダへの相対パス]
配置するフォルダへの相対パスは、バックスラッシュで終わっている必要があります。

Post Build Event.png

おわりに

ほかにもネイティブプラグインのTipsがあれば追記なり別ページなりで紹介していくかもしれません。
たとえば…

  • 日本語もOKなプラグイン側からのDebug.Log
  • 例外発生時に自動でブレーク
  • Oculus Goでのストレスフリーなネイティブプラグイン開発

とか書けるとよさそうですね。

36
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
37