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.

  1. Skriv inbyggd Android-kod i Java och ring dessa Java-funktioner med C #
  2. 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

  1. Skriv inbyggd Java-kod i Android Studio
  2. Exportera koden i en JAR / AAR-fil (steg här för JAR-filer och AAR-filer )
  3. Kopiera JAR / AAR-filen till ditt Unity-projekt på Assets / Plugins / Android
  4. 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

  1. Involvera anpassad kod - Välj metod 1
  2. 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 () {
        
    }

}


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow