unity3d
Plugin Android 101 - Un'introduzione
Ricerca…
introduzione
Questo argomento è la prima parte di una serie su come creare plugin Android per Unity. Inizia da qui se hai poca o nessuna esperienza nella creazione di plugin e / o del sistema operativo Android.
Osservazioni
Attraverso questa serie, utilizzo estesamente link esterni che consiglio di leggere. Mentre le versioni parafrasate del contenuto pertinente saranno incluse qui, ci possono essere momenti in cui la lettura aggiuntiva aiuterà.
A partire dai plugin Android
Al momento, Unity offre due modi per chiamare il codice Android nativo.
- Scrivi codice Android nativo in Java e chiama queste funzioni Java utilizzando C #
- Scrivi il codice C # per chiamare direttamente le funzioni che fanno parte del sistema operativo Android
Per interagire con il codice nativo, Unity fornisce alcune classi e funzioni.
- AndroidJavaObject - Questa è la classe base che Unity fornisce per interagire con il codice nativo. Quasi tutti gli oggetti restituiti dal codice nativo possono essere archiviati come e AndroidJavaObject
- AndroidJavaClass : eredita AndroidJavaObject. Questo è usato per referenziare le classi nel tuo codice nativo
- Get / Set valori di un'istanza di un oggetto nativo, e le statiche GetStatic / SetStatic versioni
- Chiama / CallStatic per chiamare funzioni native non statiche e statiche
Cenni sulla creazione di un plug-in e una terminologia
- Scrivi codice Java nativo in Android Studio
- Esportare il codice in un file JAR / AAR (passaggi qui per file JAR e file AAR )
- Copia il file JAR / AAR nel tuo progetto Unity in Risorse / Plugin / Android
- Scrivi il codice in Unity (C # è sempre stato il modo di andare qui) per chiamare le funzioni nel plugin
Nota che i primi tre passaggi si applicano SOLO se desideri avere un plugin nativo!
Da qui in poi, mi riferirò al file JAR / AAR come al plug-in nativo e allo script C # come al wrapper C #
Scegliere tra i metodi di creazione del plugin
È ovvio che il primo modo di creare plug-in è lungo, quindi scegliere la tua rotta sembra discutibile. Tuttavia, il metodo 1 è l'unico modo per chiamare il codice personalizzato. Quindi, come si sceglie?
In poche parole, fa il tuo plugin
- Coinvolgi codice personalizzato: scegli il metodo 1
- Richiama solo le funzioni Android native? - Scegli il metodo 2
Per favore NON provare a "mixare" (cioè una parte del plugin usando il metodo 1 e l'altra usando il metodo 2) i due metodi! Anche se interamente possibile, è spesso poco pratico e doloroso da gestire.
UnityAndroidPlugin.cs
Crea un nuovo script C # in Unity e sostituiscilo con il seguente
using UnityEngine;
using System.Collections;
public static class UnityAndroidPlugin {
}
UnityAndroidNative.java
Crea una nuova classe Java in Android Studio e sostituiscile con i seguenti contenuti
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
Crea un nuovo script C # in Unity e incolla questi contenuti
using UnityEngine;
using System.Collections;
public class UnityAndroidPluginGUI : MonoBehaviour {
void OnGUI () {
}
}