unity3d
Android Plugins 101 - en introduktion
Sök…
Introduktion
Det här ämnet är den första delen av en serie om hur du skapar Android Plugins för Unity. Börja här om du har liten eller ingen erfarenhet av att skapa plugins och / eller Android OS.
Anmärkningar
Genom denna serie använder jag i stor utsträckning externa länkar som jag uppmuntrar dig att läsa. Även om parafraserade versioner av relevant innehåll kommer att inkluderas här, kan det finnas tillfällen då den extra läsningen kommer att hjälpa.
Börjar med Android-plugins
För närvarande ger Unity två sätt att ringa inbyggd Android-kod.
- Skriv inbyggd Android-kod i Java och ring dessa Java-funktioner med C #
- Skriv C # -kod för att direkt ringa funktioner som ingår i Android OS
För att interagera med inbyggd kod tillhandahåller Unity vissa klasser och funktioner.
- AndroidJavaObject - Det här är basklassen som Unity tillhandahåller för att interagera med inbyggd kod. Nästan alla objekt som returneras från inbyggd kod kan lagras som och AndroidJavaObject
- AndroidJavaClass - Arv från AndroidJavaObject. Detta används för att referera klasser i din inbyggda kod
- Hämta / ställa in värden för en instans av ett ursprungligt objekt och de statiska GetStatic / SetStatic- versionerna
- Ring / CallStatic för att ringa inbyggda icke-statiska och statiska funktioner
Skissera för att skapa en plugin och terminologi
- Skriv inbyggd Java-kod i Android Studio
- Exportera koden i en JAR / AAR-fil (steg här för JAR-filer och AAR-filer )
- Kopiera JAR / AAR-filen till ditt Unity-projekt på Assets / Plugins / Android
- Skriv kod i Unity (C # har alltid varit vägen att gå hit) för att ringa funktioner i plugin
Observera att de tre första stegen endast gäller om du vill ha en inbyggd plugin!
Härifrån och ut hänvisar jag till JAR / AAR-filen som det ursprungliga plugin , och C # -skriptet som C # -omslaget
Välja mellan plugin-skapande metoder
Det är omedelbart uppenbart att det första sättet att skapa plugins är långt utdraget, så att välja din rutt verkar skarp. Men metod 1 är det enda sättet att ringa anpassad kod. Så, hur väljer man?
Enkelt uttryckt, gör din plugin
- Involvera anpassad kod - Välj metod 1
- Bara åberopa inbyggda Android-funktioner? - Välj metod 2
Försök INTE att "blanda" (dvs. en del av plugin med metod 1, och den andra med metod 2) de två metoderna! Även om det är fullt möjligt är det ofta opraktiskt och smärtsamt att hantera.
UnityAndroidPlugin.cs
Skapa ett nytt C # -skript i Unity och ersätt innehållet med följande
using UnityEngine;
using System.Collections;
public static class UnityAndroidPlugin {
}
UnityAndroidNative.java
Skapa en ny Java-klass i Android Studio och ersätt innehållet med följande
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
Skapa ett nytt C # -skript i Unity och klistra in innehållet
using UnityEngine;
using System.Collections;
public class UnityAndroidPluginGUI : MonoBehaviour {
void OnGUI () {
}
}