Zoeken…


Invoering

Dit onderwerp is het eerste deel van een serie over het maken van Android-plug-ins voor Unity. Begin hier als u weinig tot geen ervaring hebt met het maken van plug-ins en / of het Android-besturingssysteem.

Opmerkingen

Via deze serie gebruik ik uitgebreid externe links die ik u aanmoedig te lezen. Hoewel geparafraseerde versies van de relevante inhoud hier zullen worden opgenomen, kunnen er extra momenten zijn waarop de extra informatie helpt.


Begin met Android-plug-ins

Momenteel biedt Unity twee manieren om native Android-code te bellen.

  1. Schrijf native Android-code in Java en noem deze Java-functies met C #
  2. Schrijf C # -code om rechtstreeks functies aan te roepen die deel uitmaken van het Android-besturingssysteem

Voor interactie met native code biedt Unity enkele klassen en functies.

  • AndroidJavaObject - Dit is de basisklasse die Unity biedt om te communiceren met native code. Bijna elk object teruggestuurd vanuit native code kan worden opgeslagen als en AndroidJavaObject
  • AndroidJavaClass - erft van AndroidJavaObject. Dit wordt gebruikt om naar klassen in uw eigen code te verwijzen
  • Get / Set- waarden van een instantie van een native object en de statische GetStatic / SetStatic- versies
  • Call / CallStatic om native niet-statische en statische functies aan te roepen


Overzicht van het maken van een plug-in en terminologie

  1. Schrijf native Java-code in Android Studio
  2. Exporteer de code in een JAR / AAR-bestand (Stappen hier voor JAR-bestanden en AAR-bestanden )
  3. Kopieer het JAR / AAR-bestand naar uw Unity-project op Assets / Plugins / Android
  4. Schrijf code in Unity (C # is hier altijd geweest) om functies in de plug-in aan te roepen

Merk op dat de eerste drie stappen ALLEEN van toepassing zijn als u een native plug-in wilt hebben!

Vanaf hier verwijs ik naar het JAR / AAR-bestand als de native plug- in en het C # -script als de C # wrapper



Kiezen tussen de methoden voor het maken van plug-ins

Het is meteen duidelijk dat de eerste manier om plug-ins te maken lang is getekend, dus het kiezen van je route lijkt moeilijk. Methode 1 is echter de ENIGE manier om aangepaste code aan te roepen. Dus hoe kies je?

Simpel gezegd, doet uw plug-in

  1. Betrek aangepaste code - Kies methode 1
  2. Alleen native Android-functies aanroepen? - Kies methode 2

Probeer de twee methoden NIET te "mixen" (dwz een deel van de plug-in met methode 1 en de andere met methode 2)! Hoewel het volledig mogelijk is, is het vaak onpraktisch en pijnlijk om te beheren.

UnityAndroidPlugin.cs

Maak een nieuw C # -script in Unity en vervang de inhoud door het volgende

using UnityEngine;
using System.Collections;

public static class UnityAndroidPlugin {

}

UnityAndroidNative.java

Maak een nieuwe Java-klasse in Android Studio en vervang de inhoud door de volgende

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

Maak een nieuw C # -script in Unity en plak deze inhoud

using UnityEngine;
using System.Collections;

public class UnityAndroidPluginGUI : MonoBehaviour {

    void OnGUI () {
        
    }

}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow