unity3d
Wtyczki dla systemu Android 101 - wprowadzenie
Szukaj…
Wprowadzenie
Ten temat jest pierwszą częścią serii poświęconej tworzeniu wtyczek dla systemu Android dla Unity. Zacznij tutaj, jeśli masz mało doświadczenia w tworzeniu wtyczek i / lub systemu operacyjnego Android.
Uwagi
Dzięki tej serii intensywnie korzystam z zewnętrznych linków, które zachęcam do lektury. Chociaż zostaną tu zawarte sparafrazowane wersje odpowiednich treści, może się zdarzyć, że dodatkowe czytanie pomoże.
Począwszy od wtyczek na Androida
Obecnie Unity oferuje dwa sposoby wywoływania natywnego kodu Androida.
- Napisz rodzimy kod Androida w Javie i wywoływaj te funkcje Java za pomocą C #
- Napisz kod C #, aby bezpośrednio wywoływać funkcje wchodzące w skład systemu operacyjnego Android
Do interakcji z rodzimym kodem Unity udostępnia niektóre klasy i funkcje.
- AndroidJavaObject - jest to klasa podstawowa zapewniana przez Unity do interakcji z natywnym kodem. Prawie każdy obiekt zwrócony z kodu natywnego może być przechowywany jako i AndroidJavaObject
- AndroidJavaClass - dziedziczy z AndroidJavaObject. Służy to do odwoływania się do klas w twoim natywnym kodzie
- Pobierz / Ustaw wartości instancji obiektu rodzimego oraz statyczne wersje GetStatic / SetStatic
- Call / CallStatic do wywoływania rodzimych funkcji niestatycznych i statycznych
Zarys tworzenia wtyczki i terminologii
- Napisz rodzimy kod Java w Android Studio
- Wyeksportuj kod do pliku JAR / AAR (tutaj kroki dla plików JAR i AAR )
- Skopiuj plik JAR / AAR do projektu Unity w Assets / Plugins / Android
- Napisz kod w Unity (zawsze tutaj C #), aby wywoływać funkcje we wtyczce
Pamiętaj, że pierwsze trzy kroki dotyczą TYLKO, jeśli chcesz mieć natywną wtyczkę!
Odtąd będę odnosił się do pliku JAR / AAR jako wtyczki natywnej , a skrypt C # jako opakowanie C #
Wybieranie metod tworzenia wtyczek
Od razu widać, że pierwszy sposób tworzenia wtyczek jest długi, więc wybór trasy wydaje się być dyskusyjny. Jednak metoda 1 jest JEDYNYM sposobem wywoływania niestandardowego kodu. Jak więc wybrać?
Mówiąc najprościej, robi twoja wtyczka
- Zaangażuj niestandardowy kod - wybierz metodę 1
- Wywołać tylko natywne funkcje Androida? - Wybierz metodę 2
Proszę NIE próbować „miksować” (tj. Części wtyczki przy użyciu metody 1, a druga przy użyciu metody 2) dwóch metod! Chociaż jest to całkowicie możliwe, często jest niepraktyczne i bolesne w zarządzaniu.
UnityAndroidPlugin.cs
Utwórz nowy skrypt C # w Unity i zastąp jego zawartość następującymi
using UnityEngine;
using System.Collections;
public static class UnityAndroidPlugin {
}
UnityAndroidNative.java
Utwórz nową klasę Java w Android Studio i zastąp jej zawartość następującymi
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
Utwórz nowy skrypt C # w Unity i wklej te treści
using UnityEngine;
using System.Collections;
public class UnityAndroidPluginGUI : MonoBehaviour {
void OnGUI () {
}
}