はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】UnityアプリをAndroid実機で動作させ、Android Studioのlogcatを利用してログを確認する方法

はじめに

UnityアプリをビルドしてAndroidでデバッグする際に、ログを調べたい場合もあるでしょう。そんなときにAndroid StudioLogcatを利用することでログを確認することができます。

Logcatが動作している様子
UnityEngineのDebug.Log等を確認している様子

developer.android.com

実際にLogcatでログを確認するまでの手法を紹介したいと思います。

Android Studioのインストール

今回はAndroid Studioを利用した方法をとるので、Android Studioをインストールしていない人はインストールしてください。
developer.android.com

ちなみにJetBrains ToolboxからAndroid Studioをインストールすることも可能なので、JetBrainsユーザーは是非活用してみてください。

JetBrains Toolbox

Android Studioを立ち上げLogcatを開く

Android Studioを立ち上げ、適当なプロジェクトを作成します。(New Projectを選択しプロジェクトを作成する)
またすでに何かしらのプロジェクトが作成済みであれば、そちらを開きます。

New Project

プロジェクトを開くとメニューバーのView -> Tool Windows -> Logcatを選択して、Logcatウィンドウを立ち上げます。

メニューバーのView -> Tool Windows -> Logcat

Android端末と接続する

UnityのアプリをビルドしてAndroidに送ります。(手法は各々に任せます)

Build Settingsよりビルドした例

するとLogcatに大量のログが出力されているかと思います。フィルタをかけていない場合はシステム周りのログなどUnityのアプリに関係ないものも含まれているので、ある程度フィルタをかけて調べたいものを絞った方が良いでしょう。

Logcatが動作している様子

Logcatのフィルタ

ログが読みづらい場合はクエリを書くことでフィルタをかけることができます。クエリを書く場所は以下の画像を参考にしてみてください。

ログをクエリする
// フィルタの例
package:com.CompanyName.ProductName tag:Unity  
  • tag: ログエントリの tag フィールドに一致します。
  • package: ロギングアプリのパッケージ名に一致します。
  • process: ロギングアプリのプロセス名に一致します。
  • message: ログエントリのメッセージ部分に一致します。
  • level: 指定した重大度以上のログレベル(例: DEBUG)に一致します。
  • age: エントリのタイムスタンプが最新である場合に一致します。値は、数値の後に時間単位を示す文字を付けて指定します。時間単位は、s(秒)、m(分)、h(時間)、d(日)です。たとえば、age: 5m を指定すると、過去 5 分間にログに記録されたメッセージのみがフィルタされます。

Logcat でログを表示する  |  Android Studio  |  Android Developers

詳細は公式ドキュメントを見てください。

ツールバー

Logcatの左側にあるツールバーを用いることでログを削除したり、取得を一時停止・再開したり、最新のログまでスクロールしたりなどの操作を行うことができます。

Logcatのツールバー

上手に活用すると快適に利用できるでしょう。

UnityのLogとの関係性

以下のコードを実行したときにLogcatでどのような表示になるのか確認してみましょう。

Debug.Log("Debug.Logのサンプル");
Debug.LogWarning("Debug.LogWarningのサンプル");
Debug.LogError("Debug.LogErrorのサンプル");
Debug.LogException(new Exception("Debug.LogExceptionのサンプル"));
Logcatの出力

ちゃんとLogcatに出力されていることが確認できました。

さいごに

今回はAndroid Studioを利用した方法を紹介しましたが、Unityの場合は公式パッケージAndroid Logcatがあったり、Riderでも確認する方法があったりします。

機会があればそれらも紹介したいと思います。