はじめに
今回はAndroid
端末からスタックトレースやログなどのメッセージをUnity Editorに表示することができる公式パッケージ「Android Logcat」を紹介したいと思います。
概要
Android Logcat
はAndroidデバイスからのスタックトレースやログなどのメッセージをUnityエディタに表示するパッケージです。
The Android Logcat Package displays messages such as stack traces and logs from an Android device in the Unity Editor.
// DeepL翻訳
Android Logcat Packageは、AndroidデバイスからのスタックトレースやログなどのメッセージをUnityエディタに表示します。
Android Logcat package provides support for:
- Android log messages
- Android application memory statistics
- Android Screen Capture
- Android Screen Recorder
- Stacktrace Utility
詳しい方はAndroid Studio
にLogcat
があったなと思うかもしれませんが、あれがUnityエディタ上で見れると思っていただいてほぼ差し支えありません。Android SDK Platform-Tools
パッケージに含まれるadb
をGUIで見やすくしたツールとして、Android Studio
のLogcat
があったりUnityのAndroid Logcat
がある感じです。
環境
- Unity 2019 or later (Androidモジュールインストール済)
インストール方法
Package Manager
のUnity Registry
よりAndroid Logcat
を検索してインストールしてください。
補足ですがパッケージ名はcom.unity.mobile.android-logcat
です。
Android端末と接続する方法
Android
端末でデバッグする方法は以下の2種類あります。
- USBデバッグ
Android Debug Bridge
による有線/無線接続
ADB(Android Debug Bridge)
とはAndroid端末と通信するためのコマンドラインツールですね。
Android Debug Bridge(adb)は、デバイスと通信するための多用途のコマンドライン ツールです。adb コマンドを使用すると、アプリのインストールやデバッグなど、さまざまなデバイス操作を実行できます。adb を使用すると、デバイスでさまざまなコマンドを実行する際に使用する Unix シェルにアクセスできるようになります。
Android Debug Bridge(adb) | Android デベロッパー | Android Developers
adb
はAndroid SDK Platform-Tools
パッケージに含まれており、Unityをインストール(厳密にはAndroid
モジュールをかな?)すると勝手にインストールされているはずです。
// 例 /Applications/Unity/Hub/Editor/2022.3.10f1/PlaybackEngines/AndroidPlayer/SDK/platform-tools/adb
USB接続
USBデバッグの手法の詳細は書きませんが、Androidの開発者モードのUSBデバッグを有効にします。
USB 接続したデバイスで adb を使用するには、デバイスのシステム設定で、[開発者向けオプション] の [USB デバッグ] を有効にする必要があります。Android 4.2(API レベル 17)以降では、[開発者向けオプション] 画面はデフォルトで非表示となっています。これを表示するには、。
Android Debug Bridge(adb) | Android デベロッパー | Android Developers
あとはUSBケーブルを利用してAndroidデバイスをコンピューターに接続します。
ADB(Android Debug Bridge)
ここにADB
の利用方法を書いてしまうとかなりのボリュームになってしまうので、別記事にてまとめたいと思います。気になる方は以下の公式ドキュメントを参照してください。
Android Logcatを開く
メニューバーよりWindow -> Analysis -> Android Logcat
を選択し、Android Logcat Window
を立ち上げます。
この際に正しくAndroid端末と接続することができていればログが大量に更新されているはずです。
なぜアプリを起動していなくてもログが更新されるか疑問に思うかもしれませんが、そもそもLogcat
自体がUnity固有のものというわけではなく、Android
のログシステムを表示するツールとしてAndroid Studio
のLogcat
, UnityのAndroid Logcat
などがあるというイメージです。
Logcat コマンドライン ツール | Android デベロッパー | Android Developers
developer.android.com
メッセージログのそれぞれのカラムの意味は以下の公式ドキュメントを参照してみてください。
Icon
: メッセージの種類を示すアイコン。Edit -> Preferences -> Android Logcat Settings
でフォントサイズを変更できますTime
: メッセージが作成された時間Pid
: メッセージを生成したプロセスIDTid
: メッセージを生成したスレッドIDPriority
: メッセージの優先度Tag
: メッセージに関連づけられたタグMessage
: メッセージ
ワイヤレスでAndroidデバイスに接続する
今回紹介しませんでしたがADB
によりAndroidデバイスとワイヤレスで接続した場合、Android Logcat
にログを出力する場合は左上にある端末が記載されている箇所(Device Selector
)を選択して、Other connection options
をクリックします。
あとはIPアドレスを記載してConnect
を選択すればOKです。
Androidデバイス上のアプリケーションを指定する
Logcat
はデバイス上で実行されている全てのアプリケーションのログが出力されてしまっているので、必要な情報を探しにくくなってしまっています。そこでツールバーに表示されているオプションを利用することで情報を絞ることができます。
それぞれの意味は公式ドキュメントを見てほしいですが、Package Selector
を利用することでログを表示する対象アプリケーションを設定できます。
Package Selector
: 表示するAndroidデバイス上のアプリケーションを指定する
フィルタ
ちょっと力尽きぎみなので省略しますが、フィルタ周りも調べておくと情報を抜き出すのに有用だと思います。
docs.unity3d.com