コード例:C# スクリプトからの Java/Kotlin コードのコール
Unity プロジェクトに Java/Kotlin 機能を統合するコード例を参照してください。
読み終わるまでの所要時間 5 分最終更新 1日前
Unity は、、、、 などの高レベル API を提供し、C# スクリプトから Java/Kotlin コードと対話することができます。
AndroidJavaObjectAndroidJavaClassAndroidJavaProxyAndroidApplication以下のコード例は、これらの API の使用方法を示しています。
例 1: Java 文字列のハッシュコードの取得
using UnityEngine;public class JavaExamples{ public static int GetJavaStringHashCode(string text) { using (AndroidJavaObject jo = new AndroidJavaObject("java.lang.String", text)) { int hash = jo.Call<int>("hashCode"); return hash; } }}
以下の例は、
- java.lang.文字列を表すを作成します。
AndroidJavaObject - コンストラクターは、インスタンスを構築するクラスの名前である、少なくとも 1 つのパラメーターを取ります。クラス名の後のパラメーターは、オブジェクトのコンストラクターコール用です。この場合は、
AndroidJavaObjectからのGetJavaStringHashCodeパラメーターです。text - 文字列のハッシュ コードを取得するために hashCode() を呼び出します。このコールは、に
Callジェネリック型パラメーターを使用します。これは、intがハッシュ コードを整数として返すためです。hashCode()
例 2: アプリケーションのキャッシュディレクトリの取得
以下のコード例では、C# で クラスを使用して現在のアプリケーションのキャッシュディレクトリを取得します。
AndroidApplicationusing UnityEngine;using UnityEngine.Android;public class JavaExamples{ public static string GetApplicationCacheDirectory() { using var javaFile = AndroidApplication.currentActivity.Call<AndroidJavaObject>("getCacheDir"); var cacheDirectory = javaFile.Call<string>("getCanonicalPath"); return cacheDirectory; }}
以下の例は、
- 明示的に または
AndroidJavaClassインスタンスを作成せずに、AndroidJavaObjectを使用して現在の Android アクティビティにアクセスします。AndroidApplication.currentActivity - Activity オブジェクトで getCacheDir() を呼び出します。これは、キャッシュディレクトリを表す File オブジェクトを返します。
- File オブジェクトの getCanonicalPath() を呼び出すと、キャッシュディレクトリを文字列として取得できます。