Поиск…


Вступление

Этот раздел является первой частью серии о том, как создавать Android-модули для Unity. Начните здесь, если у вас мало опыта создания плагинов и / или ОС Android.

замечания

В этой серии я широко использую внешние ссылки, которые я рекомендую вам прочитать. В то время как перефразируемые версии соответствующего контента будут включены здесь, могут быть случаи, когда дополнительное чтение поможет.


Начиная с Android-плагинов

В настоящее время Unity предоставляет два способа вызова собственного кода Android.

  1. Запишите собственный Android-код в Java и вызовите эти функции Java, используя C #
  2. Напишите код C # для прямого вызова функций, входящих в ОС Android

Для взаимодействия с собственным кодом Unity предоставляет некоторые классы и функции.

  • AndroidJavaObject - это базовый класс, который Unity обеспечивает взаимодействие с собственным кодом. Почти любой объект, возвращаемый из собственного кода, может быть сохранен как и AndroidJavaObject
  • AndroidJavaClass - Наследует от AndroidJavaObject. Это используется для сравнения классов в вашем собственном коде
  • Получить / Установить значения экземпляра собственного объекта и статические версии GetStatic / SetStatic
  • Call / CallStatic для вызова собственных нестатических и статических функций


Схема создания плагина и терминологии

  1. Записать собственный Java-код в Android Studio
  2. Экспортируйте код в файл JAR / AAR (шаги здесь для файлов JAR и файлов AAR )
  3. Скопируйте файл JAR / AAR в проект Unity в Assets / Plugins / Android
  4. Напишите код в Unity (C # всегда был для этого), чтобы вызвать функции в плагине

Обратите внимание, что первые три шага применяются ТОЛЬКО, если вы хотите иметь собственный плагин!

Отсюда я буду ссылаться на файл JAR / AAR как на родной плагин , а на C # - на C #



Выбор между методами создания плагинов

Сразу видно, что первый способ создания плагинов длинный, поэтому выбор маршрута кажется спорным. Однако метод 1 является единственным способом вызова пользовательского кода. Итак, как выбрать?

Проще говоря, ваш плагин

  1. Привлечение пользовательского кода - Выберите метод 1
  2. Вызывать только собственные функции Android? - Выберите метод 2

Пожалуйста, не пытайтесь «смешивать» (т. Е. Часть плагина, используя метод 1, а другой с использованием метода 2) два метода! Хотя это вполне возможно, часто непрактично и болезненно управлять.

UnityAndroidPlugin.cs

Создайте новый скрипт C # в Unity и замените его содержимым следующим

using UnityEngine;
using System.Collections;

public static class UnityAndroidPlugin {

}

UnityAndroidNative.java

Создайте новый класс Java в Android Studio и замените его следующим

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

Создайте новый скрипт C # в Unity и вставьте это содержимое

using UnityEngine;
using System.Collections;

public class UnityAndroidPluginGUI : MonoBehaviour {

    void OnGUI () {
        
    }

}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow