Unity - Roguelike 2D

Mobile

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Le projet présenté dans cette série est tout aussi bien compatible avec Unity 4.6 qu'avec Unity 5.
Vous pouvez retrouver les autres épisodes de cette série dans le sommaire dédié.

II. Vidéo


Unity - Roguelike 2D - Mobile


III. Résumé

Nous avons terminé le jeu, il ne reste plus qu'à assurer son bon fonctionnement sur les appareils mobiles, notamment en permettant aux joueurs de jouer avec l'écran tactile.

III-A. Processus

Premièrement, changez la cible du projet afin de créer un exécutable pour iOS :

File → Build Settings… → iOS → Switch Platform

III-B. Player.cs

Il est nécessaire de modifier le script afin de déplacer le joueur suivant les mouvements de toucher de l'utilisateur.

Pour cela, la variable touchOrigin est créée. Elle représente un vecteur 2D, mémorisant l'endroit où l'utilisateur commence le toucher.

Sachant que le support d'écran tactile n'est pas toujours nécessaire, nous allons ajouter du code spécifique à chaque plateforme, qui ne sera exécuté que si telle ou telle plateforme est utilisée. Ainsi, le code gérant le clavier est entouré ainsi :

 
Sélectionnez
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBPLAYER
            // Récupère les entrées du gestionnaire d'entrées, l'arrondit en un entier et le stocke dans horizontal pour définir la direction sur l'axe des X.
            horizontal = (int) (Input.GetAxisRaw ("Horizontal"));
            
            // Récupère les entrées du gestionnaire d'entrées, l'arrondit en un entier et le stocke dans vertical pour définir la direction sur l'axe des Y.
            vertical = (int) (Input.GetAxisRaw ("Vertical"));
            
            // Vérifie si le déplacement est horizontal, si c'est le cas vertical est mis à zéro.
            if(horizontal != 0)
            {
                vertical = 0;
            }
#endif

Nous faisons une clause #else afin de gérer tous les autres périphériques (iOS, Android, Windows Phone 8…).

 
Sélectionnez
#else
            // Vérifie si Input a détecté au moins un toucher
            if (Input.touchCount > 0)
            {
                // Conserve le premier toucher détecté.
                Touch myTouch = Input.touches[0];
                
                // Vérifie si l'étape du toucher est un commencement.
                if (myTouch.phase == TouchPhase.Began)
                {
                    // Si c'est le cas, sauvegarde la position d'origine du toucher.
                    touchOrigin = myTouch.position;
                }
                
                // Si l'étape du toucher n'est pas un commencement, mais que c'est sa fin et que la coordonnée X de l'origine est plus grande que 0 :
                else if (myTouch.phase == TouchPhase.Ended && touchOrigin.x >= 0)
                {
                    // Définit touchEnd avec la position finale du toucher.
                    Vector2 touchEnd = myTouch.position;
                    
                    // Calcul la différence entre le début et la position de fin sur l'axe des X.
                    float x = touchEnd.x - touchOrigin.x;
                    
                    // Calcul la différence entre le début et la position de fin sur l'axe des Y.
                    float y = touchEnd.y - touchOrigin.y;
                    
                    // Définit touchOrigin.x à -1 pour ne pas effectuer plusieurs fois la même condition.
                    touchOrigin.x = -1;
                    
                    // Vérifie si la différence sur l'axe des X est plus grande que celle sur l'axe des Y.
                    if (Mathf.Abs(x) > Mathf.Abs(y))
                        // Si x est plus grand que zéro, définit la variable horizontal à 1, sinon à -1.
                        horizontal = x > 0 ? 1 : -1;
                    else
                        // Si y est plus grand que zéro, définit la variable vertical à 1, sinon à -1.
                        vertical = y > 0 ? 1 : -1;
                }
            }
            
#endif // Fin de la section spécifique aux mobiles

IV. Ressources

Vous pouvez télécharger les ressources pour ce projet sur l'Asset Store de Unity.

V. Commenter

Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2015 Unity Technologies. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.