Recherche…


Introduction

Cette rubrique est la première partie d'une série sur la création de plug-ins Android pour Unity. Commencez ici si vous avez peu ou pas d'expérience dans la création de plug-ins et / ou le système d'exploitation Android.

Remarques

A travers cette série, j'utilise intensivement des liens externes que je vous encourage à lire. Bien que les versions paraphrasées du contenu concerné soient incluses ici, il peut arriver que la lecture supplémentaire aide.


Commençant par les plugins Android

Actuellement, Unity propose deux méthodes pour appeler un code Android natif.

  1. Écrivez le code natif d'Android en Java et appelez ces fonctions Java en utilisant C #
  2. Ecrire du code C # pour appeler directement les fonctions faisant partie du système d'exploitation Android

Pour interagir avec du code natif, Unity fournit des classes et des fonctions.

  • AndroidJavaObject - Il s'agit de la classe de base fournie par Unity pour interagir avec le code natif. Presque tous les objets renvoyés à partir du code natif peuvent être stockés en tant que et AndroidJavaObject
  • AndroidJavaClass - Hérite de AndroidJavaObject. Ceci est utilisé pour référencer les classes dans votre code natif
  • Obtenir / Définir les valeurs d'une instance d'un objet natif et les versions statiques de GetStatic / SetStatic
  • Appel / CallStatic pour appeler des fonctions natives non statiques et statiques


Aperçu de la création d'un plugin et de la terminologie

  1. Ecrire du code Java natif dans Android Studio
  2. Exportez le code dans un fichier JAR / AAR (étapes ici pour les fichiers JAR et les fichiers AAR )
  3. Copiez le fichier JAR / AAR dans votre projet Unity sur Assets / Plugins / Android
  4. Ecrire du code dans Unity (C # a toujours été la voie à suivre ici) pour appeler des fonctions dans le plugin

Notez que les trois premières étapes s'appliquent UNIQUEMENT si vous souhaitez avoir un plug-in natif!

À partir de là, je ferai référence au fichier JAR / AAR en tant que plug - in natif et au script C # en tant que wrapper C #



Choisir entre les méthodes de création de plugins

Il est immédiatement évident que la première façon de créer des plugins est longue, donc choisir votre itinéraire semble inutile. Cependant, la méthode 1 est la seule façon d'appeler le code personnalisé. Alors, comment choisir?

En termes simples, votre plugin

  1. Impliquer le code personnalisé - Choisir la méthode 1
  2. Invoquer uniquement des fonctions Android natives? - Choisissez la méthode 2

S'il vous plaît, n'essayez PAS de "mélanger" (c'est-à-dire une partie du plugin en utilisant la méthode 1, et l'autre en utilisant la méthode 2) les deux méthodes! Bien que cela soit tout à fait possible, il est souvent difficile et difficile à gérer.

UnityAndroidPlugin.cs

Créez un nouveau script C # dans Unity et remplacez son contenu par le suivant

using UnityEngine;
using System.Collections;

public static class UnityAndroidPlugin {

}

UnityAndroidNative.java

Créez une nouvelle classe Java dans Android Studio et remplacez son contenu par le suivant

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

Créez un nouveau script C # dans Unity et collez ces contenus

using UnityEngine;
using System.Collections;

public class UnityAndroidPluginGUI : MonoBehaviour {

    void OnGUI () {
        
    }

}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow