• Pour avoir accès au forum les nouveaux membres inscrits doivent obligatoirement se présenter et attendre que leur présentation soit approuvée par un membre du Staff.
  • Vous n'arrivez pas a publier ou a télécharger ! Merci de lire le Réglement
  • Spécialiste Electronique auto a Paris.

    Specialiste Auto vous proposes avec une Garantie a vie !!!! Suppression FAP ( DEFAP ) Suppression ADBLUE Reparation Calculateur Reparation EZS ELV Reprogrammation Adaptation Boite de vitesse Systeme hybrid Boitier module OCCASSION / NEUF Désactivation Volets de tubulures d'admission ...

    Plus d'information Clique ici

    Contacter nous au 0754373786

    Envoi Possible de Toute la France si vous étes pas de Paris

Tutoriel Créer sa première bibliothèque Android pour Unity

The Mask

Que la Famille
Ancien Staff
Membre Actif
Inscrit
4 Mars 2014
Messages
1,251
Reaction score
4,137
Points
4,158
Aujourd'hui, Unity permet gratuitement l'exportation de vos projets sur les plates-formes Android et iOS. Unity comprend déjà un large éventail d'outils permettant de gérer et d'accéder directement à certaines fonctions de votre smartphone (caméra, gyroscope…). Cependant, il est probable que dans votre projet, vous avez besoin d'utiliser un composant qui n'est pas géré nativement par Unity (par exemple, utiliser le système de notification sur Android). Pour cela, vous aurez recours à la création de plugins.

Dans cet article, nous allons voir comment créer, ajouter et utiliser une bibliothèque JAR pour la plate-forme Android à un projet Unity.

I. Prérequis
Avant de commencer sur ce tutoriel, je suppose que vous êtes déjà en possession de ces différents éléments sur votre ordinateur :

  • Unity ;
  • Eclipse + ADT.
Pour rappel, afin qu'un projet Unity fonctionne sur votre terminal Android, ce dernier doit posséder la configuration minimale suivante :

  • Android OS 2.0 ou plus ;
  • ARMv7 (Cortex family) ;
  • CPU GPU avec support OpenGLES 2.0 est recommandé.
Plus d'informations :
.

Dans notre exemple, nous allons voir comment créer une bibliothèque Android et l'utiliser à l'intérieur d'un projet Unity. Nous allons simplement créer une classe Java contenant une fonction statique écrivant dans les logs du smartphone. Ensuite, nous verrons comment appeler cette méthode depuis un projet Unity.

II. Projet Android
La première chose à faire est de tout d'abord créer un projet Android dans Eclipse.
Utilisez le même SDK que vous comptez utiliser lors de la génération de votre projet Unity par la suite.


Dans la suite, pas besoin de créer une icône, ni même de générer une Activity pour votre application : Unity le générera automatiquement pour vous. Cependant, très important, pensez à marquer le projet comme étant une bibliothèque.



Ensuite, commençons par créer un package que, pour l'exemple, je nomme « com.jidul.unity_plugin », et enfin créons à l'intérieur de ce dernier une classe appelée « UnityLog ».



Dans cette classe, nous allons ajouter une simple méthode qui prend en paramètre une variable de type String correspondant au message que l'on souhaite afficher dans les logs.
Voici le code :

Code:
package com.jidul.unity_plugin;

import android.util.Log;

public class UnityLog {
public static void trace(String message) {
Log.d("UnityAndroidPlugin", message);
}
}
Notre simple bibliothèque Android est d'ores et déjà prête.
Pour la récupérer, il suffit de récupérer le fichier *.jar généré dans le dossier bin du projet.



III. Projet Unity
Il est maintenant temps de passer à la partie Unity. Avant de continuer, un projet doit être auparavant créé.

Pensez bien d'abord à vérifier que vous avez bien indiqué à Unity la location du SDK Android. Pour cela, allez dans « Edit », « Preferences… » puis « External Tool ».




Ensuite, ajoutons la bibliothèque Android au projet. Créez tout d'abord le dossier« Plugins » dans les Assets, puis un dossier « Android » à l'intérieur de celui-ci. Enfin, copiez-y le fichier jar généré auparavant dans Eclipse.

Concernant le fichier AndroidManifest, Unity vous en crée un lors de la génération de votre application. Cependant, il peut arriver que vous ayez besoin d'utiliser votre AndroidManifest personnel (par exemple pour la définition de certains paramètres ou permissions). Pour cela, trouvez le fichier AndroidManifest par défaut de Unity dans ce répertoire (valable pour Windows) : C:\Program Files\Unity\Editor\Data\PlaybackEngines\androiddevelopmentplayer ; ensuite, copiez-le dans le même répertoire Android du projet Unity. À partir de là, vous pouvez éditer à votre guise le fichier Manifest du projet.

