unity3d
Android Plugins 101 - Eine Einführung
Suche…
Einführung
Dieses Thema ist der erste Teil einer Serie zum Erstellen von Android-Plugins für Unity. Beginnen Sie hier, wenn Sie noch wenig oder keine Erfahrung mit der Erstellung von Plug-ins und / oder dem Android-Betriebssystem haben.
Bemerkungen
In dieser Serie verwende ich ausgiebig externe Links, die ich zum Lesen anregen möchte. Zwar werden hier paraphrasierte Versionen des relevanten Inhalts eingefügt, aber es kann vorkommen, dass die zusätzliche Lektüre hilfreich ist.
Beginnend mit Android-Plugins
Derzeit bietet Unity zwei Möglichkeiten, native Android-Codes aufzurufen.
- Schreiben Sie nativen Android-Code in Java und rufen Sie diese Java-Funktionen mit C # auf.
- Schreiben Sie C # -Code, um direkt Funktionen des Android-Betriebssystems aufzurufen
Um mit nativem Code zu interagieren, stellt Unity einige Klassen und Funktionen bereit.
- AndroidJavaObject - Dies ist die Basisklasse, die Unity für die Interaktion mit nativem Code bereitstellt. Nahezu jedes Objekt, das aus nativem Code zurückgegeben wird, kann als AndroidJavaObject gespeichert werden
- AndroidJavaClass - Inherits from AndroidJavaObject. Dies wird verwendet, um Klassen in Ihrem nativen Code zu referenzieren
- Abrufen / Festlegen von Werten einer Instanz eines nativen Objekts und der statischen GetStatic / SetStatic- Versionen
- Rufen Sie / CallStatic auf, um native nicht statische und statische Funktionen aufzurufen
Übersicht über das Erstellen eines Plugins und einer Terminologie
- Schreiben Sie nativen Java-Code in Android Studio
- Exportieren Sie den Code in eine JAR / AAR-Datei (Schritte hier für JAR-Dateien und AAR-Dateien )
- Kopieren Sie die JAR / AAR-Datei in Ihr Unity-Projekt unter Assets / Plugins / Android
- Schreiben Sie Code in Unity (C # war hier immer der Weg), um Funktionen im Plugin aufzurufen
Beachten Sie, dass die ersten drei Schritte NUR gelten, wenn Sie ein natives Plugin haben möchten!
Von jetzt an verweise ich auf die JAR / AAR-Datei als natives Plugin und das C # -Skript als C # -wrapper
Wahl zwischen den Plugin-Erstellungsmethoden
Es ist sofort offensichtlich, dass die erste Möglichkeit, Plugins zu erstellen, lange dauert, so dass die Auswahl Ihrer Route ziemlich umstritten ist. Methode 1 ist jedoch die EINZIGE Möglichkeit, benutzerdefinierten Code aufzurufen. Wie wählt man also aus?
Einfach gesagt, macht dein Plugin
- Benutzerdefinierten Code einbeziehen - Wählen Sie Methode 1 aus
- Nur native Android-Funktionen aufrufen? - Wählen Sie Methode 2
Versuchen Sie NICHT , die beiden Methoden zu "mischen" (dh einen Teil des Plugins mit Methode 1 und den anderen mit Methode 2)! Obwohl durchaus möglich, ist es oft unpraktisch und schmerzhaft zu handhaben.
UnityAndroidPlugin.cs
Erstellen Sie ein neues C # -Skript in Unity und ersetzen Sie dessen Inhalt durch Folgendes
using UnityEngine;
using System.Collections;
public static class UnityAndroidPlugin {
}
UnityAndroidNative.java
Erstellen Sie eine neue Java-Klasse in Android Studio und ersetzen Sie deren Inhalt durch Folgendes
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
Erstellen Sie ein neues C # -Skript in Unity und fügen Sie diese Inhalte ein
using UnityEngine;
using System.Collections;
public class UnityAndroidPluginGUI : MonoBehaviour {
void OnGUI () {
}
}