Version: 5.5
Windows ストアアプリ: .NET Scripting Backend でのプラグイン設定
Windows ストア: IL2CPP Scripting Backend

Windows ストアアプリ: .NET Scripting Backend でのデバッグ

クラッシュしたり不可解な動作に遭遇した場合は、次の場所にある player ログを常にチェックしてください - <user>\AppData\Local\Packages\<productname>\TempState\UnityPlayer.log 。バグの報告をする際にはこの貴重な情報が含まれている player ログを是非添付してください。

現状では C# スクリプトのみデバッグが可能です。

補足 : Windows ストアアプリは Microsoft .NET で実行されるため、MonoDevelop ではスクリプトのデバッグが行えません。代わりに Visual Studio 2013 を使用します。

簡単な手順のやり方は次のとおりです。

  • Windows ストアアプリのビルドの際には Unity C# projects にチェックします
  • これで Windows ストアアプリと互換性のある Assembly-CSharp-* プロジェクトが生成されます
  • 補足 : もし直前の Unity C# projects がチェックされていなかった場合、フォルダーを空にするか * .sln と * .csproj を削除してビルドしてください。Unity はこれらのファイルに参照を追加する必要がありますが、すでに存在する場合は上書きされないからです
  • ソリューションを開くと、Assembly-CSharp-* プロジェクトが含まれています。
  • 確認したい場所にブレークポイントを配置して、シンプルにアプリケーションをデバッガーで開始します。

例外

アプリケーションの実行中、Visual Studio へ例外が発生した場合に停止するよう指示できます。Debug -> Exceptions を選択します。

  • マネージドの例外には Common Language Runtime Exceptions と Managed Debugging Assistants が有効にできます。
  • 不明な場所で例外が発生した場合は、すべての例外を有効にできます。

補足 : すべての例外を有効にした場合、Visual Studio は WinRT originate errorWinRT transform error のような無害な例外が発生した場合でも停止するため、それらは除外しそのまま継続します。

UnityPlayer.dll からのコールスタックの解決

Unity エンジン自身がクラッシュした場合、コールスタックを解析することで役立つ情報を得られ、必要であればバグ報告とともに提供可能です。

補足 : Unity エンジンのコールスタックは .pdb ファイルが使える場合は解析可能です。Unity はDebug 設定に関する  .pdb ファイルを提供します。

Unity エンジンがクラッシュしブレークポイントで停止したとします ( 補足 : Debug -> Exceptions メニューからすべての例外を有効にすると、Visual Studio はクラッシュした時点で停止します)。Debug -> Windows -> Call Stack と移動すると、Call Stack ウィンドウが開きます。UnityPlayer.dll から関数の名前が表示されない場合は、シンボルが読み込まれていないということです。これを解決するためには、関数上で右クリックし Load Symbols を選びます。UnityPlayer.pdb は [プロジェクトへのパス]>\Players[Windows80 または Windows81][X86 か ARM か X64]\debug にあります。

Microsoft-Windows-TWinUI

これはデバッガなしで確認できる、アプリケーションが起動しないことに関する情報を提供するログで、次の位置にあります。

コントロールパネル -> 管理ツール -> イベントビューアー -> アプリケーションとサービスログ -> Microsoft -> Windows -> Apps -> Microsoft-Windows-TWinUI/Operational

Windows ストアアプリ: .NET Scripting Backend でのプラグイン設定
Windows ストア: IL2CPP Scripting Backend