Universal Windows Platform: Plugins on .NET Scripting Backend
Universal Windows Platform: IL2CPP scripting back end

Universal Windows Platform: Debugging on .NET Scripting Backend

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

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

Note: Universal Windows Platform are running with Microsoft .NET, that’s why it’s not possible to debug scripts with MonoDevelop, instead you have to use Visual Studio 2013.

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

  • When building to Universal Windows Platform, check Unity C# projects
  • This will create Assembly-CSharp-* projects compatible with Universal Windows Apps
  • 補足 : もし直前の 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


Universal Windows Platform: Plugins on .NET Scripting Backend
Universal Windows Platform: IL2CPP scripting back end