コガネブログ

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

【Unity】コマンドから Android アプリを起動した時の引数を受け取る方法

概要

adb shell am start ^
    -n 【パッケージ名】a/com.unity3d.player.UnityPlayerActivity ^
    --ez automation true

例えば上記のようなコマンドで Android アプリを起動した場合

using UnityEngine;

public class Example : MonoBehaviour
{
    private void Start()
    {
        Debug.Log( "■ automation: " + GetBoolValue( "automation", false ) );
    }

    private bool GetBoolValue( string extraKey, bool defaultValue )
    {
        using ( var player = new AndroidJavaClass( "com.unity3d.player.UnityPlayer" ) )
        using ( var activity = player.GetStatic<AndroidJavaObject>( "currentActivity" ) )
        using ( var intent = activity.Call<AndroidJavaObject>( "getIntent" ) )
        {
            return intent.Call<bool>( "getBooleanExtra", extraKey, defaultValue );
        }
    }
}

このようなコードで引数を受け取ることができる

参考サイト様

https://forum.unity.com/threads/help-reading-the-command-line-arguments-in-unity.330867/