Une fois copié dans le dossier du plugin, vous pouvez éditer ce fichier Manifest qui sera automatiquement utilisé lors de la génération de votre projet Unity sous Android.





Maintenant, nous allons créer un simple bouton sur la scène qui fait que lorsqu'on cliquera dessus, cela appellera notre fonction de notre plugin Android.

Créez un dossier nommé « Scripts » dans les Assets et créez un nouveau « Script C# » nommé Button.cs. Ouvrez ensuite ce fichier script.

Code:
using UnityEngine;
using System.Collections;

public class GUITest : MonoBehaviour {

void OnGUI () {
GUI.Box(new Rect(10,10,100,90), "JiDuL Android Plugin");

if(GUI.Button(new Rect(20,40,80,20), "Log")) {
AndroidJavaClass jc = new AndroidJavaClass("com.jidul.unity_plugin.UnityLog");
String message = "It looks like a bird, but it's not a bird.";
jc.CallStatic("trace", message);
}
}
}
Explication :

Code:
using UnityEngine;
using System.Collections;

public class GUITest : MonoBehaviour {

void OnGUI () {
GUI.Box(new Rect(10,10,100,90), "JiDuL Android Plugin");

if(GUI.Button(new Rect(20,40,80,20), "Log")) {
AndroidJavaClass jc = new AndroidJavaClass("com.jidul.unity_plugin.UnityLog");
String message = "It looks like a bird, but it's not a bird.";
jc.CallStatic("trace", message);
}
}
}
Code:
AndroidJavaClass jc = new AndroidJavaClass("com.jidul.unity_plugin.UnityLog");
Code:
jc.CallStatic("trace", "It looks like a bird, but it's not a bird.");
On appelle ensuite la méthode static de cette classe en passant en paramètre le nom de la méthode, et son argument.

Cet exemple décrit un cas d'utilisation très simple, mais vous pouvez bien entendu récupérer la valeur de retour d'une méthode, instancier des objets et utiliser des méthodes non statiques, ainsi que de manipuler des objets complexes Java depuis un script Unity. Vous trouverez plus d'informations et de détails sur cette page :
.

Pour finir, on crée un simple GameObject sur la scène, et on attache ce script dessus. Rien de plus simple. Il n'a plus qu'à générer l'APK et tester sur un votre appareil Android. Voici le résultat attendu :




IV. Allez plus loin
IV-A. Surcharger la classe Activity par défaut
Lors de la génération de votre projet Android sous Unity, ce dernier utilisera une Activity (UnityPlayerActivity) qui instanciera le player Unity dans votre application.
Vous pouvez trouver les sources de cette classe dans le répertoire :

  • /Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayer/src/com/unity3d/player sous MAC ;
  • C:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\src\com\unity3d\player sous Window.
Pas besoin d'importer les sources, mais simplement la bibliothèque JAR « classes.jar » dans votre bibliothèque Android créée précédemment.
Vous pouvez trouver cette bibliothèque dans le répertoire :

  • /Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayer/bin sous MAC ;
  • C:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\bin sous Window.
Ensuite, dans votre projet Android, créez une nouvelle classe et faites-la hériter de la classe UnityPlayerActivity. À partir de là, vous pouvez ensuite ajouter des composants ou de nouvelles fonctions à votre Activity. Lorsque tout est prêt, exportez votre Activity en bibliothèque JAR comme au début de ce tutoriel et ajoutez-la à votre projet Unity. Maintenant, il ne vous reste plus qu'à surcharger et éditer le fichier AndroidManifest.xml pour mettre votre Activity comme Activity par défaut de lancement.

Une autre solution est de créer une Activity vierge et d'y ajouter le composant UnityPlayer présent dans la bibliothèque « classes.jar ». Vous pouvez jeter un œil aux sources de la classe UnityPlayerActivity pour comprendre comment cette chose est réalisée.

Enfin, n'hésitez pas à visiter la documentation officielle pour plus d'informations :
.
 

