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.

  1. Schreiben Sie nativen Android-Code in Java und rufen Sie diese Java-Funktionen mit C # auf.
  2. 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

  1. Schreiben Sie nativen Java-Code in Android Studio
  2. Exportieren Sie den Code in eine JAR / AAR-Datei (Schritte hier für JAR-Dateien und AAR-Dateien )
  3. Kopieren Sie die JAR / AAR-Datei in Ihr Unity-Projekt unter Assets / Plugins / Android
  4. 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

  1. Benutzerdefinierten Code einbeziehen - Wählen Sie Methode 1 aus
  2. 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 () {
        
    }

}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow