Unityでビルドした後、ログだどこに出力されるのかというお話です。
結論は以下の通り。(PC向けにビルドした時のお話です)
MacOS | ~/Library/Logs/Company Name/Product Name/Player.log Note: You can also use the Console.app utility to find the log file. |
Windows | %USERPROFILE%\AppData\LocalLow\CompanyName\ProductName\Player.log |
Linux | ~/.config/unity3d/CompanyName/ProductName/Player.log |
公式ドキュメントはこちら
Log files
Unity produces log files for the Editor, package manager, licensing, development players, and Hub. You can use these log files to understand where any problems happened in your application.
Log files – Unity マニュアル (unity3d.com)
自分の環境(Windows11)の場合
C:\Users\shetl\AppData\LocalLow\DefaultCompany\R-18_Project3\Player.log
にログがありました。
今回のケース
Unity Editor上では正常に動くのに、ビルドして実行するとゲームが始まらないという現象が発生しました。
何が起こっているのか確認するため、ランタイムで実行時のログを確認することにしました。
今回のゲームはEncrypterというアセット暗号化アセットを利用しているのですが、どうやらキャラクター読み込み時に問題が発生しているようでした。
Playerでログ出力のタイプをすべてFullで設定してビルドを行っています。
結果的にOnEntry(PlayMakerで処理の始まりを表すメソッド)でFindを利用してゲームオブジェクトを検索した際、なぜかオブジェクトがうまく検索できなかったため発生していました。
Findを利用するのではなく、利用するスクリプトにpublicで変数を定義し、事前にインスペクタから設定しておく方法に切り替えて解決しました。(作りかけのVRエロゲが開発中止にならずに良かった・・・)
これはこれでちょっと不思議で、取得したかったプレハブ自体はシーン内に直接配置しているため、スクリプトの実行順で存在しないといったことは起こらないはずだが、なぜFindで検索できないのか・・・
こちらについては別途検証が必要そうです。