Auteur Sujets similaires Forum Réponses Date
P Question Office365, créer un calendrier public ? Question & Aide 0
_/!\_SAX-_-LUNATiiCK_/!\_ AVIS Créer Un Forum Xenforo Questions & Aides 0
laurent68 ™ Homebrew [Switch] nspBuild pour créer vos propres applications aux format *.NSP Hack/ Homebrew 0
laurent68 ™ Homebrew [SNES Mini] Créer un USB Host sur votre Super NES Mini Hack/ Homebrew 1
Teqzo Discussion [PS4] PS4 Cover Generator pour créer des PSN Covers Discussions Ps4 2
laurent68 ™ Hack MakePFS pour créer des fichiers PFS pour PS4 Hack 0
laurent68 ™ Hack [PS Vita]] GB / GBC bubble maker pour créer vos bulles GB sur PS Vita Hack & Modz 0
laurent68 ™ [Wii U] Créer vos propres arènes de combat pour Smash Bros Wii U 0
HerdoxModz Créer un pkg installeur Pour Mod Menu SPRX [Non Tuto] Hack & Modz 7
ƒ.$๏ȼɨ€ţ¥ Tool TOOL pour créer des tenues au top [GTA V]Tool | Maj's | Eboot 10
laurent68 ™ Template Créer un modèl à suivre dans une catégorie Template 0
laurent68 ™ Template Créer une barre voyante au dessus de la barre de navigation Modifications Templates 0
laurent68 ™ Montage photo, pour créer vos avatars Infographie 6
GUINNESS_-_973-WA Tutoriel [HD][Tuto vidéo CS6] Créer une signature Naruto Tutoriel Infographie 0
GUINNESS_-_973-WA Tutoriel Créer une bannière YouTube style MW2 Playercard ! (Photoshop) Tutoriel Infographie 3
GUINNESS_-_973-WA Tutoriel Créer ton avatar ou ta bannière Plexus :D Tutoriel Infographie 0
The Mask Tutoriel Comment créer un serveur minecraft Minecraft 0
The Mask Tutoriel Créer un backup avec Multiman Tutoriel Ps3 0
The Mask Tutoriel Créer un ISO Tutoriel Ps3 0
The Mask Créer un bloc en HTML sur le portail Add-Ons 0
The Mask Nombre minimum de messages pour créer des sujets dans certain forums Add-Ons 0
The Mask Créer un nouveau bouton - Poster une nouvelle discussion Add-Ons 1
The Mask Créer un onglet avec menu déroulant Modifications Templates 4
miikad0 Discussion Comment créer un Eboot Mw3 [MW3] Discussions 3
The Mask Tutoriel Créer son propre thème PS3 ? Si vous souhaitez avoir un menu PS3 unique au monde Tutoriel Ps3 1
The Mask Tutoriel Créer une page de login et vérifier l'identification partie 2 Tutoriel Android 0
The Mask Tutoriel Créer une page de login et vérifier l'identification partie 1 Tutoriel Android 0
The Mask Tutoriel Créer un apk (partie 2) Tutoriel Android 0
The Mask Tutoriel Créer un apk Tutoriel Android 0
T Utilitaire Adobe Première Pro 2020 v14.2.0.47 (x64) Multilangues (Pré-Activé) Windows 7
Trin24 Software Lexia et PP200 première version Lexia 6
laurent68 ™ Discussion [Switch] Première vague de bans pour des utilisateurs du HBL Discussion 0
laurent68 ™ Discussion [Xbox One] Première image de la Scorpio rétail Discussion Xbox One 0
laurent68 ™ Discussion [Wii U] Première présentation de la NX aujourd'hui ! Discussions Wii U 0
★-_-ȚÖPȞËŖ ŴÄ-_-★ Discussion Hitman Version Boîte : La première saison disponible en précommande Discussions Autres Jeux 0
★-_-ȚÖPȞËŖ ŴÄ-_-★ Discussion Destiny lance sa première compétition en parties privées ce soir ! Destiny 0
ƒ.$๏ȼɨ€ţ¥ Discussion IMPORTANT Rockstar Games vient de dévoiler une première grosse mise à jour qui arrivera dans dix jou [GTAV] Discussions 2
K Discussion Battlefield 1 : DICE revient à la Première Guerre mondiale avec panache Discussions Autres Jeux 2
The Mask Première lettre d'une autre couleur Modifications Templates 0
laurent68 ™ Hack [PS4] LibHB: LibHomebrew PS4 Homebrewing Bibliothèque par CFWProphet Hack 0
laurent68 ™ Discussion [PS4] Bigboss publie sa bibliothèque homebrew liborbis Discussions Ps4 0
laurent68 ™ Hack [Switch] Yellows8 et Plutoo libèrent la bibliothèque Libnx Hack/ Homebrew 0
laurent68 ™ Hack Fail0verflow met à jour la bibliothèque graphique de PS4 Linux Hack 0
laurent68 ™ Hack [PS Vita] VitaGameManagement pour gérer votre bibliothèque VPK Hack & Modz 0
Sujets similaires












































Cliquez ici pour vous connecter en utilisant votre compte social
AdBlock Détecté

Nous comprenons, les publicités sont ennuyeuses !

Bien sûr, le logiciel de blocage des publicités fait un excellent travail pour bloquer les publicités, mais il bloque également les fonctionnalités utiles de notre site Web. Pour la meilleure expérience du site, veuillez désactiver votre AdBlocker.

J'ai désactivé AdBlock