サーチ…


前書き

このトピックは、Unity用のAndroidプラグインを作成する方法のシリーズの最初の部分です。プラグインやAndroid OSの作成経験がほとんどない場合は、こちらから始めてください。

備考

このシリーズを通して、私はあなたに読んでいただきたい外部リンクを広く使用しています。関連コンテンツの言い換えバージョンがここに含まれていますが、追加の読書が役立つ場合があります。


Androidのプラグインから

現在、UnityはネイティブAndroidコードを呼び出す2つの方法を提供しています。

  1. ネイティブAndroidコードをJavaで記述し、C#を使用してこれらのJava関数を呼び出します。
  2. Android OSの一部である関数を直接呼び出すためのC#コードを書く

ネイティブコードと対話するために、Unityはいくつかのクラスと関数を提供します。

  • AndroidJavaObject - これは、Unityがネイティブコードと対話するために提供する基本クラスです。ネイティブコードから返されるほとんどすべてのオブジェクトは、AndroidJavaObject
  • AndroidJavaClass - AndroidJavaObjectから継承します。これは、ネイティブコードのクラスを参照するために使用されます
  • ネイティブオブジェクトのインスタンスのGet / Set値、および静的GetStatic / SetStaticバージョン
  • ネイティブ非静的&静的関数を呼び出すためのCall / CallStatic


プラグインと用語の作成の概要

  1. Android StudioでネイティブJavaコードを作成する
  2. JAR / AARファイルでコードをエクスポートする( JARファイルAARファイルの手順はこちら)
  3. JAR / AARファイルをAssets / Plugins / Androidの Unityプロジェクトにコピーします。
  4. プラグインの関数を呼び出すためにUnityにコードを書く(C#はいつもここに行く方法だった)

最初の3つの手順は、ネイティブプラグインを使用する場合にのみ適用されます。

ここからは、JAR / AARファイルをネイティブプラグインとして参照し、C#スクリプトをC#ラッパーとして参照します



プラグインの作成方法の選択

プラグインを作成する最初の方法が長く描かれていることはすぐに分かります。そのため、ルートを選択することは難しいようです。ただし、方法1はカスタムコードを呼び出すための方法です。では、どのように選択するのですか?

簡単に言えば、あなたのプラグインです

  1. カスタムコードを含める - 方法1を選択
  2. ネイティブのAndroid機能のみを呼び出しますか? - 方法2を選択する

2つの方法を「ミックス」しないでください(つまり、方法1を使用するプラグインの一部と方法2を使用するプラグインの一部)。まったく可能ですが、管理することはしばしば非実用的で苦痛です。

UnityAndroidPlugin.cs

Unityで新しいC#スクリプトを作成し、その内容を次のものに置き換えます

using UnityEngine;
using System.Collections;

public static class UnityAndroidPlugin {

}

UnityAndroidNative.java

Android Studioで新しいJavaクラスを作成し、その内容を次のものに置き換えます

package com.axs.unityandroidplugin;
import android.util.Log;
import android.widget.Toast;
import android.app.ActivityManager;
import android.content.Context;


public class UnityAndroidNative {


}

UnityAndroidPluginGUI.cs

Unityで新しいC#スクリプトを作成し、これらの内容を貼り付けます

using UnityEngine;
using System.Collections;

public class UnityAndroidPluginGUI : MonoBehaviour {

    void OnGUI () {
        
    }

}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow