コガネブログ

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

【Unity】AndroidApplication クラスから unityPlayer や currentActivity を取得する方法

概要

Unity 6000.0.7f1 で追加された AndroidApplication クラスを使用すると
unityPlayer や currentActivity を取得できます。

これまで

// 機内モードかどうかを取得する例
using var unityPlayer = new AndroidJavaClass( "com.unity3d.player.UnityPlayer" );

var currentActivity = unityPlayer.GetStatic<AndroidJavaObject>( "currentActivity" );
var settingsGlobal  = new AndroidJavaClass( "android.provider.Settings$Global" );
var airplaneMode    = settingsGlobal.CallStatic<int>( "getInt", currentActivity.Call<AndroidJavaObject>( "getContentResolver" ), "airplane_mode_on" );

AndroidApplication クラスを使用

// 機内モードかどうかを取得する例
var currentActivity = AndroidApplication.currentActivity;
var settingsGlobal  = new AndroidJavaClass( "android.provider.Settings$Global" );
var airplaneMode    = settingsGlobal.CallStatic<int>( "getInt", currentActivity.Call<AndroidJavaObject>( "getContentResolver" ), "airplane_mode_on" );

参考サイト様