コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Unity 上で Android の logcat が実行できる「Unity3D LogCat extension」紹介

はじめに

「Unity3D LogCat extension」を Unity プロジェクトに導入することで
Unity 上で Android の logcat が実行できるようになります

Unity 2018.2.18f1 で動作することを確認済みです

使い方

f:id:baba_s:20181226103607p:plain

Unity メニューの「Window>LogCat - Android Logger」を選択して

f:id:baba_s:20181226103652p:plain

表示された「Logcat」ウィンドウで「Start」を押すことで

f:id:baba_s:20181226103732p:plain

接続中の Android 端末からログを取得できます

注意

clearProcessInfo.FileName = EditorPrefs.GetString("AndroidSdkRoot") + "/platform-tools/adb";
logProcessInfo.FileName = EditorPrefs.GetString("AndroidSdkRoot") + "/platform-tools/adb";

LogCatWindow.cs の 79 行目と 89 行目で Android SDK のパスを設定する必要があります

private void OnEnable()
{
    CompilationPipeline.assemblyCompilationStarted += OnAssemblyCompilationStarted;
}

private void OnDisable()
{
    CompilationPipeline.assemblyCompilationStarted -= OnAssemblyCompilationStarted;
}

private void OnAssemblyCompilationStarted( string _ )
{
    if ( logCatProcess == null ) return;

    if ( !logCatProcess.HasExited )
    {
        logCatProcess.Kill();
    }
    logCatProcess.Dispose();
    logCatProcess = null;
}

また、自分の環境では logcat 実行中にコンパイルすると
Unity がフリーズする現象に遭遇したため
上記のコードを LogCatWindow.cs に追加して正常に動作するようにしました