unity3d
Android Plugins 101 - Een introductie
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.
- Schrijf native Android-code in Java en noem deze Java-functies met C #
- 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
- Schrijf native Java-code in Android Studio
- Exporteer de code in een JAR / AAR-bestand (Stappen hier voor JAR-bestanden en AAR-bestanden )
- Kopieer het JAR / AAR-bestand naar uw Unity-project op Assets / Plugins / Android
- 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
- Betrek aangepaste code - Kies methode 1
- 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 () {
}
}