Académique Documents
Professionnel Documents
Culture Documents
Créez Des Jeux de A À Z Avec Unity
Créez Des Jeux de A À Z Avec Unity
Créez Des Jeux de A À Z Avec Unity
JKeR
Il. DÉVELOPPER POUR ANDROID & iOS
Créez des jeux de A à Z
avec Unity
Il. Développer pour Android & iOS
par
A nthony Cardinale
D-B(!JJKeR
Aperçu général de l'ouvrage
le livre que vous avez sous les yeux constitue un module autonome de l'ouvrage plus global,
intitulé Créez des jeux de A 6 Z ovec Unity. Choque module vise 0 traiter un ospect de Unity.
Le dessjn et.dessous vous donne un aperçu des thèmes troitês dans l'un ou l'outre.
Les chiffres indiquen1 le numéro de chapitre correspondant.
~ 3
•~·••
•0A., faite oppctallr
d1.1opo101tre la
~~ .i.ysteme.i.
do port1culo5
pGnonne-
l1ses
®•• ••
• •• Gi
Créez des jeux de A à Z avec Unity - Il. Développer pour Android & iOS
par Anthony Cardinale
Confo rmément au Code de la propriété intelle due lie, seules les copies ou reproductions
strictement réservées à l'usage privé du copiste et non destinées à une utilisation
colledive a insi que les a na lyses et les cou rtes citations dans un but d'exemple et
d'illustration sont autorisées. Tout outre représentation ou reproduction, qu'elle soit
intégrale ou partielle, requiert expressément le consentement de l'éditeur (a rt l 122-4,
l 122-5 2 et 3a).
Ce module lait partie de l'ouvrage global intitulé : Créez des jeux de A à Z avec Unity
IS8N (HTML) : 978-2-8227-0342-0
les exemples (télécha rgeables ou non), sauf indication contra ire, sont propriété des
auteurs.
Mise en page : générée sous Calenco avec des XSLT développées par la société
NeoDoc (www.neodoc.bi z)
Image de couverture : © Unity Technologies - Reproduite avec leur a imable
autorisation. l e nom U nity, son logo, a insi que tous les noms de produits ou images
s'y rapporta nt sont des marques déposées et relèvent de la propriété unique de
U nity Technologies. Ce li vre a été écrit en tou1e indépendance, il n'est issu d'aucun
partenariat avec U nity Technologies ou l'une de ses filia les, et son conte nu ne relève
que de la responsabilité de son auteur et de l 'éditeur.
3. Compiler et tester .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . 13
3. 1. Préparation de la scène 13
3. 2. Pa ramétrage du projet 14
3. 3. Compilation du projet .............. _ 18
4. Contrôles spécifiques ou téléphone................................................... 19
4.1. Gérer l'accéléromètre . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . 20
4. 2. Gére r l'écra n tactile .. .. .. .. .. .. .. . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 21
pogt:vi
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Index 11 4
À propos de l'auteur
Anthony Cardinale
Déve loppeur passionn é de jeux vidéo, Anthony utilise Unity depuis 2 008. À cette date,
le logiciel commence tout juste à se faire connaitre en Fronce, et il compte parmi les
premie rs à l'adopter. Auteur de plus d'une trentaine de jeux publi és sur Google Play,
l'App Store ou W indows Phone Store, il s'est peu à peu spéciali sé dans les applications
à destination des mobiles et tablettes, après ovoir également développé pour le web
et les PC.
En porall èle, Anthony maintient différents sites d'e-learning. Il a réali sé à ce jour plus de
2 00 heures de formation vidéo sur la création de jeux avec U nity, diffusées via son site
internet Formation facile.
Préface
par Mathieu Muller
Unity propose un manuel complet, des lulor iaux, des webinars hebdomadaires, des
forums a limentés par des centa ines de milliers d'utilisateurs. Alors pourquoi un livre ? l a
1 1
premiè re ra ison d être de cet ouvrage est que l'essentie l de ce matériel n est disponible
1
qu e n a ngla is. l a seconde et la plus romanti que est que chacun a son média préféré
d'apprentissage ou bie n, pour a lle r plus loin e ncore, que le bon média au bon moment
peul cha nger un boui de sa vie. Un livre, même technique, est bie n plus qu'un manuel
1
utilisateur, un tutoriel, un webinor ou un forum. C est une histoire, un compagnon que
1
l'on emporte dons le train ou sur un banc, qu i nous remplit d'i dées et d émotions et les
1
connecte à notre environnement lorsqu on lèv·e la tête du bouquin.
l'histoire c'est Antho ny Cardina le qui la ra ·c onle. Antho ny a consacré des milliers
d'heures de sa vie à foire partager sa passio n pour le jeu. Tournez cette page et sui·
vez-le. Bienvenue dons ce nouveau monde, et bon voyage à la découverte et la maîtrise
de l'infini des possibles des médias interactifs.
Paris, le 07 juin 20 15
Introduction
l es jeux pour mobiles sont de plus e n plus présents dans notre vie. Si vous souha itez
développer des jeux, vous ne pouvez pas passer à côté de ce marché.
l'apparition des smartphones en 2007 ont conduit les développeurs à proposer une
nouvelle faço n de se divertir avec des jeux pour téléphones. Aujourd'hui, les ventes
d'applications mobiles ont la rgement dépassé les ventes de jeux pour consoles por·
tables. En quelques chiffres, ce sont plus d'un million d'applications qui sont en ligne el
pour l'a nnée 2014 ces applications ont été télécha rgées plus de 130 millia rds de lois (e n
2017 ce sera 25 0 millia rds de télécha rgem enls) . Cela représente plus de 30 millia rds
de dolla rs de revenus. En Fra nce, ce ne sont pas moins de 27 millions de mobinaules
qui utilisent régulièrement des applications mobiles.
Beaucoup de jeux sont aujourd'hui développés avec le logiciel Unity. Grands el petits
studios l'utilisent pour le développement de leurs jeux mobiles car cet outil est très puis.-
1
sont, simple d utilisatio n et permet d'exporter ses applications vers les d ifférents systèmes
d'exploitation sans avoir besoin de les développer plusieurs lois. De plus, Unily est gra ·
tuit même si vous publi ez des jeux commercia u x. Plus de la moitié des jeux mobiles sont
développés avec Unily. Gameloft, Microsoft, Ubisoft, EA, Disney... tous utilisent Unily
pour certain s de leurs jeux. A lors pourquoi pas vous?
J'utilise Un ily depuis quelques a nnées. Aujourd'hui je ne développe presque que des jeux
pour mobiles. En effet, le marché des applicali ons mobiles est beaucoup plus accessible
que celui des consoles. les licences développeurs sont très abordables (25€ pour une
licence développeur Android à vie) el Unity est gratuit. Tout le monde peul se la ncer
dans le développement de jeux grâce aux nouveaux outils el aux nouvelles plateformes.
Dons ce livre, je vais vous montrer comment développer efficacement des jeux mobiles
en me basant sur mon expéri ence. A u fil des chapitres et des conna issances acquises,
nous réaliserons de A à Z, jusqu'à sa publication sur Google Play, un jeu de plateforme
30. Je vous montrera i comment optimiser vos jeux et comment adapter le gomeploy aux
écra ns tactiles des mobiles.
1
l e chiffre d offoires généré par ces applications et jeux mobiles est faramineux mois
la concurrence est devenue très rude el il est de plus e n plus difficile de se faire une
place sur les stores. Pour vous donner un ordre d'idée, ce sont plus de 10 000 nouvelles
appli cations qui sont publiées chaque jour. f igurer dans le TO P 50 voire le TO P 100
n'est pas facile el si voire application n'est pas dans le classement des meilleures appli-
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
catio ns, elle ne sera pas télécha rgée. Dans ce livre, je vous donne ra i des astuces qui
vous permettront de maximiser vos cha nces e t d'être le p lus visib le possib le.
les utili sateurs sont principalement répartis e ntre les systèmes Android et iOS. Ces deux
plateformes représentent plus de 95 % du marché, ce sont donc pour ces plateformes
que nous développero ns nos appli catio ns. Je vous expliquera i comment changer de
plateforme (Android/iOS) et exporter vers ces deux plateformes.
Je vous montrera i également comment moné tiser vos applicatio ns et comment suivre
1
l'évolutio n des télécha rgements et des revenus qu elles génère nt. Nous verro ns en-
fin comment mettre en avant votre jeu sur l ·es d ifférentes p lateformes de vente afin
d'augmenter vos cha nces de décoller.
Pour suivre ce livre, vous avez besoin de télécha rger et d'installer le logiciel Unity sur
votre machine. Vous devez également télécha rger les sources des exemples sur mon site
ou celui de l'éditeur. Nous a llons développer une application Android. Nos exemples
seront donc basés sur le système Android (plus accessible et désormais plus répandu
qu'i OS avec 60 % du marché) . Je ferai également un comparatif avec iOS et je vous
donn era i les astuces pour adapter votre projet pour l'export vers iPho ne ou iPad.
Enfin, vous devez disposer d'un téléphone ou d'une tablette tactile pour tester votre
a pp li cation.
Pour toute remarque, suggestio n, questio n, vo us pouvez me contacter via mon site web
http://a nthony-cardina le.fr.
Dans ce chapi tre, je vois vous montrer comment gérer l'écran tactil e de votre té-
lépho ne et utiliser l'accéléromètre pour pouvoir mettre en place le gameplay de
notre jeu.
Afin de donner de l'intérêt à notre jeu, nous a llons mettre en place des missions ou
objectifs que le joueur devra réaliser pour pouvoir passer au niveau suivant.
Dons la versio n e n lig ne, celle~ci sont intégrées à votre page, et votre navigateur ira
chercher de lui-même le formai qu'il supporte_
Dans les versions téléchargeables (EPUB, PDF), un clic sur l'image vousrediri gera vers la
vidéo en ligne au formai MP4. Si voire navigateur par défaut ne supporte pas nati vement
ce formai, modifiez à la main l'extension du f ichier dans l'URL en remplaçant .mp4 par
. .iebm. Et n'oubli ez pas d'allumer vos haut-parl eurs !
Note >Avant de cliquer, assurez-vous que re pointeur de voue souris s'est chansé en main.
4. URL raccourcies
à jour, nous avons pris le parti de
Dons un souci de lisib ilité, et pour pouvoir les m o intenir
rempl acer Ioules l es adresses in ternet par ce qu'on appelle des URL raccourcies. Une lois
que vous avez accédé à la page cib le, nous vous invitons à l'enregistrer avec un marque-
page si vous souha itez y revenir fréquemment. Vous d isposerez a lo rs du lien d irect. Si
celui-ci se périme, n'hésitez pas à repasser par l'U RL raccourcie. Si cette derni ère aussi
échoue, vous pouvez nous le sig nal er !
1
Outils de développement mobile
Do ns ce premier chapi tre, nous a llo ns mettre e n p lace l'enviro nnement de développe-
ment requis pour créer des appli catio ns mobil es. Cela implique d 'installer, e n sus de
Unity, plusieurs outils ind ispensables, étro itement liés aux plateformes ciblées. leur confi-
guratio n n'étant pas toujours a isée, nous accompagnero ns nos explicatio ns de quelques
captures vidéo commentées.
Vous devez activer le mode développeur sur votre mobile. Ce n'est pas très compliqué
mais la procédure varie d 'un appare il à l'autre. Je vous recommande donc de vous
rend re sur Google et de rechercher ''Adiver mode développeur pour ... " (spécifiez votre
modèle d'appareil). Une lois le mode développeur activé, vous serez en mesure de
tester vos applications sur votre télépho ne. Vous devez également autoriser dans les
paramètres de sécurité les applicatio ns provena nt de sources inconnues pour tester les
appli catio ns non publi ées. Enfin vous devez vous re ndre dans le menu développeur et
activer le débogage USB.
page J
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Pour connecter votre ordinateur à votre té léph·o ne, il vous faud ra également le package
Google USB Dri ver. Téléchargez~e depuis la page Google USB Driver ou passez di-
rectement par l'Android SDK Manager, qui centra lise le télécha rgement des ressources
complémenta ires. Vous pouvez d'a illeurs y té lécha rger aussi les fichiers permettant de
développer pour plusieurs versions d'A ndroid a insi que divers plug-ins.
·-...
·~
.. .. -
--
D ,_
1 ~._, Q•••••••U&llfJ"l'I)
--
.; , j o . . -.. .-...1&1«
""
.;+o-...
.; ,ls-.-wsor
............... ...
.; • ........ rl'AIN&..11~,.---..
..... ..
""
--
--
,,,," .............
--
• ..wrv_ • ._,.__,.
....,........,_.....
,, ,. .,,...,....,._,.
~.,..,_
"""
.. .........
,,., "_ -.
,.,., • ..,.
..,.
_.,.__,,,
,,.....~
_ __.._..,.,_..
..... _. ,.___,..
..,..,.,.A.tW-.W.111ot,.--,..
..... ...... """
"
--
--
,, .,.......
""S....."'MMJalC'
Q ...... ,#l#WIJlt
~ ........ U.lW'l"t
O Q....,.•J.•f"'"11t
"""
"
--
QM••••Ul.lllol'l1l'J
OQ"-• llilo"._
OQ....,.•&1!Al'l1~
O Q-Ufo'l'l\41
OQ -U""'1)j
n Q ...... U""'UJ
llQ••••U.t~111
-·-
--- -
Q. ........ UJW'l11t
-·-
..... o1 u i - - - ,,,__ c..i.. S....!illt• --.-
pogt: 2
Cr&-z des ;e.i,x clt:A ô Z O lo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Pour télécha rger et installer des ressources, il vous suffit de les cocher et de cliquer sur
le bouton INSTAll PACKAGES.
Enfin, vous devez indiquer à Unity où se trouve le dossier SDK d'A nd roid pour que les
appli cations puissent être compilées par son intermédia ire. Pour cela, ouvrez le menu
EDIT/PREFERENCES et spécifiez l'emplacement du SOK à l'o nglet EXTERNAL TOOLS.
Extein.11 TOOI•
...........,,.. . . r•"'•
,'"•""""
_
....... .........
,..._ -
..... .. .....•".................
,,.._c__.o"'....,.•
-............
" · - · ...1..o1 .... ., ... 1w1. ..... ... ..
n.,.
s........c:..,ClrrfllMoo...
r-..- ,.
..... ..,<:$alf .......
Note >Vous poltvez reuoLNer toutes fes informations de confisuration dans ra documentation en liane
de Unity.
p age 3
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
·-
Pour publier une application sur Google Play (Android). vous devez vous enregistrer
en tant que développeur Google. Cela coûte 25 € pour une licence à vie . Pour obtenir
votre licence, vous devez vous ren dre sur le site officie l des développeurs A ndroid et
1
obtenir un accès à la console développeur. l obtention de votre licence développeur
est assez simple et ra pi de.
_...__..._
----
~""
__
_
..___
...... __....._
..,__
pogt: 4
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
l a vidéo suivante passe en revue les différents outils dont vous aurez besoin pour déve-
loppez des jeux iOS.
~
-
e •
• ..___ -
---c.-- ..._,._._ ...,__ . . ....... ·----k.-
...1 . .
0 .
-
.... ..-·--·-· _.,._
--
• :..=-=-----
·t»)_~ .--
~
=- --
-- ---
--- --
------
--..----
---
...._-~-
.
-- -----
----- -
pogt: 5
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
1
Vous avez désormais tous les outils nécessaires ou développement d applicotions mo-
biles avec Uni ty. Pour les développeurs Apple, la procédure est un peu parti culière car
il est impossible de compiler directement une applicatio n iPho ne. Apple nous oblige à
passer par Xcode pour fina liser la compilation et pour envoyer l'application sur il unes.
Nous y reviend ro ns plus tard.
Dons le prochain chapitre nous a llons importer les ressources indispensables au déve-
loppement de jeux mobiles, nous verrons comment les utiliser et comment les tester.
pogt: 6
2
Importation des ressources
Comme vous le savez, pour développer un j·e u nous avons besoin de ressources. les
ressources peuvent être des éléments visuels comme des personnages 30 mais aussi des
sons ou des textures. l orsque vous développez un jeu vidéo, vous devez toujours faire
très attentio n à utiliser des ressources opti misées pour que votre jeu soit fluide quelle que
soit la plateforme. Cette règle est encore plus importa nte lorsque vous développez des
jeux mobiles, e n effet, les mobiles sont beaucoup moins puissants que les ordinateurs et il
faudra utiliser uniquement des ressources très optimisées. l es ressources optimisées sont:
Notre objectif sera de créer un jeu qui tournero ou mini mum e n 30 images par seconde
(60 dans l'idéal) et qui ne dépassera pas les SOMb une lois compilé. Il devra tourner sur
1
les appareils A nd ro id récents mais aussi être compati bl es avec le maxi mum d appareils
p lus a nciens. Voyons maintenant les ressources dont nous a llo ns avoir besoin pour nous
la ncer.
page 7
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
-
_
---
-·-
~,
__
....
........._.....
,.....
_
...
-_ -
.._. ..
......
c-P.<-.
,,.___
,c1w.-..
.....
...... ·---
s,--~,,~
-
,_,,,
Ces ressources proposées par le logiciel sont g ratuites même pour vos projets com-
merciaux. l es nouvelles ressources sont compatib les à la fois avec les o rd inateurs, les
consoles et les mobiles. Unity met à notre disposition un script permettant d'adapter votre
jeu en fondio n de l'appareil sur l equel il est installé. En d 'autres mots, si vous créez un jeu
PC, le personnage sera contrô lable avec le clavier ; si vous créez un jeu mobile, il sera
contrôl able avec l'écra n todile. Cela se fait automatiquement. D ans un premi er temps,
je vai s vous présenter l'e nsemble des ressources puis nous verro ns lesquelles vous aurez
à i mporter pour notre projet d 'exemple.
l e package 20 contient des ressources permettant de créer des jeux 2 0 . Vous trou-
verez une scène d 'exemple avec un peti t robot que vous pouvez contrô ler au cla-
vier ou via l'écra n todile d 'un smortphon e. l e gameploy proposé est si mple, vous
pouvez marcher, tourner ou sauter. l e personnage est entièrement a nimé et prêt
à être utili sé.
le package Came ras contient des scripts et prelabs qui donnent la possibilité
d 'utiliser des caméras préconfigurées. Pa r exemple, une caméra qui va sui vre le
joueur.
le pockage Effec t s contie nt des scripts permettant d'appliquer des effets visuels
à votre caméra, par exemple rend re l'a rriè re-pio n flou ou modifier la couleur.
pogt: 8
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Pour notre exemple, nous n'aurons pas besoin de tous ces packages. Nous a llons dé-
velopper un jeu d'aventure/ plateforme dans lequel le joueur contrôlera une balle qui
pourra roule r pour se déplacer afin de ramasser des objets et ouvrir des portes. Nous
aurons donc besoin des packages suivants :
Si vous avez importé ces packs, vous devriez avoir ceci sous les yeux :
.'
pogt: 9
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Note >Toutes ces ressources sont ceUes de ra version 5 de Unity. Dans ra version précédente, noLtS avèns
un packase nommé STANDARD ASSETS (MOBILE) qui contenait des scènesd'exempfes spéôafement destinées
au dévetoppement de jeux mobifes. CeUes·ô ont été supprimées de ra noLNeUe version. Si vous souhaitez
examiner ce qu'erres contenaient, vous poLNez téfécharser re packase sur mon site.
~Analytics
•.
fi ·--~
.....
- ~-
.....
. --
.....
.:
ma -·-
• ·····
.
·----
·--
..........
~ m ---
m ·····
·--
.. __
...._
li!illi - - - · ....
m!I ·····
Sur l'Asset Store vous retrouverez des milliers de ressources et de scripts utilisables pour
vos jeux. Beaucoup de ressources sont payantes mais certa ines sont g ratuites. Nous
1
n utilisero ns que des ressources g ratuites dans. ce livre. l es ressources sont classées par
catégories, par exemple MOD~LES JO. Si vous souha itez télécha rger des modèles 3 D,
page JO
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
1
vous devez foire très attention à ce que ces modèles soient tOW POlY, ce qui signifie qu ils
sont optimisés pour les mobiles.
Vous pouvez également utiliser vos propres ressources, conçues par vous-même ou par
votre équipe, dès lors que vous utilisez des formats compatibles avec Uni ty. Nous verrons
ou chapitre Créer ses propres modèles 30 comment créer ses propres ressources afin
1 1
d éviter d en acheter. Pour importer vos propres ressources, vous pouvez simplement les
glisser/déposer dans la fenêtre projet.
Nous devons garder en tête que notre jeu se ra destiné aux mobiles, nous a llons donc
mettre en place un système basé sur l'accéléromètre du téléphone ainsi que l'utilisation
de l'écran tactile . Comme il n'y a ni davier ni joystick, le gameplay devra être trèssimple.
Nous a llons créer un jeu dans lequel le personnage sera une boule capable de se
déplacer lorsque le joueur penchera le téléphone.
Au niveau des fonctionna lités, voici ce que nous a llons devoir coder :
Notre application doit également offrir un certa in confort à l'utilisateur et proposer des
fonctionna lités essentielles comme par exemp le :
page J J
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Il s'agi t b ien sûr d 'une liste no n exhaustive des d ifférentes fondio nna lités que nous a llo ns
mettre en p lace. Maintenant que nous savons à quoi nous attend re, nous pouvons nous
la ncer dans le développement de notre projet !
D ons ce chapitre, nous avons importé quelques ressources qui vont faciliter Io création de notre
jeu. Vous avons vu:
page 12
3
Compiler et tester
3.1. Préparation de la scène
lo rsque vous développez un jeu, vous devez l·e tester régulièrement afi n de vérifie r qu'il
corresponde b ien à ce qui est attendu lor squ'il est installé sur un termina l mobile. Vous
devez vérifier si les contrô les fonctio nnent, si l'affichage est correct et traquer des erreurs
visibles uniquement sur smartpho ne ou tablette. Il est recommandé de tester votre appli-
catio n à chaque fois que vous a joutez une fonctio nna lité majeure.
Il existe deux laçons de tester votre applicafon. Vous pouvez passer par l'outil Unity
rernote permettant de tester en d irect votre jeu sur un mobile sans avoir à le compiler.
Cette faço n de procéder étant moins stable et moins fiable, nous ne l'utilisero ns pas
dans cet ouvrage. la seconde méthode consiste à compiler et installe r l'appli cation sur
votre mobile. C 'est a insi que nous procéderons quand bi en même la manipulatio n est
un peu plus lo ngue.
Nous a ll ons commencer par créer une peti te scène pour pouvoir réaliser un premier
test. Nous allons simplement créer un sol et une balle contrôlable . Pour cela, cliquez sur
GAMEOBJECT/JDOBJECT/Pl ANE pour créer un sol. Positio nnez le sol en coordonnées 0, 0,
0 via l'inspecter. Ajoutez ensuite le prelab de la balle à votre scène. Pour cela, laite"
la glisser sur la scène à partir du dossier STANDARD ASSETS/CHAR.ACTERS/ROllERBAll. Vous
devriez donc avoir une scène avec un sol et une balle comme sur la f i gure 3 .1 .
page 13
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
.......
,..... c-...... ,.
·-
Olo.-... . . ~
Afin de pouvoir vous déplacer dans la scène (faire rouler la balle), vous a llez devoir
a jouter le prelab MobileTiltControlRig à voire scène. Ce prelab permet d'a jouter
des contrôles comme la gestion de l'accéléromètre de voire téléphone . Ce prelab se
trouve dans le dossie r STANO'IRD ASSETS/CROSSPl ATFORMINPlJT/PREFABS. Glissez/déposez-le
1
n importe où sur la scène puis enregistrez cette dernière, par exemple en lui donna nt le
1
nom Jeu, c est nécessaire pour pouvoir ensuite compiler l'application.
page 14
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
...._
~ w-. ...., ..
~ PC.w~•1.n.i 5t..,..-,~11~
Dons cette nouvelle fenêtre, vous allez renseigne r des informations à propos de votre
appli catio n. Pour commencer, vous allez sp•kifie r le nom du développeur, le nom du
jeu et l'icône associée :
page 15
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
o.r..... -
c.... ............
•
....,.,,.. .,,,_.,..,0
. ............ - · f'N•fflllatitll
9tl!...._....
Dans la section RESOWTION AND PRESENTATION, vous indiquerez si le jeu est en mode por·
trait ou en mode paysage. Vous pouvez également autoriser la rotation automatique de
l'écra n. Dans notre cas, il s'agit d'un jeu en mode paysage (LANDSCAPE) :
0 • lil 0 •
o.!tllt~...•
A••ff · - - - ·~ - •
..,.,-i ......... c.-
--n
~"""'·"'""
l ....K ...fl..il,
Ill
f"I
Maitwte.,.
1il...,. ...,..,,...n il
Vt~ » ..~ """-'•' •11"'"4"'lil
0!••1"'90•....... _ •
........-...,.___,.............
. . . . 1.N.... Mw..1 9'0•.,t!!e• ~~~~
Ensuite, dans la section OTHER SITTINGS, vous devez spécifier le BUNDLE IDENTIFIER de la
façon suivante : corn, vo t reNom. NomJeu.
Note > Le BUNDLE IDENTIFIER permet dîdentifier de façon unique voue jeu en assoôant voue nom • nom
du jeu. U est utilisé par tes masasins comme Goosre Play pour sénérer llJRL de ra pase de voue jeu par
exempre. Vous devez respecter ra syntaxe demandée.
page 16
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
...........
Ol:tl•~ lf'tl:+" . .
••flfltr,..•1111t1• ,_,..,.••!_- - - - - - - - -
- -...... ~.. _..,. 0
, .........", w
Orn•m"' , ...,,... W
Oii'\> S:l M...-•
"••.rf...a.nOJ .,,_..tn•- 1 il
•11'>111• -...........
-
c.-.
............1 .......,
1
• ••'-Ui·•·
oe.,,. ,,,..,
·-·-·--
1....... , ••-
•'111~1
Enfin, dans les PUBLISHING SITTINGS, vous devez enregistrer voire keystore ou e n créer
1
une nouvelle. l a keystore permet de vous identifier de façon unique et d ossocier les
oppli cotio ns que vous avez crées à vousill ême. Vous pouvez utiliser la même keystore
pour toutes vos applicati ons. Nous a llo ns créer une n ouvelle clé:
.U•• E•-t
, .,.......
1~Coe~ I
.....-..........
~- ~•le•• H .... 11•1-•
J11o ..
(M,11-,.u-11
t ..... , .......,
page 17
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Pour compiler el instalIer une appli catio n sur voire téléphone, cliquez sur le boulon BUILD
AND RUN tout en la issant le télépho ne branché . Vous devez spécifie r un nom pour voire
fi chie r APK. Nous l'appellero ns J eu apk .
Une lois l'applicatio n compil ée, elle est automatiquement installée sur voire mobile el
le jeu se la nce. Si vous déverrouillez voire téléphone, vous aurez la possibilité de faire
rouler la balle sur le sol. Si tout marche no rmalement, c'est que voire configuration est
bonne et que tous vos outils sont correctement configurés. D ésormais vous pourrez la
mettre à jour choque fois que vous testerez une nouvelle fondionna li té du jeu.
page 18
4
Contrôles spécifiques
au téléphone
Dons ce chapitre, nous a llo ns apprendr e à intégrer l'accéléromètre et l'écra n tactile
pour contrôler la balle. Vous pourrez a insi adapter votre gameplay aux téléphones et
tablettes. Dans un prem ier temps, nous allons essayer de coder par n ous-mêmes une
fonctio n prenant en cha rge l'accélé romètre du télépho ne. Nous utilisero ns la scène
d 'exempl e que n ous avons mise e n p lace ou c hapi tre précédent. Puis nous verro ns corn·
ment gérer l'écra n todile.
Commençons par voir comment programmer nos propres scripts pour coder la gestion
du mouvement de la balle. le prelab de la balle que nous avons choisi conte nant déjà
ce type de scripts, nous les désactiverons pour tester les nôtres. Pour cela, cliquez sur
le prelab MobileTiltContr olRig qui se trouve dans votre hiéra rchie . Une lois le prelab
sélectionné, décochez la case se trouvant tout e n haut de l'inspecter pour le désactiver:
.•1.....-
o ........,.c:.......~..
, . , """""-•• 1 i.. .... 0..0..11
•
k.c •
Désod ivez égal ement les deux scripts qui se trouvent sur votre balle :
page 19
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Note >Celle section suppose que vous avez acquis tes bases de ra création dlln script Si ce n'est pas
re cas, reportez-vous au modufe 1. Votre premier jeu PC.
Nous a llons créer un nouveau script C# pour foire nos essais. Appelez~e Mouve ment .
Balle et a joutez-le à la balle en le glissant/déposant sur celle-ci. Comme vous avez
désactivé les a nciens scripts, seul le vôtre sera pris en compte. Nous a llons utiliser la
fonction Input . ac ce l e ra tion pour détecter l'incl ina ison du téléphone et la fonction Add .
Force pour foire avancer la balle. AddForce ne fo ncti onne que si la balle possède un
Rigi dbody. le script complet pour notre exemple est le suivant:
us i ng UnityEngi ne;
us i ng Sys tem .Collec tions;
voi d Updat e () {
t hi s. garneôbject .Ge tComponent <Rigi dbody>() .AddForce( new
vect or3(Input .accel eration.x, e, Input .accel eration.y) « 1eee
Time .del taTime );
}
lorsque vous a llez pencher votre téléphone, une fo rce va propulser la balle dans la
direction de l 'in d inoison. Nous devons également paramétrer 1a cam éro a fin que celle-ci
suive la balle. Pour cela, nous a llons utili ser le script préconliguré FollowTarget, qui se
trouve dons les ossets de base dons le dossier Utility. Placez ce script sur votre caméra
et précisez les bonnes valeurs (GameObject de la balle et position de la caméra) :
Votre script est prêt. Vous pouvez compiler et tester votre scène.
page 20
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
voi d Updat e () {
this. garneôbj ect .Ge t Component <Rigi db ody>() .AddFor ce( new
vect or 3(Input .accel er ation.x, 9, Input .accel er ation.y) • 1999
Time .del t aTime );
Pour tester votre jeu, vous devez une nouvelle fois le compiler et le la ncer sur votre
télépho ne . Vous pouvez utiliser le raccourci c lavier Ctrl+B pour faire une compilation
rapide.
Il existe d 'autres façons de détecter si le joueur touche l'écr an tactile . Vous pouvez par
exemple utiliser la fonctio n OnMouseup pour détecter un cl ic. Sur mobile, un clic souris
est équivalent à un doi gt qui touche l'écra n tactile. Si vous voulez vérifie r cela, vous
pouvez modi fier le script Mouvernen tBal le et a jouter cette nouvelle fonctio n en dessous
de la fo nction Updat e :
voi d OnMouseUp( )
{
this.Ge t Component <Render er>() .mat eri a l .col o r = Col or , r ed;
Ce code indique que si le joueur touche la balle, nous accédons au mat er i al de celle-ci
pour lui attribuer une nouvelle couleur, e n l'occurre nce la couleur rouge. Vous pouvez
compile r et tester de nouveau l'appli cation. Si vous touchez la balle, vous verrez le
résultat suivant:
page 21
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Gardez de côté la fonction permettant de cha nger la couleur de la balle, vous en aurez
besoin par la suite pour notre projet. Nous verrons plus en détails la gestion de l'écran
lorsque nous aborderons le chapitre l'interface utilisateur. Pour l'heure, je vous invite à
désactiver les scripts que nous avons développés et à réactiver les scripts qui se trou-
vaient sur la balle. les scripts fou rnis par Unity sont plus performants el mieux optimisés
que ceux que nous avons créés, il est donc préférable d'utiliser ces derniers.
Dons ce chapitre, vous avez vu comm ent utiliser l'accéléromètre ainsi que l'écran tactile de votre
smortphone. Vous pouvez donc:
page 22
5
Les niveaux
Dans ce chapitre, vous a llez apprendre à concevoir des ni veaux optimisés pour les ap·
pareils mobiles. Dans le cadre de notre projet. nous a llons créer trois niveaux différents,
mais bien sûr, pour un vra i jeu, je vous invite à en créer bie n plus.
Nous a llo ns repartir de l a scène avec laquelle nous avons travaillé jusque-là en suppri·
mont le sol présent qui était un simple PLANE. Vous devriez dont avoir juste une balle qui
flotte dans le vide.
Pour modéliser le sol, nous utilisero ns des ress,o urces fournies par U nity. Da ns les assets
de bose, vous trouverez un dossi er nommé PROTOTYPING/PREFABS. 11 s'agit de simples cubes
texturés qui vont nous servir à mettre en place le sol. G lissez·déposez l'un des prefabs
(celui de votre cho ix) sur votre fenêtre de scène. Placez~ e e n positio n 0,0,0. Ensui te,
dupliquez le cube que vous avez p lacé en l e sélectio nna nt d 'un clic puis en faisant
la combina ison de touches Ctrl+D. Vous pouvez déplacer la copie avec les flèches
représenta nt les trois axes 3D tout e n appuyant sur l a touche Ctrl de votre davier afin
de déplacer le nouveau cube cra n par cra n pour travaille r avec plus de précision. Da ns
mon cos, j'a i utili sé environ dix cubes pour con struire le niveau suivant:
page 23
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Comme vous pouvez le constater, nous pouvons élaborer un niveau avec quelques
cubes. Notez que j'a i utili sé le prelab Floo r Pr ototypeeaxe1xea. le mieux est de ne pas
utiliser trop de prelabs différents: en effet, si vous utilisez plusieurs objets 3 Del plusieurs
textures, les calculs seront plus nombreux el le jeu sera plus lent. Bien sûr, avec les mo-
1 1 1
biles d aujourd hui vous pouvez utiliser une cinquantaine d objets différents sans soucis.
le but ici est d'élaborer des petits niveaux dans lesquels le joueur devra se déplacer pour
ramasser des objets el pour ouvrir des portes. li faut que vous augmentiez la difficulté
pour chaque nouveau ni veau. Pa r exemple vous pouvez faire des niveaux plus gra nds,
mettre plus d'obstacles ou encore créer de petits labyrinthes. Nous a llons créer les portes
el les dés par la suite.
Pour cha nger le rendu visuel, vous pouvez utiliser les matériaux qui se trouvent dans le
dossier MATERIALS. G lissez/ déposez le maleriau sur un objet afin de cha nger sa couleur:
page 24
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
-..,.-
•"_.,._
"•'-"".._..
••hwll"-1
_
......
"•'"-"
.....
..-.....- ,._
_,
•w•·--
919 .._..,.,
""""".......
w-_,...
_
....a. ..
........
Vous pouvez par exemple utiliser une couleur différe nte pour votre second niveau
1
comme c est le cas ci·dessous :
Afin d'augmenter un peu la difficulté, le joueur sera dans l'obligati on de sauter pour
attein dre les autres plateformes. Si le joueur descend sans avoir récupéré la clé, il sera
bloqué en bas par la porte et obli gé de recommencer. Voil à une petite astuce pour
a jouter de la difficulté. l a f igure 5.4 représente le niveau 3 que j'ai également modélisé :
page 25
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
N 'hésitez pas à modéliser p lusieurs niveaux afin de créer un jeu complet avec une bonne
durée de vi e. D o ns mon cos, je vois me li miter à trois niveaux que vous pouvez tél éch ar·
ger avec les sources fournies avec ce li vre.
Vous a llez commencer par modéliser le pot de peinture. Pour cela, créez un objet cylin-
d rique en sélectio nna nt le menu GAMEOBJECT/JDOBJECT/CYLINDER :
page 26
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
l e pot apparait sur votre scène. Vous pouvez maintenant cha nger sa taille et sa position.
l'objectif est de créer quelques pots de peinture avec une couleur différente. Pa r exemple
un pot bleu, un pot rose et un pot jaune . Vous trouverez des textures de couleur dans
le dossier PROTOTYPING/TE)(fURES. Appliquez la texture à l'objet en la faisant simplement
glisser sur celui·ci :
Afin de différencier les pots, nous a llons modifie r leur nom. Cela va nous permettre de
savoir quel pot a été touché par le joueur. Cha ngez donc le nom de votre pot e n r ose :
page 27
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
.,_.,..
~f ..
"' Ji!!!_-•
~·· •h rtr
l o rsque nous détectero ns une collisio n g râce ou code, nous serons en mesure de récu-
pérer le nom de l'objet touché. Si l'objet touché s'appelle rose, nous ferons e n sorte de
colore r la balle e n rose et de faire disparaître le pot qui a été utilisé.
1 1
Je vous invite à créer d outres pots de peinture avec d outres couleurs. Pensez à cha nger
11 11 11 11
le nom des pots en bleu , jaune , etc. U ne foi s que vous avez ou moins troi s pots, créez
des prefobs de ces pots afin de pouvoir les réutili ser dons toutes vos scènes.
..
_ _ __ 4 ..
....,4...,
......., ------
...-
···-·
••
••hn
....
MM'4•·4 ........
Vous avez maintenant vos objets i nteroctifs. Vous pouvez p lacer des pots de peinture un
peu partout dons vos scènes afin que le joueur puisse les ramasser. Pe nsez b ien à gêner
le joueur en mettant des pots inutiles. En effet, si la porte fina le est rose, le joueur devra
être rose. Il fout évidemment un pot rose don s la scène mois vous pouvez a jouter des
pots jaunes ou bleus afin de ra lentir le joueur dans sa progression.
page 28
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
Ici la porte est rose. l e joueur devra dont être rose pour ouvrir cette porte. Pensez aussi
à lui donner un nom pour pouvoir détecter la -collisio n avec celle-ci. Nous pourrons par
exemple la nommer p o r t erose.
Vous pouvez par la même occasio n cr éer l'objet r eprésenta nt l a fin du niveau. Si le
joueur touche l 1objet de fin, le niveau se termine et il peut passer au ni veau suivant. Dans
mon cas, je vais utiliser l'objet PickupP r otot ypee1xe1xe1 que vous pouvez retrouver
dans le dossier Model s des ressources de prototypage. J'ai placé l'objet de lin juste
derrière la porte :
page 29
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
U ne fois que vos niveaux sont terminés, vous pouvez passer au ch apitre suivant. Vous
retrouverez mes niveaux dans les sources télécha rgeables du livre.
Dons ce chapitre, nous avons vu comment concevoir des niveaux complets avec :
le sol;
les obslodes;
les objets intero d ifs;
Io fin du niveau.
page 30
6
Créer ses propres modèles 30
Dans le chapitre précédent, vous avez vu comment assembler des é léments pour créer
des niveaux. Nous avons créé ensemble plusieurs scènes e n utilisant des ressources
g ratuites li vrées avec Unity. Da ns ce chapitre, je vais faire un petit détour du côté des
logicie ls de modélisatio n 3 D. En effet, vous serez probablement amené à créer vos
propres objets 3 0 lorsque vous ne trouverez pas votre bonheur sur le net. Vous aurez
donc à passer par un logiciel de modélisation pour créer vos modèles 3 0 . Je vais a insi
vous montrer quelques astuces qui vont vous permettre de créer des objets 3 0 simples
utilisables dans Unity.
Afin d'illustrer mon exemple, je vais utiliser le logiciel Cine ma 4D. Ce logiciel est payant
mais il existe une version gratuite de démo. Vous pouvez aussi utiliser Blender 3 0 qui
est un logiciel e ntièrement gratuit, les manipulations sont les mêmes. Je vous invite donc
à télécha rger un logiciel de modéli satio n 3 D. Il e n existe plusieurs, et chaque logiciel
payant propose une version d'évaluation gratuite.
Ce chapitre sera également l'occasion de vous montre r comment optimiser vos modèles
3 D pour le jeu vidéo. Plus votre modèle 3 D est réaliste, plus il possède de polygones.
les polygones constituent toutes les laces d'un modèle 3 D. Pa r exemple, un personnage
3 D est souvent composé de 3000 polygones. la complexité d'un modèle 3 D se mesure
donc en polygones (sous Unity, les polygones sont découpés en tria ngles). l e but ici
est de modéliser des objets en low poly, ce qui sig nifie peu de polygones. En effet, un
mobile aura plus de mal à calculer un objet complexe, nous a llo ns donc nous limiter à
quelques polygones par objet.
Pour cette petite in troductio n à la modélisatio n 3 D, nous a llo ns créer un modèle simple
qui sera une plateforme pour notre jeu. Vous êtes libre de choisir la larme de votre
plateforme et de la modéliser comme vous le souha itez en suivant la technique que je
vais vous présenter.
page 31
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
6.1. L'extrusion
1
l'extrusio n est une technique permettant de cr éer des polygones en partant d une face
d 'un objet. Pa r exemple, si vous avez un cube et que vous réalisez une extrusio n, vous
pourrez faire apparaitre de nouvelles faces.
Pour réaliser une extrusio n commençons par -créer une primiti ve. Je vous invite à créer
un cube 30 si vous voulez faire simple ou à c réer un cylin dre si vous voulez une forme
p lus complexe. Dans C ine ma .40, vous pouvez cliquer sur l'icône de cube dans le menu
du haut pour faire apparaitre un cube à l'écra n.
Dans Cin ema 4D, pour modifier un objet vous devez le rendre éditable. Pour cela, cli-
1
quez sur le bouton permettant d activer le mode éditio n.
page 32
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Nous pouvons travailier en mode points, ce qui permet de modilier les points ( intersec-
tions des arêtes) des modèles 30, ou travaille r avec les a rrêtes ou encore avec les po·
lygones. Pour notre part, nous choisissons le mode Polygones.
page 33
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Vous pouvez maintenant utiliser les flèches pour appliquer l'extrusio n sur la face sélec·
tio nnée et a insi faire apparaître de nouvelles f aces.
U ne foi s que vous avez réalisé cette premiè re extrusio n, vous pouvez sél edi onne r une
autre face et appliquer une nouvelle extrusion par exemple pour créer un a ng le.
page 34
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Vous pouvez a llonger ou réduire la taille de certa ines laces du modèle 3D. Ou e ncore
1
créer d autres extrusions afin de pouvoir appliquer de nouvelles déformations à l'objet.
U ne fois que vous avez terminé, vous pouvez passer à l'optimisation de votre modèle 30.
page 35
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
1
U ne autre technique d optimisation consiste à fusionner des polygones se trouvant sur
un même pla n. Pa r exemple dans notre cas, nous pouvons fusionner les polygones du
dessus e n les sélectionna nt et en activant la fusion. D a ns C inema .40, cela se fait par
un clic droit/FUSIONNER.
page 36
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Une lois voire modèle optimisé, vous devez l'exporter au fo rmai FBX qui est le fo rmai
le plus adapté à Unity. Même si d'autres fo rmais sont supportés comme le OBJ, je vous
invite à privilégier ce dernier pour utiliser vos modèles 3D dans Unity. la procédure
d'export est sensiblement la même quel que soit le logicie l 3D. Allez dans le menu
FICHIEl\IEXPORTER el choisissez le formai FBX.
page 37
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Glissez/déposez·le sur la fenêtre de la scène pour le faire apparaître dans votre monde
virtuel. Il se comportera comme une primitive de base. Vous avez la possibilité de lui
appli quer n'importe quelle texture, de lui a jouter un mesh collider pour activer la col·
lision ou de lui a jouter vos scripts.
... ~.
_....
~M
...3:::
··--···-
... Cl••·•""''
'-.... _..,.....t ""' ~
....
....
..... -.....
... c.... ~1. .111
. . . t .... _ ...
. . . . .., •tl.._
"'-·-"
· · · -..11
...__,·--·
..,'w•
""'"'"'..,__
..._
-
..,.., .............._
W ...,,_..o ...,.
W ••-.....U
page 38
Cr&-z des ;e.i,x clt:A ô ZO lo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Il n'est pas possible de modéliser des objets directement dons Unity, c'est pourquoi nous
sommes passés par un outre logiciel. Cela nous a permis de voir comment o n pouvait
travaill er e n complément avec un logiciel tiers. Cette méthode vous permet de créer des
modèles optimisés pour vos jeux mobil es. De p l us, si vous voulez créer un jeu unique, il est
toujours préférable de réali ser vos propres modèles, plutô t que d'utiliser des ressources
gla nées sur le net. Je vous invite à modéliser les pots de peinture avec un logiciel 3 D
1
pour vous e ntraîner, même si cela n est pas obligatoire pour la suite du projet.
p age 39
7
Animations et effets
Pour re ndre nos niveaux p lus vivants, nous a llo ns les a nimer. Cette étape est très impor·
tonte cor elle permet de faire e n sorte que le joueur reste éveillé, que ses yeux soient
toujours attirés vers de nouveaux éléments en mouvement.
1
Il existe p lusieurs techniques permettant d introduire du mouvement dans les scènes.
Dons ce chapitre, nous a llons vous présenter les deux principales méthodes pour créer
des a nimatio ns avec U nity : par un scrip t ou v ia son outil d 'a nimatio n intégré. U n outre
moyen est d'a jouter un système de particules . Nous apprendrons ici à créer nos propres
systèmes et au chapitre suivant vous verrez comment tirer parti des particules pour re n-
forcer une collisio n.
Commencez par créer un nouveau script C# .que vous appelle rez r otati onPi ece. Ou-
vrez ce script pour pouvoir écrire le code. Nous a llo ns utiliser la fonctio n Ro t a t e du
composant Tra nsform. Cette fonctio n permet de faire tourner un objet en spécifia nt un
sens et une vitesse.
Note > Le composant Transform est ce(Ui qui nous donne fes informations de position, de taiUe et de
rotation d'un objet dans l'espace JD. Nous poLNOns asir sur ce composant par script pour modifier fes
propriétés précitées.
usi ng UnityEngine;
usi ng Syst em.Collections;
voi d Updat e () {
page .40
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Ce script permet de faire tourner la p ièce à l'infini à la vitesse que vous avez spécifiée.
Pour le tester, p lacez-le sur la p ièce ou n'importe quel outre objet que vous souha itez
a nimer de la sorte. Vous pouvez vous amuser à foire tourner certa ines parties du sol
afin de perturber le joueur et le faire tomber si vous le souhai tez. Si vous la ncez le jeu,
vous verrez que tous les objets qui possèdent ce script sero nt en mouvement.
Nous a llo ns par exemple a nimer une case du sol en lui appliquant un mouvement de
gauche à d roite. Elle se décalera d'une uni té sur le côté puis reprend ra sa p lace. A insi le
sol sera en mouvement et le joueur pourra tom ber dons le vide s'il ne fait pas attentio n.
Commencez donc par choi sir la case que vous souha itez a nimer. En suite, cliquez sur
le cercle rouge de la fenêtre animatio n. Cela aura pour effet de la ncer l'enregistrement
de l'ani matio n.
page 41
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
U nity crée un fichi er qui contie nd ra toutes les informatio ns de l'a nimatio n que vous a llez
créer, et vous dem andero de lui attribuer un n om.
Tant que l'e nregistrement est actif, vos actions sero nt sauvegardées dons la timeline.
En d 'autres mots, vous pouvez spécifier des caractéristiques (taill e, posi tio n, couleur,
rotatio n... ) à un temps donné. Par exemple, si vous vous positio nnez sur la timeline à la
deuxième seconde et que vous déplacez la case d 'une unité, de nouvell es clés sero nt
enregistrées dans la limeline (voir f igure 7.2 ).
Figure 7.2 : Créofon des dés d'animafon
Note > Les cfés sont représentées par de petits fosanses rouses. Lorsque vous créez une animation, tes
cfés enresisuent toutes tes modifications que vous apportez à un objet comme par exempte sa UJJlfe
ou sa position. Le fichier animation créé sera capabfe de créer une uansition entre chaque cfé pour
animer voue objet
page .42
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Cela vous permet de d ire où doit se trouver la case et à quel moment. Je vous propose
de faire un mouvement de va-et-vient de gauche à d ro ite pendant une durée totale de
.4 ou 5 secondes. Pour cela, vous pouvez vous positio nner à l a seconde 2, décale r la
case d 'un cra n et à la seconde .4, vous remettez l a case à sa p lace initial e (Io position
qu'e lle avai t à l a seconde O). Cela va permettre d 'obtenir une a nimatio n qui tournera
en boucle.
page .43
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
1
Pour termine r l e nregistrement, cli quez de nouveau sur le ro nd rouge. Votre a nimation
sera automatiquement appliquée à l'objet qui étai t sélectio nné pendant sa créatio n.
Vous pouvez aussi faire g li sser le fichier de l'a nimatio n sur l'objet à a nimer. Voici ce qui
devra it apparaitre dans l 1in spector :
. ...............,......... .,..
-
,...... ................... _....
Vous pouvez la ncer le jeu et voir l'ani matio n se jouer. Désormais la d ifficulté a augmenté
et le joueur peut tomber dans le vide s'il ne la it pas attentio n.
1 1
Vous pouvez créer d autres a nimatio ns pour d autres objets si vous le souha itez. Cette
1
étape n est pas primord ia le pour le fonctio nnement du jeu mais est conseillée pour le
rend re p lus professio nnel et moins statique.
Dans notre jeu par exemple, nous a llo ns p lacer un système de parti cules à la fin du
niveau pour que le joueur pui sse repérer l'en d ro it où il doit se rend re. Nous pouvons
créer des particules brilla ntes qui montent au ciel pour qu'elles soient visib les de lo in.
Pour créer un système de particules, sél ecti onnez le menu GAMEOBJECT/PARTICLE SYSTEM.
U n système de particules apparaît a lo rs sur votre scène. Vous pouvez le déplacer et
le positio nner où vous voulez. Si vous regard·e z l'inspecter, vous y verrez toutes sortes
1
d opti ons vous permettant de personna liser le système. En voici quelque~unes :
page .4.4
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
les sections COlOR OVER llfETIME et SIZE OVER LIFETIME VOUS permettent de définir une
couleur et une taille en fo nction du temps. Vous pouvez dire qu'au début la particule
est rouge et gronde et à la fin verte et petite. l a transition se fera outom atiquement
et progressivement.
page 45
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Nous verro ns au chapitre suivant comment peuvent être utilisées ces particules dans vos
jeux.
page 46
8
Gérer les collisions
les collisions sont indispensables dans tous les jeux. En effet, dans notre cas, si la balle
tombe dans le vide, elle tombera à l'infini. De même, si la balle touche un pot de peinture
1
ou la pièce de fin rien ne se passe. Cela est dû ou fait que nous n avons pas mis en
place de système de collisions.
l es colli sio ns vont nous permettre de savoir si o n a touché un pot et a insi de le rom asser.
Si on tombe dans le vide, nous a llons détecter la chute et rela ncer le niveau. Voilà à
quoi peut servir un système de collisio ns.
Nous utiliserons ce cube pour détecter si la balle est tombée dans le vide. En effet, nous
1
le sauro ns dès lo rs qu ell e sera e ntrée en colli sio n avec lui. Nous pourrons a lo rs rela ncer
le ni veau depuis le début. Pour que le niveau reste propre, notre cube doit être invisible.
Pour cela, nous décocherons l'option MESH REN DERER du cube.
page 47
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
Note > Le composant Mesh Renderer permet de rendre un objet visibfe. Ctsl ce composant qui /ail qu'un
objet apparaitra à l'écran. S'U est désactivé, l'objet serti fà mais H sera irrvisibfe.
...........
... '
...
............. ....
·-~·-:::'
.··-····-
__
"t•::...._
. ........
--
• .--1-o•oMnl
__"
A insi le test de collisio n sera invisib le pour l·e joueur, i 1 aura simplement l'impression
de perdre et de recommencer le niveau. Comme pour les pots de peinture vous devez
donn er un nom ou cube, par exemple nous l'appelle ro ns "vide".
Maintenant nous a llo ns voir comment déteder les collisio ns avec un script. C réez un nou-
veau script que vous appellerez Che ckCollis i ons. Pour déteder les collisio ns, il exi ste
une fonctio n standard: OnCollis i onEnter. Cette fondio n s'utilise de la façon sui vante :
Note > La /onction OnCollis ion Enter ressembfe be.aucoup à On TriggerEnter. Leur utilisation est
ra même et ta seufe différence réside dans re /ait que On Collision Enter se décfenche forsqu'U y a
une coflision avec un objet solide el On TriggerEnt e r forsque l'on "rentre" dans un objet non so6de
(avec l'option JS TRIGGER activée).
obj correspond à l'objet touché. le test i f nous permet de savoir si le nom de l'objet
est égal au mot spécifié entre guillemets. Nous a llons utiliser la fo nction LoadLevel si on
touche "vi de" . Voilà comment procéder:
page .48
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Si vous placez le script sur la balle et que vous tombez dans le vide, le niveau se re-
la ncera .
Attention > Pour que re chansemenl de niveau fonctionne, H faut ajouter toutes fes scènes de voue jeu
dans (e BUIW SETnNGS (FJ!E/BU•D SETTJNGS).
Note > Pour pfus d'informations sur (es conditions el feur empfoi dans un script de coflision, se reporter
aux chapiues Premiers scripts C# et lnterasir avec l'errvironnement du modufe 1. Voue premier jeu PC
}
el se i f (obj gameôbject.name "bleu")
{
}
el se i f (obj garneôbject.name "jaune ")
{
C'est de cette façon que vous a llez pouvoir savoir quel type de pot a été touché. li faut
maintenant faire disparaître le pot, faire apparaître des particules pour montrer qu'il a
été ramassé et colorer la balle de la couleur du pot.
l a fonction oes t roy permet de détruire un obje t, Instantiate permet de faire apparaître
un objet (dans notre cas les particules) et Renderer .mater i al permet de cha rger la
couleur de la balle. Je vais vous montrer un exemple complet pour le pot rouge. Nous
a llons avoir besoin de créer deux variables en haut de notre script. Une variable de
type GameObject qui nous permettra de stocker le prelab des particules et un s t r ing
nous permettant de stocker la couleur de la balle:
page 49
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Ce code doit être repris pour le pot bleu et 1e pot jaune. li faud ra juste changer la couleur
de la balle en blue et yellow. Pe nsez aussi à faire g lisser un prelab de particules dans
la variable par ticul es qui est visible dons l'inspecter. Vous retrouverez des particules
dans les packages de base de Unity. Vous pouvez pre nd re une explosio n, des étoiles,
des couleurs ou ce que vous voulez.
.. ..
.-.. ,,,,....... -... ...,....
_
'
, _ , _.. ..._J '
-..........,.-.
"••lM•I
poge50
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Avant de terminer ce chapitre, nous a llons a jouter une derniè re condition à notre script
pour savoir si o n touche l'objet ayant pour nom fin. Si le joueur touche la lin, o n cha rge
le niveau suivant. Voilà le code complet du script de collisio ns :
usi ng UnityEngine;
page.SI
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
poge52
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Ce script gère la collision avec le cube, les trois types de pots et l'objet de lin. lorsque
la balle cha nge de couleur nous pouvons conn aître sa couleur actuelle avec la variable
coul eur . Nous utiliserons cette variable dan s le chapitre suivant dans lequel je vous
montre ra i comment savoir si l'objectif fixé est réalisé ou pas. Par exemple est·ce que la
balle est rouge et est-ce que le joueur a trois d iamants? Nous utili serons également les
à passer au prochain chapitre.
collisions pour cela . Si tout fonctionne, je vous invite
poge53
9
Fixer des objectifs
l es objectifs vont nous permettre de mettre e n place une ou plusieurs cond itio ns de
victoire. l e joueur ne pourra gagner que s'il a rempli tous les objectifs qui o nt été fixés.
Pa r exemple, dans noire cas, l'objectif est de loucher la pièce de lin. Pour cela, il faut que
la balle soit de la couleur de la porte fina le. Vous pouvez également a jouter d'autres
objectifs comme par exemple ramasser troi s c ristaux ou obtenir un score de 500. A fin
de rester simple, nous al Ion s juste mettr e en p lace le système de couleurs et un tim er
pour forcer le joueur à atteind re l'objectif en moins d 'une minute.
Ces quelques lig nes nous permettent de savo ir si la porte a été touchée. Nous savons
aussi de quell e couleur est la balle g râce à l·a variable coul eu r qui se trouve dans le
script CheckCollis i ons. Si la balle est rose et que l a porte est aussi rose, nous pouvons
l'ouvrir ; sino n le joueur ne peut pas continuer dans sa progressio n.
page 54
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
1
Ce script vous permettra de n ouvrir la porte que si le joueur est de la bonne couleur.
1 1
En d outres mots, si l'objectif est atteint, la porte s ouvre, sinon rien ne se passe. Vous
pouvez de nouveau tester le jeu pour vérifie r le bon fonctionnement du système.
Pour commencer, nous a llo ns préparer l a zon e de texte où sera affiché sur l'écran le
temps restant. Nous a joutons à la scène un objet Texte à l'a ide du menu GAMEOBJECT/UI/
TEXl Dons l'inspecter, vous pouvez accéder à ses propriétés et a insi modifier sa taille, sa
police, sa couleur ou sa positio n. Voilà à quoi ressemble mon texte après config uratio n:
poge 55
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
0 1n..,t1Dr
h t .,........
llt'ctl,_.,._
lof!
,,,
...
-.......
J 0
...• .,.,
.... ...
~
.. ._....,.
..
",... ,........
(...,.
... ,...
h•t
u,.,..,,_
'-'"" ""•,,.,.
..... h ..
..............
Note >Id nous utJlisons re noLNeau syslème d'UI qui notts permel de créer beaucoup d'éféments d'inlerface
comme des textes ou des boutons et de Jaire en sorte que ces éréments puissent s'adapter automaû·
quement à tous fes écrans. Le système d'UI est ra me11teure façon de créer des éréments pour l'interface
uûlisaleur (barre de vie, score, mem1...).
Nous a llo ns maintenant mettre en p lace le timer à l'a ide d'un script. Créez un n ouveau
script appelé Ti mer et placez·le sur l'objet texte. Da ns le script, créez une variable my -
Timer qui sera un fl oa t et qui correspon dra au temps restant. Vous devez aussi créer
une autre variable finTi mer qui cette fois sera un bool et permettra de savoir si le
timer est fini ou non. Pour décompter le temps écoul é, vous utiliserez l'expression my -
Timer ·= Time.deltaTi me; . Il s'agit d'une forme abrégée de myTi mer = myTi mer •
Time.deltaTi me; Ti me.deltaTime correspond au temps écoulé depuis le début du ni·
veau (pour p lus d 'info rmati ons sur les variables temps, se reporte r à la documentation
officiell e). Ce qui nous donne le script suivant:
us i ng UnityEngi ne;
us i ng Sys t em .Collec tions;
poge56
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Ce code est fo nctio nnel et modifie la valeur de fi nTi mer quand le décompte est fini.
l e joueur a alors perdu et ne peut p lus attein dre la lin. Si vous revenez dans le script
de collisio ns, vous pourrez accéder à la vol·e ur de la variable fi nTimer à l'a ide de
l'expressio n Timer , finTi mer. l es variables public s t a tic sont accessibles de partout
si vous les appelez e n faisant précéder leur nom par le nom du script où elles sont
déclarées. Nous a llo ns donc modifier le script de collisio ns au niveau de la cond ition
permettant de détecter si le joueur touche la lin. Désormais le cha ngement de niveau
ne se fera que si le timer n'est pas terminé :
// ...
el se i f( obj garneôbject .name == " fin ")
{
i f(Timer, finTimer == fa l se)
{
Application, LoadLevel ( ni veauSui vant );
}
}
// ...
l a derniè re étape consiste à affiche r le temps restant à l'écra n pour que le joueur
puisse voir le décompte. Pour pouvoir m odlifie r le texte selo n la voleur de la va-
riable myTimer, nous devons a jouter une nouvelle d irective ou début du script
Time r : using UnityEngine, UI. C'est ce qui nous permet d 'utiliser l'expression
this, gameObject, GetComponent<Text>(), t ex t = "MonTex t e"; (ce qui sig nifie "le texte
du corn posant Text de cet objet") pour m odilier le texte. Nous a llo ns donc m odilier le
script Ti mer de la façon suivante :
usi ng UnityEngine;
usi ng UnityEngine. UI;
usi ng Sys tem .Collections;
public cl ass Timer MonoBehavi our
poge.Sl
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
Vous savez maintenant comment mettr e en p la ·ce des cond itio ns de victoire et de défai te.
Vous pouvez cr éer un système de scor es avec 1e même principe.
page .SS
10
Optimiser les scènes
à faire en sorte que votre jeu tourne
l'optimisatio n est une étape très importante qui vise
sans ralentissements sur le plus grand nombre d'appareils possibles. Dans ce chapitre,
1
je vais vous montrer quelques astuces d optimisation qui sont essentielles pour amélio rer
les performances de votre jeu.
Au bas mot, ces techniques vont vous permettre de diminuer par deux le poids total de
votre jeu et a insi de d iminuer par deux les temps de cha rgement. Si vous voulez optim iser
encore un peu p lus vos images, vous pouvez passer par l'inspecter de U nity et choisir
un bon format de compressio n pour les textures:
•111.-- •
• ....
S•.t.rW-ulo•rAl.,._d, 1'"""rt"~ O ..
.........
F.11,,.-.•
....M V•'°I
les shaders contribuent également à a lourdir vos scènes. En effet, les shaders standards
sont beaucoup plus complexes à calculer qu·e les shaders optimisés (par exemple les
page 59
Cr&-z des ;e.i,x clt:A ô Z O lo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
shaders pour mobiles). les shaders standards p renne nt en compte la brilla nce de l'objet,
la luminosité, la réflexion de la lumière, l'aspect de la matiè re, etc. l es shaders optimisés
1
sont très simples et ne demandent que très peu de calculs, c est pourquoi je vous invite
à les privilégier dès lors que vous développez pour des smartphones. Pour cha nger
de shader, cl iquez sur le menu déroula nt du SHADER de l'objet et sélectionnez-en un se
trouvant dans la rubri que MOBILE.
• ::m.......
-...~===" Ill
~is,...i- ~
--
,_..,_
-··-
"
-.......
-----
........ ~ll~llt!CI
--.....
.......
•
,_,
~~•OollrO-....... l .....
·--
10.2. Optimisation de la distance de vision
Plus la caméra a une distance de vue importante, plus il y aura d'objets à calculer. Pour
optimiser vos scènes, vous pouvez diminuer la d istance de vision de la caméra afin de ne
pas afficher les objets se trouvant loin du joueur et a insi économiser du temps de calcul.
Pour diminuer la distance de vision, cliquez sur la caméra et diminuez la voleur de FAR
dan s l'i nspector:
6 ilr-.-.
(.Io.. ,.. . .
a.do•·-·
c.,.........
,,.,.....
__.. ,....
f•tlll"' 'W...
c-i.,...........
---~·
••
.....
.........."'.....
p oge60
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Dons notre cos la différence ne sera pas perceptible, mois si vos niveaux sont vastes
et qu'il y a beaucoup d'éléments de décor, il est indispensable de diminuer la valeur
de cette variable. Notez toutefois que plus cette voleur est basse, moins les ni veaux
sont beaux visuellement. Vous pouvez y remédier jusqu à un certa in point en en ma~
1
quant l'arrière-pla n avec du brouill ard. Pour octiver le brouilla rd, cliquez sur le menu
W INDOW/LIGHTING et activez le FOG e n bas de la fe nêtre .
~···
.....................
._.,._...
,,_ _lllffl.•..._, •
,.....,,,..., ....
"' --·-------==::é:' -:-"""""!
;
;p ......
..... ......
" ............... .. ...........
............. ,
... u,.......
Nous a ll ons ici fusionne r les cases qui représente nt le sol de notre ni veau. A ttention, il ne
faudra pas inclure les parties du sol qui sont .animées sinon cela ne fonctionnera pas !
Commencez par créer un GameObject vide dans lequel vous allez faire glisser toutes
les parties du sol.
page 61
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
- · - •. .M•Ol•I:
- . - , ....... u
...... - ....... ,.l,
-.-............,,,.
- · - ·....••l•ll
- · - ·....·•111•
....... - ......... u
,_
-·-,........,,
"-"'-,.
-·-·-··'-
A-"•-·-Motloll
1 1
Pour pouvoir opérer la fusion également sur les textures et n en obtenir qu une seule,
vous devez autoriser l'écriture sur la texture du sol. Pour cela, cliquez dessus et dons
l'inspector sélectionnez le mode ADVANCED puis cochez READ/WRITE ENABLED comme sur
la f igure 10.6.
. ............
• ..
s .. 11t.JIH.l••Albtdo llllJ>«t 5.ol:nt'IO Ü ..
~
o.r-e • O •e c::J
.......
r.. m.i
,.
Nous a llons maintenant télécha rger un petit outil sur l'Asset Store qui va nous permettre
d'opérer la fusion. Ouvrez l'A sset Store et recherchez le plug-in gratuit DRAW CAll M INIM I·
ZER :
page 62
Cr&-z <ksie-uxclt:Aô Zolo'ee Unify · li. ~ppe-r pourAn&okl &iOS
* ... , •
Draw Cali M1n1m1Ze
·-·--
____ -
""'°'•(•--·
_____ __.......--..
......,_..
11(.-
::.:.::--·--..... ..
--
c_,.....
-··-
........
--..--...--·-
-------- ·- ""'-
·--
.•.
__ __._....._
___...._____
::::::--::=-:::::::..:.
...,. _. ,, .....
.,.. --
-·(-,..._... __ ...
--- - -
...... ..
-·
Télécha rgez et importez·le dans U nity. Nous sommes maintenant prêts à fusio nner les
objets !
U n nouveau menu est apparu dans l'éditeur. Vous trouverez l'outil de fusion dans W IN-
DOW/DRAW CALL MINIMIZER/OBSOLETE/OPTIMIZE LEVEL
·---..........
,_
........
Qllol olo
C..$Mlo1tll
.. Il M
or... c..t~
- ""''....
k-
...... ,,""''
......
..... ""'
"'"
,_,
page 63
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
··~
c..•~.....,. "
Puis cliquez sur COMBINE pour valider la fusion , et c'est term iné. Votre sol est maintenant
un seul g ra nd objet. Cel a va d iminuer éno rmément le nombre d'é léments à calculer.
Voilà ce que vous obtenez :
Vous devez fusio nner le maximum d 'objets ( sol, murs, décor...). Fai tes attention à ne
jamais fusio nner les objets a nimés ou les obj·ets avec lesquels le joueur peut interagir
(p ièces, peinture, cri staux ... ). Toutes ces étapes vont rend re vos jeux beaucoup p lus
fluides et rapides même sur les vieux appare il s mobiles.
Dons ce chapitre, vous avez vu comment optimiser votre jeu via plusieurs techniques comme:
page 6.4
11
L'interface utilisateur
1
Quel que soit le jeu, vous aurez besoin de créer un menu principal et d éventue ls me-
nus pause. Pa r a illeurs, vous pouvez souhai tez afficher un score, les vies du joueur ou
1 1
d autres choses. l'interface est constituée de boutons, d imoges et de textes qui sont ou-
dessus du jeu, toujours visibles à l'écra n. Pour créer ces éléments, nous nous a idons du
système d'UI (User Interface) de Unity, accessible depuis le menu GAMEOBJECT/UI.
À la différence des autres objets, les é léments proposés par le menu UI appara issent
toujours au premie r pla n el s'adaptent automatiquement à la taille des écra ns. Il est
essentiel de les utiliser pour que vos interfaces, et notamment vos menus, fonctionn ent sur
tous les appareils avec un rendu optimal. Avant l'arri vée de ce système, il était beaucoup
plus fastidieux d'obtenir un résultat correct. Si, à la place d'un Texl UI, vous utilisez un
3 DTexl placé devant 1a caméra pour afficher par exemple un score, le texte pourra dans
certa ines circonstances d isparaître. Supposon s que le joueur se colle à un mur, a lo rs il
disparaîtra derrière le mur avec lui. les é léments UI, pour leur pari, ne sont pas placés
dans le monde 3 D, ils sont au premier plan, devant ce que filme la caméra .
Da ns ce chapitre, n ous a llo ns créer dans un p r emier temps le menu princi pal de notre
1
jeu d exemple. l a procédure est très simila ire à celle que nous avons pu voir dans la 1.
Votre premier jeu PC, au chapitre pareillement appelé L'interface u~lisateur. Toutefois
nous ne pouvio ns faire l'impasse sur cette étape ind ispensable. Puis, dans un second
temps, nous créer ons une b arre de vie très simple pour vous montrer un exemple p lus
avancé d'utilisatio n des outils UI proposés par Unity.
page b5
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
la isser créer le titre du menu. Pour a jouter les boutons, séledi onnez autant de fois que
nécessaire l'e ntrée du menu GAMEOBJECT/Ul/BllTTON puis config urez-les.
1
Vous pouvez a jouter à la scène une image d a rrière-pl an et des logos pour décorer un
peu votre menu. Pour ma part, je vois conser v·er un menu si mple.
Astuce > Si vous voutez un menu élaboré, aidez-vous pour commencer du menu sratuil mis à disposition
par (es dévefoppeurs de Unily. Vous fe lIOLNerez sur l'Assel Store sous l'appeUaûon 'tJnily Sampfes: UI".
A joutez les éléments de votre cho ix à votre me nu puis passez à la partie programmation
des événements.
poge66
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
us i ng UnityEngi ne;
us i ng Sys t em .Collec tions;
page 67
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
" --···"~)J
-..........
,.""' .......
. . . .c.i.~~~~~~~I
........ c.....
~
''K"H•~
Oot•dC....
C""'""*"'I••
, .... o ..........
Cliquez sur le sig ne + pour a jouter une actio n. Faites g lisser l'objet qui contient le script
ScriptMenu dans l'emplacement et sélectio nnez dans le menu déroul ant la fonction
créée dans le script que vous souh ai tez appeler pour le bouton sélectio nné. Pour le pre-
mier bouton, ce sera char ger Ni veau( ).
..........,.
,.... °"'- 11
-·-
_..,
.......... , .......,.,
c-.......... ~;i
c.........
-....__
-- -.·
dolofWH-,-.1
-... .....,
Enfin, spécifiez le paramètre de Io fo nctio n (le nom du niveau à charger) dons Io case
vide :
page 68
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Oncrî~U
1
C est term iné et fondio nne l. Vous pouvez tester la scène et cliquer sur le bouton. l o rs du
cli c, le ni veau se la nce. Répétez l'opératio n pour les deux outres boutons: cliquez sur le
signe + de leur gestionnaire de clics pour a jouter une action, spécifiez le GameObject
1
et la fondio n à la ncer. Ces fondio ns ne prennent pas de paramètres, vous n avez donc
pas besoin de spécifier de valeurs.
l es trois boutons sont maintenant fonctio nnels.. Vous pouvez utiliser ces techniques pour
créer des boutons dons choque scène de votre jeu, notamment un lien de retour vers
le menu principal.
Pour garder en mémoire l es vies du joueur, je vois recourir à une technique de sau-
vegarde que nous examinerons p lus en détails ou chapitre Sauvegarder des informa-
tio ns : les player Pre f s . Celle~ci permettent de stocker des variables en mémoire. Je ne
1
m ottorderai donc pas sur leur utilisatio n, le chapitre suivant leur étant enti èrement dédié.
Commencez par créer trois images avec le système d'UI (menu GAMEOBJECT/Ul/IMAGE).
Donnez-leur une taille de 30x30 px et placez-les en haut à droite de l'écra n. Allez
ensuite sur le site iconfin der. com pour télécha rger une i mage de cœur et i mportez-la
dans votre projet. Après avoir sélectionné l'image, modifiez son type afin de la définir
comme SPRITE (20 AND UI) et de pouvoir associe r l 1im age de cœur aux trois images vides
que vous avez créées. SPRITE 12D AND UI) est le seul fo rmat compatible avec le système
1
d UI. Si vos images ne sont pas au bon format, vous ne pourrez pas les appliquer aux
carrés b la ncs. U ne fois vos trois images config urées, voici ce que vous obtenez :
page 69
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
Nous pouvons maintenont passer ou script de l·a barre de vie. Nous a llons utiliser le script
CheckCollis i ons qui gère déjà la collision entre la ball e et le cube invisible permettant
de détecter la chute dans le vide. Nous a llons nous servir de cela pourlaire perdre des
vies à notre balle .
Commencez par a jouter une nouvelle variable vi e à votre script. Ensuite, lorsque le
joueur entre en collision avec l'objet nommé vi de, diminuez la voleur de vi e à l'a ide de
l'expression vi e -. ; qui signifie en fait vi e = v i e - 1 ; mois de façon abrégée. Puis vous
a llez stocker en mémoire la voleur de la variable vi e avec le système des Player Pref s
tel que nous le verrons ou chapitre Sauvegarder des informations. Voil à à quoi ressemble
ma fonction de détection de collisions avec l'objet vi de :
page 70
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
voi d St ar t ()
{
// ...
vi e = Player Pref s . Getlnt ( "vie");
if(vi e <= a 11 vi e == nul!)
{
vi e = 3;
Il ne nous reste plus qu'à gérer l'affichage des images de cœurs. Pour que le script puisse
accéder à l'UI, vous devez impérativement lui a jouter au début la d irective suivante,
a insi que nous l'avons déjà vu à la Sectio n 9.2, Ajo ut d 'un timer.
Puis, toujours dans le script de collisions, nous créons un tableau de variables à l'a ide
de l'expressio n public Image( ] cœur s; .
Maintenant nous a llo ns utili ser la fo nctio n Upda t e pour gére r l'affichage des cœurs. Si
le personnage a trois vies, o n affiche trois cœurs, s'il en a deux, on en affiche deux, etc.
Voilà un code très simple à comprend re qui permet de foire cela :
page 71
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Et voilà, notre barre de vie est fonctionnelle ! Vous pouvez tester votre jeu et vous verrez
que vous perdrez des cœurs quand vous tomberez dans le vide. Voil à à quoi ressemble
ma vie après avoir perdu une fois :
créer un menu;
créer des boutons;
associer une fonction d'un script à un die ;
créer une barre de vie.
page 72
12
Sauvegarder des informations
l es sauvegardes sont présentes dans tous les jeux. Sauvegarder une informatio n permet
de garder en mémoire des informatio ns importantes que le joueur souha ite conser ver.
Pa r exemple vous pouvez garder en mémoire l e dernier niveau débloqué pour que le
1
joueur puisse reprend re la partie là où il s est a rrêté. Vous pouvez également enregistrer
son score pour conser ver les meilleurs temps.
Pour garder en mémoire une valeur, vous devez utiliser la fonctio n sui vante :
Pl ayer P r e f s . Setint(" Cl é", val e u r lnt ); . Dans cet exemple, nous stockons un i nt.
Pour stocker un f l oa t il faut utiliser Se tFl oa t et pour les chaînes de caradères Set S ·
t r i ng. Ce sont les trois types de valeurs que vous pouvez stocker sur le di sque. Da ns
notre cas, nous souha itons sauvegarder l e dernier niveau débloqué ; nous stockons donc
le nom du niveau débloqué, qui est une ch·aîne de caractères. Nous écriro ns a lo rs
Pl ayer P r e f s , Set S t r i ng("der ni e r Ni veau " / ni veauSui vant ) ; .
l e p lus simple est d'utiliser la variable s t r i ng ni veauSui van t e n haut du script de colli-
1
sio ns et d a jouter l'e nregistrement en mémoire lo rsque le joueur touche l'objet de fin du
niveau. li faut donc modifie r la fo ncti on suivante:
page 73
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Comme vous pouvez le constater, je crée une variable qui va prendre la voleur du der-
nier niveau débloqué. Si aucune voleur n1était en mémoire, cette variable deviend ra
"Jeu" qui correspond ou premier niveau. Ensuite dons la fonctio n char ger Niveau, nous
pouvons ouvrir la scène derni erNiveau. Pour contrô ler, essayez de jouer et de déblo -
quer un niveau, puis quittez et rela ncez le jeu pour voir si le niveau 2 se la nce bien
lo rsque vous cliquez sur JOUER.
page 74
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
Cette technique peut être utilisée pour enregistrer la vie, l'expérience, l'équipement ou
toute outre informati on du jeu. Vous pouvez même sauvegarder la positio n d 'un objet en
stockant tro is floa t représenta nt les ~ y et z du Tr ansform. Si vous voul ez sauvegarder
le meill eur score, vous pouvez cr éer une fonctio n de cette forme :
Dons cet exemple, la sauvegarde ne se fait que si l e nouveau score est supérieur à
l'a ncien score. Il exi ste d 'autres techni ques permettant de sauvegarder des données
comme par exemple la sauvegarde dons des fichiers ou la sauvegarde en lig ne sur un
ser veur web ou dons une base de données, mois ces techniques sont p lus complexes
à mettre en pl ace.
page 75
13
Publier son jeu
U ne fois votre jeu terminé, sa publication sur une ou plusieurs plateformes le rendra
accessible aux joueurs du monde entier. D a n s ce chapitre, je vous montrera i comment
publier un jeu sur Google Play pour And roid et vous donnera i quelques astuces pour
le publi er sur l'iTunes Store d'Apple pour iOS. Je vous donnera i également des conseils
pour mettre en avant votre jeu et obtenir plus de télécha rgements.
Note > Pour tes dévefoppeurs iOS, ra comp11aûon ne se /ait pas entièrement dans Unily. En effet, ce dernier
assembfe tes éféments pour sénérer un projet qu'U J,audra ensuite oLNrir avec re toside( Xcode pour
poLNOir finaliser ra compiraûon. Pour compifer un jeu iPhone, vous avez donc l'obli3acion de travaiUer sous
Mac OS avec Xcode el vous devez avoir un compte dévefoppeur Appfe. La procédure est pfus rompfexe
que pour te développement dllne application Android.
Avant de compiler le jeu, pensez à vérifier dans les paramètres du projet (menu FILE/BUILD
SITTINGS) que vous avez bien intégré toutes les scènes du jeu, sélectio nné la plateforme
ciblée et config uré les paramètres de l'application dans la fenêtre PLAYER SITTINGS.
Une lois que tout est prêt, vous pouvez cliquer sur le bouton BUILD pour créer le fi-
chi er A PK. Attribuez-lui un nom et un emplacement. U ne fois terminé, vous obtenez
l'applicatio n que vous pourrez envoyer sur Google Play.
page 76
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
- o
'''"" .
-....... . ...
P.,.1.1111
Note > L'inscription à l'espace dévefoppeur Android votts coûtera 25 €pour une licence valide à vie. A>ur
dévefopper des applications iOS, vous devrez déboursier 100 €par an. Glez Windows Phone, fa licence
coûte enue 25€ et 75 €par an. C.oaste propose donc Lrn tari/ uès compétitif.
page 77
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
p............. -~ ,
11 5 541'5 ~...
Après avoir importé votre fichier APK, vous pouvez passer à 1a création de la fiche de
votre produit.
,...... ...,......
Vous devez renseigne r le titre et fournir à la fois une description courte et une description
longue de votre jeu. Ces textes seront visibles sur sa page produit. li faudra également
1
envoyer plusieurs captures d écra n correspondant aux différents appareils ciblés.
page 78
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
·- - ....,... . .
"t ,., ~
.·.
. ..
~~•~ .
" •v •• .,
l""JSL.. - " .. ..
O n vous demandera aussi de choisir une icône ainsi que des images publicitaires. Re~
pectez bien la taille des images qui est imposée et le format. Vous pouvez spécifier
une U RL si vous avez créé une vidéo promoti·o nnell e. Cette vidéo doit être publiée sur
YouTube.
Choisissez une catégorie pour votre jeu afin de le classer dans Google Play (voir f igure
135 )
--
Figure 13.5: dassilication
CLASSIFICATION
-
,,,..d..,...._
--
.....
Vous pouvez indiquer votre site web a insi que votre e-mail. Une fois terminé, vous devez
passer au formula ire vous permettant de définir à quel public s'adresse votre jeu (tranche
d'âge) . Vous devrez répondre à quelques questions afin de préciser s'il y a de la violence
ou des scènes choquantes afin de définir s'il est adapté aux e nfa nts ou aux adultes. Cela
ne vous prendre que trois minutes.
page 79
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
l'étape suivante permet de définir le prix du jeu a insi que les pays pour lesquels vous
souha itez le publier.
-·- ---··-·-..-
1·-..-·-
---- ·- ~-
·-
lorsque tout est configuré, le boulon de publi cation devie nt actif el vous pouvez sou-
mettre voire jeu à Google qui le vali dera . li sera disponible sur le store dès sa validation.
Celle-ci peul prendre plusieurs jours avant d'être effective.
Note > Pour poltvoir diffuser des publidtés dans voue jeu, vous devez l'avoir mis en lisne une première
/ois a/in d'obtenir son URL sur re store. CeUe·d est nécessaire pour robtension d'un code permenant
l'aJJichase des publicUés. Nous verrons cera au chapiue Monétiser son jeu. Beaucoup d'auues servjces
nécessitent que voue jeu soit publié.
Note >La procédure de publication sur ra consofe dévefoppeur iTunes est sensibfement ra même, fourniture
d'imases, ic.ônes, description, vidéo, etc. Sachez qu'App(e est beaucoup pfus sujet et pfus tons à valider
l'application.
page 80
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
votre opplicoti on sera proposée. Il existe des outils permettant de connaître les
recherches des utilisateurs afi n de choisir de bons mots clés. Je vous propose de
regarder Google Trends et Google Adwords pour vous a ider.
page 81
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
De plus, essayez de publier des a rticles sur des blogs spécia lisés, des fo rums ou essayez
de faire lester voire jeu par des sites ou une chaîne You Tube. li faut faire parl er de vous
1
sur les réseaux sociaux afin d ottirer du trafic sur votre page.
Si vous avez un peu d'a rgent à investir, vous pouvez faire appel à une régie publicitaire
comme Google AdMob ou AdBuddiz pourlaire la promotion de voire jeu dans d'autres
a pp li calions.
lisez régulièrement des sites spécialisés ou des a rticles afin de rester à jour sur les ten-
dan ces et les bonnes pratiques nécessaires à un travail propre et adopté. Ne vous dé-
1
couragez pas si vos premi ers jeux ne fonctio nnent pas aussi b ie n qu espéré.
page 82
14
Monétiser son jeu
Nous voilà maintenant à l'étape de la monétisation de votre jeu afin de générer des
revenus grâce à votre application. Il existe plusieurs façons de monétiser une appli cation.
Voici les trois principales :
Environ 95 % des jeux télécha rgés sont gratu its. les joueurs ne regardent plus les jeux
payants, c'est pourquoi je vous invite à éviter die créer des jeux payants car vous risquez
d'être déçu et d'avoir travaillé pour rien. En effet, les achats sont de moins en moins fré-
quents el si vous obtenez un total de 1OO téléchargements pour voire jeu à 0,79 €, vous
aurez gagné moins de 50 € après les diffé re nts prélèvements. les jeux proposant des
achats intégrés sont beaucoup plus popula ires mais pour proposer des achats intégrés
il faut que le jeu a il été pensé pour accueillir une boutique. En effet, vous devrez mettre
en place un système cohérent donna nt envie eu joueur de p ayer pour avancer plus vite.
Cette solution est selon moi davantage adaptée aux gros studios qui créent de gros jeux
en li gne el addictifs dans lesquelles la progression peul être accélé rée en payant. les
achats intégrés sont moins faciles à mettre en p lace pour les petites équipes ou pour les
développeurs indépendants car 1eurs moyens sont plus faibles. l a meill eure solution el
la plus simple pour eux est de diffuser des publicités dans le jeu. En effet, les joueurs
sont maintenant habitués à voir des publicités dans les jeux mobiles si ces publicités
1
sont bie n placées et ne gêne nt pas l expérien ce utilisateur. l es publicités peuvent vous
rapporter beaucoup plus d'a rgent que les deux solutions précédentes. Sur la base de
mes propres réalisations, j'a i pu compare r les d ifférentes solutions, et dons de nombreux
cas la publicité s'avère beaucoup plus rentable que les deux autres. C'est cette solution
que je vois vous présenter en détail dons ce chapitre.
page 83
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
les régi es qui payent ou clic ou à l'affic hage, c'est-à-d ire à partir du moment où
le joueur clique ou voit la publicité, mois les sommes perçues sont très faibles
(quelques centi mes tout au plus) ;
les régies qui payent à l'installati on. Don s ce second cos, vous percevrez une pe-
tite somme d'argent (entre 1$ el 5$) lo rsqu'un joueur installera un jeu qui était
présenté dons une publicité. l es sommes perçues sont moins nombreuses mois p lus
importa ntes qu'une régi e qui fonctionn e o u clic.
Vous devez donc cho isir une régie publicitaire e n foncti on de vos attentes. l es éléments
à prendre en compte sont:
le nombre d 'a nno nceurs : p lus il y a d 'a nno nceurs, p lus votre toux d 'affich age sera
importa nt ;
les revenus générés : certa ines régies ont un meill eur rendement que d 'autres et
certa ines régies prélèvent un p lus g rand pourcentage que d 'autres ;
U ne fois que vous avez cho isi votre régi e publicitaire, vous pouvez commencer à moné-
tiser vos jeux en intégrant leur solutio n. Je voi s vous présenter la régie publicitaire que
j'utilise pour mes propres jeux et qui selo n moi est le meilleur cho ix selo n les critères
donn és ci-dessus. Il s'agit d'AdBuddiz.
page 84
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
le tableau de bord vous donne des inlormati·o ns sur les performances de vos applica-
tions. Vous pouvez visualiser les revenus géné rés ainsi que le détail pour chaque appli-
cation:
. .....,
. mtlh
Revenue Trend
··-.- uJJJh
a::zc:I Sl02 61
-· c:::m S2 St2 13
page 85
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
....
-.. ...
..
.. ·-
NOf- .......,__...
Enfin, dans le menu SDK, vous pouvez télécha rger le kit de développement pour Unity
et accéder à la documentation.
-
Figure 14.3 : SDK AdBuddiz
Ad8udd/;r d
""
SDK Unily Plug1n
..-..
TM• IN~ 811& llor Ck~uq l.N)o *1lnor:1~h
_..lllli'OI • and.And1old . pu!'l111 ...
Je vous invite donc à a jouter votre application dans le tableau de bord et à télécharger
le SDK pour Unity. Gardez de côté la clé de votre appli cation car nous allons en avoir
besoin pour l'intégration des publicités.
page 86
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
. . . . . ., 1.4 s
"' ~,........, ....
il ........."'''"'""•
J ~ ......................."''
"' ••"
il ..."' .
...........
J
"'
il
.......
,".....,,.
............... ..
............
J ••11..1U1>•"""""z,.,,..
"'
il •• '°'.........."''t!; ......,.z,.,..,
J
"' .......,..
.......1 ..........
.......,..,..,,_
il .......o...... ..
"J .......... _ .. _..
Vous avez maintenant un dossier Plugi ns dans lequel se trouve le SDK ainsi qu'un fi-
chi er AndroidManifes t qui sert à a jouter des permissions à votre application comme
par exemple l'accès ou réseau internet afin de télécha rger les publicités sur les serveurs
d'A dBuddiz.
Nous allons maintenant passer à la partie code. Ce que je vous propose c'est d'afficher
une publicité lorsque le joueur term ine un niveau. Afin de ne pas gêner le joueur, nous
n'aiIo ns afficher les pub li cités que dans 3 0 % des cas. Ce chiffre nous donnera de bons
résultats et il s'agit d'un bon compromis entre monétisotion et confort utili sateur. Pensez
que si l'utili saleur trouve qu'il y a trop de pubs dans votre applicatio n, il le fera savoir
dans les commenta ires et vous risquez de per·dre des télécha rgements.
Ouvrez le script CheckCollisions, dons lequel vous a llez créer une fonction s tar t qui
nous servira à initialiser AdBuddiz et à cha rger la publi cité:
voi d St a r t ()
{
AdBuddi ZBi ndi ng. SetAndr oi dPubl i sherKey( ,, TES T~PUBUSHER_KE Y_A NDROID ");
AdBuddi zBindi ng. CacheAds();
page 87
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Attention > Pensez à remp(acer TEST_PUBLISHER_KEY_ANDROID par (a cfé qui a élé 3énérée pour
voue appficacion.
Nous a llo ns maintenant afficher la publicité si le joueur louche l'objel de lin du niveau :
// ...
el se i f (obj garneôbj ect .name == " fin ")
{
i f ( Randan Range(a,10) >= 7)
{
AdBuddizBinding .Sh0>1Ad( );
}
i f (Timer , finTimer == fal se)
{
PlayerPref s .SetStr ing ( "dernierNiveau", ni veauSui van t );
Application, LoadLevel ( ni veauSui vant );
}
}
// ...
1
Et c est terminé! l es publicités sont maintenant gérées par votre application. Voilà à quoi
ressemble nt les publi cités:
page 88
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
. ~ ·-
...
, ••lt. .~.........ltJ~ <•m
l'1•1•!1'...,.....,11i..,.-.. :o
.,._,.,,.,.,..,i., ll"ObmWoi.
.....le'W-llC-
page 89
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
FICHIERS APK
·-,,
PRODUCTION
-·"'**-
---
FICHICr.: APK ACTIA'.L
8200
11 lllw. Jt'IS M.•bll
......
-.,...,..
•WJtu-.1
,,.,,,
WClll!ff Il
11 h . :ltlS
--
f l4f AC. flf.Jlll
Comme pour le premier enregistrement, vous aurez un déla i d'attente avant que les mo-
d ificatio ns soie nt effectives. l es utilisateurs sero nt e nsuite invités à télécharger la nouvelle
versio n de votre applicatio n.
AdBuddiz met à jour les statistiques toutes les 2 4 h, vous pourrez voir chaque jour les
revenus qui auro nt été générés. l es régies publi citaires s'adaptant selo n votre jeu et vos
joueurs, vous devez attend re quelques jours avant d'avoir les résultats réels.
page 90
15
Les services de jeux
les services de jeux sont devenus in contournables. Ils permettent de mettre en place
des fondi onnali tés qui améliorent l'expérience des utilisateurs. Ces fondionnalités sont
recherchées par les joueurs, il s'agit par exemple de classements mondiaux, de succès à
débloquer ou d 'un mode multij oueur. Nous a llo ns voir corn ment intégrer cela à n otre jeu.
Note > Goosre sames services esl l'outi( offide( pour ra mise en p(ace des services de jeux sous Android.
Du côté iOS, c'esl re Game Center.
Intégrer un ser vice de jeux tel que Google Gomes ser vices permet d'amélio rer
l'expérience utilisateur et a insi d'obtenir plus die télécha rgements et plus de satisfaction.
les jeux qui font partie de Google Garnes services se remorquent par des icônes sur la
fiche produit. les joueurs les recherche nt spécifiquement car cela leur permet d'être en
compétition grâce au classement mondial ou aux cha llenges à obtenir. Google Gomes
1 1
ser vices vous permet aussi d ana lyser vos joueurs pour savoir d où ils viennent, combien
de temps ils jouent à votre jeu, quel est le modèle de leur téléphone, quel est leur niveau
préféré, etc. Cela vous a idera à amélio re r votre p roduit pour mieux répond re à leurs
attentes. Dans ce chapitre, je vais vous montrer comment créer un classement mond ia l et
comment créer un système de succès afin que vous ayez les bases pour b ie n vous l ancer.
Pour commencer, vous devez déclarer votre jeu au ser vice de jeux via l a con sole déve-
loppeur. Rendez-vous dans le menu SERVICES DE JEl!X et cliquez sur AJOUTER UN JEU.
page 91
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
SERVICES DE JEUX
,..
0
... •
a • •
. ....... 11..-
•
• •
• •
Renseignez le nom et la catégorie de votre jeu pour pouvoir passer à l'étape suivante.
Puis vous devez en fournir une description et a jouter des images pour préparer sa fiche
de présentation. Da ns la suite de ce chapitre, j'utiliserai un jeu que j'a i développé et
qui est en ligne pour vous présenter les différentes étapes. En effet, le jeu développé au
cours de ce livre n'a pas été mis en ligne, je me baserai donc sur le jeu CAT SIMULATOR.
•
CATSl~10R
.__._ ........._..,
•
•
•
page 92
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Après avoir enreg istré vos modifications, cl iquez sur le menu APPLICATIONSASSOCl~ES à
voire gauche el sélectio nnezANDROID pour le type d 'applicati on. Ensuite, dans l e ch amp
NOM DU PACKAGE vous devez a ller ch ercher votre applicatio n. Voici en exemple une cap-
ture d 'écra n de la config uration d 'un de mes j·eux A nd ro id :
CATSIMULATOR
1 Appl...._ ___.....
•
0
•
0
.
. PARAI t(fR(.$ 1tUl TIJCMJ[UftS
Enregi strez el cliquez sur l e bouton Al!TORISER, puis poursuivez la procédure en cliquant
sur CONTINUER. Vous a rrivez sur une nouvelle page où vous devez cliquer sur CREATE
CLIENT pour termine r la confi guration. Nous pouvons passer à la partie intéressante du
chapitre !
page 93
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
....,._,__Um.... ..ut
a:::::I .................
---------
...._..
·-
r ...... 4111 .....
.............................
....
123 450 000
·- IN(_ ..............
..................... _.... ..-..-..
~
~
1
Enregi strez vos modi ficatio ns. Vous obtenez une clé d identificatio n de votre classement
qui sera utilisée dons Uni ty pour envoyer le score du joueur à celui-ci.
Figure 15.5: Clé du classement
··-
• fitt-n .....
Vous devez ou minimum créer cinq réussites pour que ce soit valide. Pour créer une
1
réussite, attribuez-lui un nom, une descriptio n, une icône a insi qu un nombre de points:
page 94
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
.,,,.
,.. ~ CATSIMULATOR
,......., ..,._._....,..
-----------
-
IJOUVELLE R(US~ITE
---------
M ....1 ....._.u-t
0
.. 0
Cl ,....._
0
.. ....
·~
_
0
..•
,....
Répétez cette opération cinq fois. Une fois terminé, vous obtenez quelque chose qui
devrait ressembl er à cela :
--
0 Act...,""' ' .....
• Fkt>""'lri'' ......
--
Cp t~[..
O F .....,....,.....
3 6'.,.1<111•1 . . . . Cp t~olft.i
-
0 1 ......." . . .
page 95
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Allez ensuite dans le menu publication et cliquez sur PUBLIERVOTRE JEU pour envoyer les
modifications sur le Play Store :
Da ns Unity, importez et installez le plug-in GameServi cesunity que j'a i développé pour
la mise en place des games services. Vous pouvez le télécha rger sur mon site.
Attention > Vous poltvez rencontrer des erreurs si vous utilisez pfusieurs pfus·ins. fn effet, H ne pe.ut
y avoir qLt'un seur manifest dans voue projet Si vous utJlisez d'autres phls·ins, vous aurez à modifier
manueUement fe fichier manifest pour ajouter fes bonnes permissions el fes bonnes activities.
la premiè re chose à faire est de cliquer sur le n·o uveau menu GOOGLEPLAYGAMES/AN DROID
SETUP :
ËJ
-~~
-- ..
page 96
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
.. CATSIMULATOR ~'----'
Entrez le code et validez. Vous pouvez désormais utiliser les Gomes ser vices.
Voyons maintenant comment envoyer en lig ne le meilleur score du joueur. Ce score doit
impérativement être stocké dons les Player Pr ef s . Par exempl e, dons mon cos, j'a i un
score qui est stocké de la façon suivante : Player Pr ef s, Set ln t ( "sco r e", monSco r e ); .
la dé est donc le mol "sco r e" . C'esttrès importa nt de garder de côté cette dé.
Pour envoyer le score du joueur en lig ne, vous devez foire g li sser le prefab SaveLeader .
board sur la scène de votre menu principal. l e prefab se trouve dons le dossier Scripts .
le script prend deux paramètres: le nom de voire dé des Player Pref s (pour moi il s'agit
de "sco r e") et l'ID de votre classement que vous pouvez récupére r dons la console
développeur. Voil à ce que cela donne :
Note > Le pre/abSaveLeaderboard du pfus·in est lin objet déjà confisuré qui contient fes scripts qui
vont aérer ra uansacUon du score de rapplication vers fes serveurs de Goosre en lisne. Le script p(acé
sur ce pre/ab vérifie que fe score est supérieur au précédent et si te( est fe cas, (e noLNeau meiUeur score
est envoyé en lisne. Goosre se charse ensuite de créer un crassement avec tous fes scores qui ont été
envoyés par tous fes joueurs.
page 97
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
Note > Encore une /ois, re pfus·in va nous simplifier ra vie pour celle étape. Le pfus·in va Jaire re lien
entre voue jeu et fes services de jeux de Goosre afin d'indiquer à Goosre que re joueur a débfoqué terre
ou terre réussite.
l e p lug -in va se cha rger d'envoyer le score du joueur en lig ne. Pour paramétrer les
1
réussites, c est tout aussi simple. Vous devez utili ser le script UnlockAchieve ment qui se
trouve dans le dossier Sc ri pts du plugin. Ce script permet de débloquer une réussite si
un événement se produit. Par exemple, si vous voulez débloquer la réussite Obtenez un
score supérieur o u égal à 10 vous devez p lacer le script sur une scène et le config urer
de la façon suivante :
a ~,,,..~~"
1 •
•
'
..... .... ....
... ~~·-·"' c~...,..
>
~........
'
~· '
'
1
~
'. • ,
•
'
. ' . ' .
•
le premier paramètre du script est l'ID de la réussite à débloquer. Cette lois encore,
vous récupérerez l'ID dons la console dévelo ppeur à côté de la réussite e n questio n.
1 1 1
l e deuxième paramètre est le type d événement. Il s agit soit d un clic sur un objet soit
1 1 1 1
d une cond itio n. S il s agit d une cond itio n, par exemple score = 1e, vous devez utiliser
les deux outres paramètres suivants : le troisième est la clé du PlayerP ref s qui doit être
pris e n compte dans la condition et le quatri ème la valeur à atteindre pour satisfaire la
cond itio n. Dons notre cos, nous souha itons avoir un score de 1O.
Vous pouvez a insi config urer les di fférentes réussites que vous avez créées. Une fois
terminé, vous devez a jouter le script Logi nGP sur un objet du menu principal de votre jeu.
Ce script va permettre ou joueur de se connecter avec son compte aux ser vices de jeux.
Note > Le script LoginGP permet au joueur de se connecter à son compte Goosre afin de béné/iôer des
services de jeux proposés. Le script va transférer fes informations à Goosre a/in de vérifier si l'e·mail et
fe mot de passe sont bons afin d'identifier fe joueur pour assoôer fes scores à ce joueur.
1
l o rsque le joueur la nce le jeu, une fenêtre pop-up s ouvre et lui propose de se connecter
s'il possède un compte Google (voir f igure 15 .1 3 ).
page 98
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Googfc ..
creatureshunter souha1tera1t.
ANNULER •+@H[.JI'
1
U ne fois connecté, un message de bienvenue apparait afin d informer le joueur que la
connexion est réussie .
Anthony Cawonale
le message de la f igure 15. 15 apparait lorsqu·e le joueur débloque une réussite. Google
indique au joueur ce qu'il a débloqué et combien de points il a obtenu.
page 99
Cr&-z des ;e.i,x clt:A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
Sur la page de l'application dans Google Pla y, le joueur peul consulter l'e nsemble des
1
scores qu il a obtenu et l'ensemble des succès. déverrouillés.
·- ...__,.,, CUl---llfl
~
~
~
iiiÏïillllm
P"IJ" 100
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
D ons ce chapitre, vous avez vu corn ment intégrer les services de jeux Goog le grâce à l'utilisation
d'un plug-in. Vous savez:
P"IJ" 101
16
Améliorer son application
Une fois publiées, vos applicatio ns doivent être maintenues et amélio rées. Google et
1
Apple attachent beaucoup d importa nce aux mises à jour. Si votre jeu est mi s à jour,
cela signifie que vous apportez des nouveout·é s, que vous corrigez des bugs, que vous
1
continuez à travailler dessus même après sa sortie et que vous continuez à l amélio rer.
les applications à jour sont plus mises en avant sur les stores que les applications aban-
donn ées par les développeurs. Il est donc essentiel de la ire évoluer votre jeu et de ré-
pondre aux attentes des joueurs.
-·-
--·- 1---·----.. . . ..-.. _
_......
____
___
___ ____
. _
.....,_...
...__...,.. ..
_....
:.::.=.-:.~-:.."::"
·- -.....--
"_"""'
Google vous d ira si vous devez traduire votre jeu dons une la ngue popula ire, si vous
devez cha nger les images ou l'icône et si vous pouvez amélio rer des choses dons votre
appli catio n. le mieux est d 'essayer de suivre toutes les recommandations qui vous sero nt
laites.
P"IJ" 102
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
Google a na lyse également les pla ntages de votre application, et vous pouvez lire les
logs afin de détecter d'éventuels bugs :
... _ ............
__
Midi. ... _ .......... a.--
..,...,_ ,_.......... ........-......... . .,._ ......
...,. . ........ -
1
Vous y trouverez des in formatio ns importa ntes comme la versi on d A nd ro id utilisée par
le joueur, la date du pla ntage ou encore le bout de code au centre du pla ntage.
l es commenta ires des joueurs sont aussi très i mporta nts. Vous devez lire tous les corn·
mentaires afin de prendre en compte ce que pensent les utilisateurs. l es commenta ires
vont vous a ider à cerner ce qui va et ne va pas, a insi vous pourrez adapter votre jeu.
1
l o rsqu un utilisateur vous met une mauvai se n·ote, essayez de voir ce que vous pouvez
faire pour améliorer son confort et répondez à son commenta ire lo rsque vous aurez
1
apporté les modificatio ns. Vous devez avoir les meilleures notes possib les afin d obtenir
plus de télécha rgements. Vous ne pourrez pas répondre aux attentes de tout le monde,
mais essayez de faire au mieux.
P"IJ" 103
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
• ,..old l.1
' tt.21 %
0.00 ..
t.to•
· ~«.J . .U.. 1,U,.
• -....w • >
• ,..toltl11 ........
).~-
o.to,.
o.to"'
t.to•
......
• Mllrool•U
t .00'11.
Il: llM!eid1.1J . 1.U 1,il ..
...., t.00,.
·-
• -....id l.1
t,00'11.
t,to•
Si vous utilisez un outil comme A na lyti cs, ce que je vous conseill e fortement de faire,
vous aurez accès à de très nombreuses statistiques qui vous a idero nt à amélio re r votre
produit. Ana lytics fou rnit é normément d'info rmations et de données essentielles pour
1
connaitre le comportement exact des joueurs. Voici l a page d occueil avec le tableau
de bord pour une application :
P"IJ" 104
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
1- · · -
0 :::"'""-
--
Avec A na lytics, vous pouvez aussi voir en temps réel ce que font tous les joueurs qui
jouent actuellement à votre jeu :
Actuellement
390
• lllOlllU • r.t.atnr
l'a na lyse du comportement de vos joueurs est le meilleur moyen de détecter les points
forts a insi que les points loibles de voire appli cation.
P"IJ" 105
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
A près avoir a na lysé vos joueurs, vous pouvez repérer ce qu'ils a iment et ajouter du
nouveau contenu en fonctio n de cela. Vous pouvez a jouter de nouveaux niveaux, de
nouvelles quêtes, de nouvelles missio ns ou tout si mplement de n ouveaux personnages
ou décors. Il faut montrer aux joueurs que votre applicatio n est vivante et cha nge régu-
lièrement.
Vous devez vous faire remarquer afin d 'être dan s le top 10 des meilleurs jeux. Vous
devez profiter des événements et des fêtes de l'a nnée. Pa r exemple, la semaine
d'Ha lloween, pensez à cha nger les décors, ô a jouter des citrouilles ou des chauve,..
souris, afin de célébrer l'événement. Faites cel·a également pour Noël ou le Nouvel An.
Vous pouvez aussi profiter des événements sp·o rtifs comme la coupe du monde de foot-
ball pour cha nger les couleurs. Pensez à modifier la liche de votre application afin de
d ire que vous avez a jouté de nouveaux déco rs.
Vous devez toujours a nno ncer 1es nouveautés dans la descriptio n de votre applicatio n. Si
c'est Noël, vous pouvez être sûr que de nombr·eux utili sateurs vont effectuer la recherche
"noël" sur Google. A l ors profitez-en pour a jouter ce mot clé dans votre descriptio n un
peu avant l'événement afin d 'être référencé sur celui-ci et attirer de nouveaux joueurs.
l o rsque les modificati ons sont faites, vous pouvez compiler votre jeu et envoyer la nou-
velle versio n de l'APK sur le Play Store:
P"IJ" 106
Cr&-z des ;e.i,x clt:A ô ZO lo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
--
m• -·--
•
... ....
la mise à jour sera effective sous 2 .4 heures.
-- ...
Dons ce chapitre, vous avez vu comment apporter des modifications à votre application afin de
l'a méliorer et d'attirer toujours plus d'utilisateurs. Vous avez vu comment :
P"IJ" 107
Foire aux questions
P"IJ" 108
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
P"IJ" 109
Cr&-z des ;e.i,x clt:A ô ZOlo't:C Unify · li. DéYt:Jopper pour A n&okl & iOS
créer deux scènes et utiliser la fonctio n ci·dess.us pour char ger le contenu de la scène 2
dans la scène 1. Cela peut être utile paur cha rger un monde virtuel de faço n progressive.
P"IJ" 110
Liste des illustrations
P"IJ" 112
Cr&-z des ;e.i,x clt: A ô Z Olo't:C Unify · li. DéYt:Jopper pour An&okl & iOS
P"IJ" 113
Index
A E
Accélé romètre, 20 Écra n tactile, 2 1
AdBuddiz, B5 Extrusion, 32
Animation, 40, 1OB
outil d', 4 1
F
Assets, 7, 2 3
FBX, 37
FPS, 8
B Fusionner
Brouilla rd, 6 1 objets, 6 1
Bugs, rapport de, 103 polygones, 36
Build Settings, 1 4
Bundle identifier, 16 G
Game Center, 9 1
c Google Ana lytics, 1 04
Cahie r des cha rges, 1 1 Google Gomes services, 9 1
Caméra, 8 Google Pla y, 4, 76
Caméra du téléphone, 1 09
Capture d'écra n, 1 09
Classement mondial, 94
lnstantiate, 49
Clic, 2 1
Interface utilisateur, 56
Colli sion, 28, 4 7-53, 5 4
iOS, 5, 9 1
Corn pilotion, 18
iPhone, 76
Console développeur
is trigger, 48
Android, 4, 77
il unes Store, 7 6
ilunes, 80
ilween, 108
Contenu additionnel, 109
Couleur, 49
J
Java Development Kit, 2
D
Détection
chute dans le vide, 4 7 K
clic, 2 1 Keystore, 1 7, 7 6
Distance de vision, 60 Kit de développement
Drew Coll Minimizer, 62 Android, 2
Cr&-z <ksie-uxclt:Aô Zolo'ee Un ify · li. ~ppe-r pourAn&okl &iOS
M p
Matériau, 24 Packages, 7
(voir aussi Texture) Pa ramètres, 15
Mesh Renderer, 4 7 Pa rticules, 50
Microphone, 109 configurer, 44
Mise à jour, 89, 106 Performances, 108
Modèle 3D, 3 1-39 Plantage, 103
extruder, 3 2 Pl ayer Settings, 15
fusionner, 6 1 PlayerPrefs, 70, 73
importer, 37 Polygones, 3 1
modifier, 35 fusion, 36
optimiser, 36 inutiles, 36
Modèles 3D, 9 Prelab, 28
Modélisation, 3 1 Projet
configuration, 1 4
N Publi cité, 80, 83
Niveau, 23-30 intégrer, 87
sauvegarder, 73
R
0 Ramasser un objet, 49
08J, 37 Régies publicitaires, 8 4
Objectifs, 54 Ressources de développem enl, 7
Objet Réussites, créer des, 9 .4
a nimer, .4 1 Rigidbody, 2 0
déplacer, 23
détruire, 4 9
faire apparaître, 49
s
faire tourner, 4 0 Scène
cha rger, 108
ramasser, .49
louché, 54 SDK Android, 2
visible, 47 Services de jeux, 9 1
Shader, 59
Objet3D
Son, 109
cylin dre, 26
Statistiques, 90, 104
fusionner, 6 1
Stockage
importer, 37
niveau débloqué, 73
Objet UI, 55, 65, 69
valeur, 7 4
O nColli sionEnter, 4 8
Système de particules, 44, 49
O nTri ggerEnter, 4 8
Optimisation, 24, 36, 59-64
P"IJ" 115
Cr&-z <ks ie-uxclt: A ô Zolo'ee Un ify · li. ~ppe-r pour An&okl &iOS
T
Temps écoulé, 56
Terrain, 108
asset, 9
Tester
sur un smartphone, 1 3
Texte
modifier avec script, 5 7
UI, 65
Texture, 27
l ime.delta l ime, 56
l imer, 55
Tra nslorm, composant, 40
Tra nsition, 1 08
u
UI, système, 56, 65, 69
Unity remote, 13
V
Variable
accéder à, 57
Vision
distance, 60
w
Webcam, 109
W indows Phone, 77
X
Xcode, 5, 76
P"IJ" 116