Comme vous le savez sans doute, Unity3D permet de créer des jeux multi-plateforme, y compris mobile. C’est une des grandes force du moteur. La construction du jeu en lui même est (presque) totalement décorellée de la plateforme cible.
Bon, on va pas se mentir hein… Un jeu dernière génération avec des supers effets visuels ne passera pas sur mobile. Mais à l’inverse, un jeu bien codé et bien optimisé pour fonctionner sur mobile pourra fonctionner parfaitement sur PC, ce qui en soit est plutôt cool. Evidemment, tout dépend du type de jeu et de l’entrée utilisateur. Un jeu spécialement conçu pour fonctionner avec le touch ne fonctionnera pas sur un PC de bureau (ou portable) sans écran tactile. Mais ça tombe sous le sens n’est-ce pas ?
Pour ce tutoriel, nous allons voir comment installer tout ce qu’il vous faudra pour développer des jeux sous Android.
Disclaimer
Cet article a été originalement écrit le 01/05/2014 sur mon précédent blog. Certaines informations présentées ici peuvent donc ne plus fonctionner telles quelles.
Installation du SDK Android
Si Unity est capable de générer lui même des exécutables pour PC, Mac et Linux, il lui faudra en revanche de l’aide pour la compilation Android. En effet, Unity s’appuie sur le SDK Android pour packager votre jeu dans un apk. Il faut donc le télécharger et l’installer quelque part sur votre machine !
Il n’est pas nécessaire de télécharger tout l’environnement de développement Android, seul le SDK est nécessaire. Le plus simple est de télécharger l’environnement proposé sur le site officiel. Téléchargez donc le bundle ADT :
Selon votre système, vous pouvez télécharger la version 32 ou 64 bits du SDK.
Si vous ne savez pas lequel prendre, faites clic droit sur le poste de travail (Ordinateur dans le menu démarrer) et allez dans Propriétés. Vous trouverez cette info dans la section Système, comme ceci :
Dans mon cas, il faut que je prenne le 64 bits. C’est un gros morceau alors soyez patient si vous n’avez pas la fibre comme moi !
Une fois le téléchargement terminé, décompressez l’archive, il y en a pour 1.2Go environs. Cette archive contient l’environnement de développement Android Complet. Il est livré avec le SDK, un Eclipse prêt à l’emplois et tous les outils nécessaires au debug et à l’installation d’applis. Seul le SDK nous intéresse pour cette première approche. Il vous sera possible de faire un peu de debug depuis votre terminal mobile mais je ne détaillerai pas ça ici.
Ce qui nous intéresse est donc le dossier « sdk ». Gardez ça sous la main, on en aura besoin dans la troisième partie.
Ensuite, il va vous falloir encore autre chose : un JDK. Eh ouais, encore un truc à installer… La version minimum pour pouvoir compiler un APK avec Unity est le JDK 1.6 (ou java 6). Mais comme le JDK 8 est là, autant prendre le dernier ! C’est par ici que ça se passe. Téléchargez donc le JDK en 32 ou 64 bits selon votre système et installez le.
Création du projet de test
Pour ce tout premier projet, on va rester très simple, le but étant principalement d’installer l’environnement qui vous permettra d’exporter plus tard vos « vrais » projets.
On va donc créer un… cube qui tourne sur lui même, avec une source de lumière fixe pour voir ce qui se passe. Pas d’input, juste un cube qui tourne. Le titre aguicheur est un peu mensonger, c’est vrai. Un cube qui tourne sur lui même n’est pas vraiment un jeu. Quoi que, je suis certain qu’on peut y trouver une mécanique de jeu en cherchant bien !
Je vous laisse donc mettre un cube sur votre scène, placer une source de lumière pas trop loin et régler la caméra. Quelque chose comme ça est parfait :
Il faut maintenant créer un script pour faire tourner votre cube. Mais avant, parlons de quelque chose de primordial pour du développement mobile : l’optimisation. Autant sur un jeu type « desktop », vous pouvez vous permettre de ne pas y penser tout de suite, autant sur mobile il faut y penser dès le début. J’insiste vraiment sur ce point, c’est très important si vous ne voulez pas vous retrouver avec des performances dégueulasses une fois exporté sur un terminal plus très jeune.
Optimisez votre jeu dans le but de le faire tourner sur un « vieux » téléphone. S’il fonctionne sur un terminal ancien, il fonctionnera parfaitement sur les nouveaux. C’est ce qu’il faut prendre comme point de référence.
Nous allons donc créer ce script en prenant en considération cette optimisation.
public class RotatingCube : MonoBehaviour { public Vector3 Rotation; private Vector3 _rotationVector; void Start() { _rotationVector = Vector3.zero; } void Update() { _rotationVector.x = Rotation.x * Time.deltaTime; _rotationVector.y = Rotation.y * Time.deltaTime; _rotationVector.z = Rotation.z * Time.deltaTime; transform.Rotate (_rotationVector); } }
Notez l’utilisation d’une variable interne pour stocker le vecteur de rotation. En effet, l’instanciation d’un nouvel objet est une action gourmande. Dans notre cas, l’instanciation peut être effectuée une seule fois et l’instance simplement modifiée à chaque boucle de mise à jour. On a donc sauvegardé un peu de capacité de calcul (inutile) en utilisant un peu plus de RAM. Le terminal de vos joueur chauffera moins vite, et leur batterie ne se videra pas comme passoire ! Voilà le genre de réflexion qu’il faut avoir en permanence en tête lorsque l’on développe pour mobile.
Mais trêve de sermons, passons à la compilation du projet.
Compilation du projet
La compilation du projet pour Android se fait de la même manière que pour un build Desktop PC, max ou Linux. Ouvrez le menu File > Build. La fenêtre de génération s’ouvre et vous pouvez sélectionner la plateforme Android comme ceci :
Ensuite, lancez le build ! La génération se lance… et Unity va ensuite vous demander le chemin vers le SDK Android. Naviguez donc jusqu’au dossier dans lequel vous avez décompressé l’ADT dans le premier point et sélectionnez le dossier « sdk ».
Il se peut que vous ayez ensuite l’erreur suivante alors que le JDK est bien installé :
Pas de panique, ce n’est pas que l’installation du JDK s’est mal passée. Il manque un peu de paramétrage qui ne se fait pas automatiquement. Il vous faut aller modifier les variables d’environnement. Attention, faut pas déconner avec ces variables alors suivez bien !
Clic droit sur Ordinateur, Paramètres système avancés (dans la liste à gauche), Variables d’environnement (bouton en bas de la fenêtre).
Deux groupes de variables sont affichés. Les variables utilisateur, et les variables système. Ajoutez une nouvelle variable utilisateur et appelez-la PATH. En valeur de cette variable, collez le chemin vers le dossier dans lequel est installé votre JDK, en ajoutant à la fin « \bin ». Voilà ce que ça donne chez moi :
Validez tout ça et fermez la fenêtre des variables d’environnement. Redémarrez Unity sans quoi la nouvelle variable ne sera pas prise en compte. Vous pouvez maintenant relancer le build Android.
Aïe ! L’est pas content Unity ! Il manque une petite chose pour pouvoir finaliser la création de l’APK. Si vous avez déjà fait du java, ce concept vous sera familier. Sinon… c’est pas très compliqué vous allez voir !
Les applications Android et de manière générale, les applications java (car Android c’est du java, rappelons-le) sont toutes identifiées par un package. Un package, c’est une chaîne de caractères séparée par des points. Imaginez l’arborescence d’un dossier, remplacez les slashs par des points et ça vous donnera un ordre d’idée de ce que ça représente.
Il vous faut donc identifier votre projet par un package. Sachant que les packages doivent être uniques sur le Play Store, plutôt que d’avoir à le changer à la dernière minute pour pouvoir le publier, autant faire comme tout le monde et utiliser la convention de nommage classique : com.nomDeSociete.nomDuProjet, comme expliqué dans le message d’erreur vu plus haut.
Simple et efficace. Voyons comment et où renseigner ce nom de package. Après avoir eu cette fenêtre d’erreur, l’inspecteur devrait vous afficher les Player Settings. Unity est sympa, il vous amène directement là où paramétrer les choses. Si vous avez sélectionné autre chose sur la scène entre temps, vous pouvez accéder aux Player Settings en passant par les menus : Edit > Project Settings > Player.
Si vous avez sélectionné la plateforme Android comme plateforme par défaut pour votre projet, l’onglet Android devrait être sélectionné directement. Dans la fenêtre vous pourrez paramétrer quelques petites choses comme le curseur, l’icone, et d’autres paramètres comme la rotation de automatique de l’écran, etc. Ce qui nous intéresse dans l’immédiat, c’est de paramétrer le package. Ce paramétrage peut se faire dans l’onglet Other Settings, dans le champ Bundle Identifier.
Saisissez donc votre nom de package sans espaces. Une fois cette manipulation effectuée, vous pouvez relancer le build… et tout devrait bien se passer. Un joli APK vous attend maintenant dans le dossier de build et frétille d’impatience d’être installé sur un terminal ! C’est ce que nous allons voir dans le point suivant.
Paramétrage du téléphone et installation
Le premier point à vérifier est la connexion de votre (vos) terminal(aux). Installez si nécessaire les pilotes du(des) constructeur(s) afin de pouvoir accéder à la mémoire de votre téléphone depuis votre poste de travail, à la manière d’un disque externe.
Ensuite, il faut paramétrer votre terminal pour autoriser l’installation d’application non officielles, c’est à dire qui ne viennent pas du Play Store. Cette sécurité est en place pour réduire le risque d’installation d’application contenant des virus, chevaux de Troie et autres joyeusetées du genre. Notre application n’étant pas passée par la validation du Play Store, elle sera donc considérée comme « à risque ». Mais vous êtes développeur, vous savez ce que vous faites !
Pour désactiver cette sécurité, le chemin diffère selon votre version d’Android. Je vais vous donner celui de la v4.2.2 (Jelly Bean) mais vous ne devriez pas avoir de difficulté à trouver ça en cherchant sur Google.
Allez dans les Paramètres, puis dans la section Sécurité. Là, vous pouvez cocher l’entrée Sources inconnues. Un message d’information vous met en garde, au cas où vous ne sauriez pas ce que vous êtes en train de faire.
Votre terminal est maintenant prêt à installer votre jeu non validé sur le Store.
Enfin, dernière étape, installer l’APK sur le terminal. Plusieurs possibilités s’offrent à vous. Je vais présenter la façon la plus rapide, mais pour des plus gros projets, il faudra un peu plus que ça pour obtenir des logs et des informations de debug. Mon astuce est de télécharger sur le Play Store un browser qui vous permettra de parcourir la carté mémoire de votre terminal. Mon choix s’est arrêté sur Astro (gratuit), mais il y en a d’autres.
Une fois votre browser installé, copiez simplement votre APK quelque part sur votre carte mémoire (ne foutez pas le bronx, c’est quand même mieux !). Lancez le browser, naviguez dans la carte jusqu’à l’APK et lancez le. Autorisez l’installation… et voilà. Vous pouvez lancer le tout depuis votre menu d’application… et avoir un joli cube qui tourne. Félicitations !
Merci !
J’aimeAimé par 1 personne
Super article, merci beaucoup!
J’aimeAimé par 1 personne
Avec plaisir. S’il y a des sujets précis à propos d’Unity3D que tu voudrais que j’aborde, n’hésite pas à demander !
J’aimeJ’aime
Super comme tuto, j ai pu faire en peu de temps ce que j ai cherché pendant des semaines
J’aimeJ’aime
Super, ravis de lire ça ! Si tu cherches d’autrs trucs et astuces sur Unity3D, tu peux aller voir ici : https://www.esprit-unity.fr
J’aimeJ’aime