Dans cette série de didacticiels, nous allons vous montrer comment recréer le jeu classique Arkanoid (ou Breakout) dans Unity, à l'aide des outils 2D natifs de Unity. Dans chaque article, nous nous concentrerons sur une partie spécifique du jeu; Dans cet article, nous allons ajouter des sons et de la musique, créer de nouveaux niveaux et déployer le jeu sur différents appareils et plateformes..
Dans les tutoriels précédents, vous avez configuré le projet, codé les comportements des objets principaux et mis en œuvre un système de score et de vies. Si vous n'avez pas encore terminé les tutoriels précédents, nous vous recommandons fortement de le faire avant de continuer..
Jetez un coup d'oeil à cette démo pour voir ce que nous visons dans toute la série:
Dans le premier message de cette série, vous avez importé plusieurs fichiers audio et musicaux. Il est maintenant temps de les utiliser. dans le Des sons dossier, il y a trois fichiers:
hit.wav
: à utiliser à chaque collision de balle.perdre.wav
: à utiliser quand le joueur perd une vie.point.wav
: utiliser alors le joueur marque un point.Nous devons modifier les deux Joueur et Ballon scripts pour jouer ces effets. Commençons par le Ballon objet.
Au départ, nous devons ajouter un composant audio aux objets du jeu. Sélectionnez la balle et ajoutez un Source audio (Hiérarchie> Inspecteur> Ajouter un composant). Notez que vous devriez décocher l'option Joue sur éveillé, si c'est coché; sinon, les effets sonores seront lus automatiquement au lancement de la scène..
Vous avez un composant audio; Maintenant, vous devez modifier le script de la balle pour interagir avec le composant lui-même. Créez une nouvelle variable pour le fichier son. Puisque vous voulez accéder au son dans l’éditeur, la variable doit être Publique
:
public AudioClip hitSound;
Nous allons faire en sorte que la balle produise un son chaque fois qu’elle se heurte à quelque chose en étant active. Pour ce faire, nous utilisons le OnCollisionEnter2D
méthode, vérifiez si la balle est active et lisez le clip si c'est le cas:
annuler OnCollisionEnter2D (collision Collision2D) if (ballIsActive) audio.PlayOneShot (hitSound);
Notez que vous devez vérifier si la balle est active avant de jouer le son. Dans le cas contraire, le son continuera à jouer lorsque la balle est inactive.
Passons maintenant à l'éditeur et vérifiez que vous avez un nouveau paramètre, Hit Sound, dans le script de balle:
Faites glisser le hit.wav fichier de la Projet onglet et déposez-le sur le Hit Sound paramètre du script. Vous devriez voir quelque chose comme ça:
presse Jouer, et vérifiez que vous entendez maintenant le son correct chaque fois que la balle rebondit sur quelque chose.
Insérons maintenant les deux sons restants dans le jeu. Insérer un autre Source audio, mais cette fois à l'objet joueur. Encore une fois, décochez la Joue sur éveillé option.
Maintenant, ouvrez le script du lecteur et créez deux variables supplémentaires. La première variable concerne le son joué lorsque le joueur marque des points et la seconde le son joué lorsque le joueur perd une vie. Les deux doivent être déclarés publics.
public AudioClip pointSound; AudioClip public lifeSound;
Puisque vous avez maintenant les objets, modifions le addPoints
méthode pour jouer le son chaque fois qu'il est appelé. Comme auparavant, vous devez appeler le PlayOneShot
méthode de la l'audio
objet:
void addPoints (points int) joueurPoints + = points; audio.PlayOneShot (pointSound);
Maintenant, faites la même chose dans le TakeLife
méthode:
TakeLife () vide () playerLives--; audio.PlayOneShot (lifeSound);
Enregistrez le script et passez une nouvelle fois dans l'éditeur. Faites glisser les deux fichiers sonores restants sur chaque nouveau son du lecteur (point et la vie). Vous devriez avoir quelque chose comme l'image suivante:
À présent, Jouer le jeu et vérifiez que les trois sons jouent quand on s'y attend.
Malgré les effets sonores, la sensation générale en jouant est assez vide. Modifions cela en ajoutant une musique de fond différente pour chaque niveau..
dans le Hiérarchie onglet, sélectionnez le Contexte objet et ajouter un composant source audio:
Maintenant, faites glisser Jaunty Gumption.mp3 du Projet onglet et déposez-le sur le Clip audio paramètre de la Source audio composant. Cette fois, vous devriez quitter le Joue sur éveillé paramètre vérifié, car nous voulons que la musique commence à jouer au début de notre niveau. Allume le Boucle option également; cela fera jouer la musique sur une boucle infinie tant que le niveau est joué.
Allez-y et appuyez sur Jouer! Votre jeu comprend maintenant le son et la musique.
Afin de terminer le jeu, nous allons aborder deux points:
Commençons par créer un deuxième niveau pour le jeu. Au lieu de créer un niveau à partir de zéro, nous pouvons simplement dupliquer le premier niveau et modifier les objets de ce nouveau niveau.
Pour ce faire, il vous suffit de sauvegarder votre scène en tant que nouvelle. Cliquez sur Fichier> Enregistrer la scène sous… , nomme le Niveau 2
, et placez-le dans le Niveaux dossier.
Pour que ce niveau soit différent du premier, nous devrions idéalement modifier les positions de tous les blocs. N'hésitez pas à le faire vous-même mais, dans le cadre de ce tutoriel, nous ne changerons que l'image de fond et le niveau de musique..
Sélectionnez le Contexte du Hiérarchie et passer à la Inspecteur. Faites glisser le Contexte2 fichier de la Sprites \ Fonds dossier à la Lutin composante de la Contexte objet du jeu:
Pour changer la musique de fond, il vous suffit de faire glisser le fichier de musique souhaité dans le dossier. Clip audio paramètre. Pour le niveau 2, utilisez le Singes qui tournent Monkeys.mp3 fichier.
Si vous appuyez sur le Jouer bouton, vous pouvez tester ce nouveau niveau. Comme vous pouvez le constater, il se comporte de la même manière que le premier, mais avec un fond et une musique différents. Le deuxième niveau étant prêt, il est temps maintenant de gérer les deux situations identifiées précédemment..
Dans le script de palette du joueur, créez une nouvelle méthode appelée WinLose
. Ici, nous allons vérifier quand le joueur perd toute sa vie et réagir en conséquence: si playerLives
atteint 0
, nous appelons simplement le Application.LoadLevel
méthode et recharger le premier niveau.
void WinLose () // redémarrer le jeu si (playerLives == 0) Application.LoadLevel ("Level1");
Ensuite, nous traiterons le cas où tous les blocs sont détruits, nous voulons donc passer au niveau suivant. Pour déterminer le nombre de blocs restants, nous pouvons utiliser le FindGameObjectsWithTag
méthode à nouveau, cette fois la recherche d'objets dans le niveau actuel étiqueté Bloc. Si le tableau résultant a une longueur de 0
, alors nous savons qu'il est temps de charger le niveau suivant.
Comme ce tutoriel n’a que deux niveaux, si le joueur gagne le deuxième niveau, nous fermerons simplement le jeu (en appelant Application.Quit
).
L'extrait complet pour le WinLose
méthode est:
void WinLose () // redémarrer le jeu si (playerLives == 0) Application.LoadLevel ("Level1"); // blocs détruits si (((GameObject.FindGameObjectsWithTag ("Block"))). Length == 0) // vérifie le niveau actuel de si (Application.loadedLevelName == "Level1") Application.LoadLevel ("Level2") ; else Application.Quit ();
Nous appellerons le WinLose
méthode dans le Mettre à jour
méthode du script du joueur, ajoutez-le simplement à la fin de la méthode. Pour la simplicité, la complète Mettre à jour
méthode est:
void Update () // mouvement horizontal playerPosition.x + = Input.GetAxis ("Horizontal") * playerVelocity; // quitte le jeu si (Input.GetKeyDown (KeyCode.Escape)) Application.Quit (); // met à jour l'objet de jeu transform transform.position = playerPosition; // frontières if (playerPosition.x < -boundary) transform.position = new Vector3 (-boundary, playerPosition.y, playerPosition.z); if (playerPosition.x > borne) transform.position = new Vector3 (borne, playerPosition.y, playerPosition.z); // Vérifier l'état du jeu WinLose ();
Revenez à l'éditeur. Pour faire le WinLose
Pour que la méthode fonctionne correctement, vous devez marquer les blocs dans le jeu. dans le Projet onglet, allez à la Préfabriqués dossier et sélectionnez un bloc. Tous les blocs sont actuellement non étiquetés, et il n'y a pas Bloc tag, nous devons donc le créer. Clique le Étiquette bouton et sélectionnez le Ajouter une étiquette option. Ajouter une nouvelle balise appelée Bloc:
Le jeu est maintenant prêt pour les tests. Cliquez sur Jouer et l'essayer!
La construction et le déploiement du projet sont généralement les dernières étapes du développement d’un projet. Dans cette section, vous allez apprendre à créer une version finale et les configurations nécessaires à son exécution dans un environnement multi-plateforme..
Tout d'abord, vous devez ajouter toutes les scènes à une construction unique. Cliquez sur Fichier> Paramètres de construction. Une nouvelle fenêtre apparaîtra; la Scènes en construction la zone sera probablement vide, comme ceci:
Si tel est le cas, vous devez ajouter les scènes créées précédemment. Cliquez sur Ajouter courant et une scène sera ajoutée à la Scènes en construction surface:
Dans notre exemple, nous avons ajouté le premier niveau. Fermez cette fenêtre et sélectionnez le deuxième niveau de l’éditeur. Cliquez sur Fichier> Paramètres de construction à nouveau, et cliquez Ajouter courant une fois de plus:
Si vous avez ajouté le deuxième niveau avant le premier, ne vous inquiétez pas: utilisez simplement la souris pour échanger leurs positions dans l'interface (car la première scène de la liste est celle qui sera chargée lors du lancement du jeu)..
Une fois les deux niveaux ajoutés dans le bon ordre, cliquez sur Construire et exécuter et vous devriez voir une construction correcte de votre jeu final.
Comme vous pouvez le constater, vous pouvez choisir de déployer votre jeu sur plusieurs plates-formes, à savoir:
Le grand avantage de l’utilisation de Unity est que vous n’avez besoin de programmer votre jeu qu’une seule fois. Ensuite, en utilisant le moteur, vous pouvez le déployer rapidement et facilement sur l’une des plateformes susmentionnées..
Cependant, notez que certaines plates-formes et systèmes d'exploitation ont certaines limitations en termes de règles de déploiement. Par exemple, pour déployer sur des appareils iOS, vous devez disposer d'un système Mac et d'une licence de développement appropriée. Vous avez également besoin de licences pour déployer sur PS3 et Xbox.
Maintenant que vous avez terminé ce didacticiel, nous pensons que vous êtes prêt à relever certains défis. Vous pouvez voir ces défis comme une quête de connaissances maîtrisées.
Ceci conclut cette série de didacticiels sur la construction d’Arkanoid à l’aide des outils 2D d’Unity. Nous avons couvert beaucoup de terrain dans cette courte série, et vous devriez maintenant en savoir assez pour vous lancer dans vos propres jeux 2D. Si vous avez des questions ou des commentaires, comme toujours, n'hésitez pas à nous laisser un mot dans les commentaires..