Développer un jeu 3D Skee Ball avec Unity

Ce que vous allez créer

introduction

Dans ce didacticiel, vous allez apprendre à créer un jeu 3D mobile en utilisant C # et Unity. L'objectif du jeu est de lancer la balle dans les trous à l'aide de l'écran tactile.

Vous découvrirez les aspects suivants du développement de jeux Unity dans ce tutoriel:

  • importer des modèles 3D
  • balayer les contrôles de geste
  • communication de classe
  • forces de la physique
  • déclencheurs de collisionneurs

1. Créer un nouveau projet Unity

Ouvrez Unity et sélectionnez Nouveau projet du Fichier menu pour ouvrir la boîte de dialogue nouveau projet. Indiquez à Unity où vous souhaitez enregistrer le projet et configurez leConfigurer les valeurs par défaut pour: menu à 3D.

2. Paramètres de construction

Dans l'étape suivante, l'interface utilisateur de Unity vous est présentée. Configurez le projet pour le développement mobile en choisissant Paramètres de construction du Fichier menu et sélection de la plateforme de votre choix.

3. appareils

La première chose à faire après la sélection de la plate-forme cible est de choisir la taille de l'illustration que nous allons utiliser dans le jeu. Cela nous aidera à choisir la taille appropriée pour les textures 3D et l'interface graphique 2D sans rendre les illustrations floues ni utiliser des textures trop grandes pour le périphérique cible. Par exemple, si vous ciblez un iPad avec écran Retina, l’œuvre doit avoir une résolution supérieure à celle d’un Lumia 520..

iOS

  • iPad sans rétine: 1024px x 768px
  • iPad avec rétine: 2048px x 1536px
  • 3.5 "iPhone / iPod Touch sans rétine: 320px x 480px
  • 3.5 "iPhone / iPod avec Retina: 960px x 640px
  • 4 "iPhone / iPod Touch: 1136px x 640px

Android

Étant donné qu'Android est une plate-forme ouverte, il existe un large éventail de périphériques, de résolutions d'écran et de densités de pixels. Quelques-uns des plus courants sont énumérés ci-dessous.

  • Asus Nexus 7 Tablet: 800px x 1280px, 216 ppi
  • Motorola Droid X: 854 pixels x 480 pixels, 228 pixels
  • Samsung Galaxy SIII: 720px x 1280px, 306 ppi

Windows Phone et BlackBerry

  • Blackberry z10: 720px x 1280px, 355 ppi
  • Nokia lumia 520: 400px x 800px, 233 ppi
  • Nokia Lumia 1520: 1080px x 1920px, 367 ppp

Notez que le code que nous allons écrire dans ce tutoriel peut être utilisé pour cibler n’importe laquelle des plateformes..

4. Exporter des graphiques

Selon les appareils que vous ciblez, vous devrez peut-être convertir l'illustration à la taille et à la densité de pixels recommandées. Vous pouvez le faire dans votre éditeur d'image préféré. J'ai utilisé le Ajuster la taille…  fonctionner sous la Outils menu sous OS X Aperçu application.

5. Interface utilisateur Unity

Avant de commencer, assurez-vous que le 2D bouton dans le Scène panneau n'est pas en surbrillance. Vous pouvez également modifier la résolution affichée dans le Jeu panneau.

Vous êtes ensuite présenté avec les panneaux de l'espace de travail, que nous allons également utiliser dans ce tutoriel. Prenez un moment pour regarder les principaux panneaux d’interface, tels que le Scène, Jeu, Hiérarchie, Projet, Les atouts, et Inspecteur. Nous les utiliserons fréquemment dans ce tutoriel.

6. Interface de jeu

L'interface utilisateur du jeu est simple. La capture d'écran ci-dessous vous donne une idée de l'illustration que nous allons utiliser et de la structure finale de l'interface utilisateur. Vous pouvez trouver les illustrations et des ressources supplémentaires dans les fichiers sources du didacticiel sur GitHub..

7. Langage de programmation

Vous pouvez utiliser l'un des trois langages de programmation lorsque vous utilisez Unity., C #UnityScript, une variante de JavaScript, et Huer. Chaque langage de programmation a ses avantages et ses inconvénients, et il vous appartient de choisir celui que vous préférez. Ma préférence personnelle va au langage de programmation C #, donc c'est le langage que j'utiliserai dans ce tutoriel..

Si vous décidez d'utiliser un autre langage de programmation, veillez à consulter le document Script Reference de Unity pour obtenir des exemples..

8. effets sonores

J'utiliserai plusieurs sons pour améliorer l'expérience auditive du jeu. Les effets sonores utilisés dans ce tutoriel ont été obtenus à partir de PlayOnLoop et Freesound.

9. Modèles 3D

Pour créer le jeu, nous devons d’abord obtenir quelques modèles 3D. Je recommande 3docean pour les modèles et les textures de haute qualité, mais si vous testez ou apprenez, les modèles gratuits fonctionnent tout aussi bien. Les modèles de ce didacticiel ont été téléchargés à partir de SketchUp 3D Warehouse où vous pouvez trouver une grande variété de modèles 3D..

Comme Unity ne reconnaît pas le format de fichier SketchUp, nous devons le convertir en un élément pouvant être importé par Unity. Nous devons d’abord télécharger la version gratuite de SketchUp, appelée SketchUp Make..

Ouvrez le modèle 3D dans SketchUp Make, sélectionnez Exporter> Modèle 3D du Fichier menu, et choisissez Collada (* .dae). Choisissez un nom et un emplacement, puis cliquez sur sauvegarder. Cela créera un fichier et un dossier pour le modèle 3D. Le fichier contient les données de l'objet 3D, tandis que le dossier contient les textures du modèle. Dans l'étape suivante, nous allons importer le modèle dans Unity..

10. Actifs d'importation

Avant de commencer à coder, nous devons ajouter les actifs au projet Unity. Vous pouvez le faire de plusieurs manières:

  • sélectionner Importer un nouvel actif du Les atouts menu
  • faites glisser les éléments dans la fenêtre du projet
  • ajouter les éléments au dossier des actifs du projet

Une fois cette étape terminée, vous devriez voir les actifs dans le projet. Les atouts dossier dans le Projet panneau.

11. Configuration de la caméra

Avant de continuer, positionnons la caméra principale pour créer la vue souhaitée. Sélectionnez la caméra principale à partir du Hiérarchie panneau et ajuster le Transformer valeurs dans le Inspecteur pour correspondre à ceux indiqués ci-dessous.

Ne vous inquiétez pas si vous ne voyez aucun changement. Nous n'avons encore rien créé pour la caméra.

12. Ajout de lumière

Pour que nos objets soient visibles dans le monde 3D, nous devons ajouter de la lumière à la scène. Sélectionner Créer autre du GameObject menu et sélectionnez Lumière directionnelle. Cela va créer un objet qui produit un faisceau de lumière. Changer son Transformer valeurs indiquées dans la capture d'écran suivante pour éclairer la zone.

La lumière doit être visible sur la scène, comme indiqué dans la capture d'écran suivante..

13. Ajouter Alley Bowlers

Les quilleurs de ruelle sont les composants principaux de la scène du jeu. Le joueur utilisera l’écran tactile pour lancer une balle en visant l’un des trous..

Le modèle utilisé dans ce tutoriel a été téléchargé et importé à l'aide de la méthode décrite dans Étape 9.

Même si nous ajoutons trois modèles à la scène, la pièce n'interagira qu'avec celui du centre. Faites glisser une occurrence du modèle sur la Scène ou Hiérarchie panneau et changer sa Transformer valeurs identiques à celles de la capture d'écran ci-dessous.

Utilisez la même méthode pour ajouter les deux autres instances ou dupliquer la première instance en appuyant sur Commande-D. Utilisez le Outils de transformation pour les positionner comme indiqué ci-dessous.

14. Créer des collisionneurs

Avec l'allée principale en place, il est temps d'ajouter des collisionneurs au modèle pour nous aider à déplacer le ballon sur sa surface. Comme il s’agit d’un modèle complexe comportant de nombreux groupes et polygones, il nous faudrait beaucoup de temps pour identifier les différentes formes et ajouter un collisionneur à chacune d’elles. Pour faciliter cette étape, nous allons utiliser un script tiers pour créer automatiquement un collisionneur adapté à notre modèle..

Le script va ajouter un nouvel élément de menu nommé Magiciens dans le menu Unity. Sélectionnez le modèle auquel vous voulez ajouter le collisionneur et sélectionnez Ajouter des collisionneurs de maillage du Magiciens menu. Cela fera apparaître la fenêtre suivante.

Cliquez sur Ajouter des collisionneurs en bas à droite pour ajouter des collisionneurs au modèle. Cela va créer un Collisionneur pour chaque groupe ou objet du modèle. Vous pouvez le vérifier en développant le coup de coude modèle dans le Hiérarchie et en sélectionnant un article.

15. projecteurs

Nous avons ajouté une source de lumière à notre monde 3D, mais nous avons besoin d'un peu plus de lumière pour rendre la scène plus intéressante. Nous faisons cela en ajoutant un certain nombre de projecteurs.

Sélectionner Créer autre du GameObject menu et sélectionnez Projecteur. Cela créera un objet qui produit un faisceau de lumière dirigé vers un point. Le premier projecteur que nous ajoutons doit éclairer les trous. Changer son Transformer valeurs comme indiqué dans la capture d'écran suivante.

Ajouter un deuxième projecteur en utilisant les valeurs de transformation suivantes.

16. balle

La balle est l'élément le plus important du jeu. Le joueur utilisera l’écran tactile pour essayer d’obtenir le ballon dans l’un des trous..

La balle va être simple Sphère primitif. Sélectionner Créer autre> Sphère du GameObject menu pour créer la primitive et modifier le Transformer valeurs dans le Inspecteur comme indiqué ci-dessous.

Nous allons convertir le ballon en Préfabriqué plus tard, cela nous aidera à créer des instances dans le code. Mais d’abord, ajoutons un Corps rigide à cela.

17. Ball RigidBody

Pour détecter une collision avec le ballon, nous devons attacher un Corps rigide à cela. Pour en ajouter un, sélectionnez Ajouter un composant du Inspecteur panneau, suivi de La physique > Corps rigide. Vous pouvez laisser les paramètres à leurs valeurs par défaut.

18. Capteurs à bille

Nous devons détecter le moment où la balle tombe dans un trou. Nous allons utiliser Déclencheurs dans ce but. Un collisionneur de déclenchement est un objet physique qui détecte une collision avec un autre objet sans réagir physiquement. Cela nous aidera à détecter le moment où la balle entre dans le trou sans la faire rebondir..

Comme nous n’avons pas besoin d’un modèle réel ou d’un graphique 2D pour le faire, nous allons créer un GameObject vide. Sélectionner GameObject> Créer vide depuis la barre de menus pour le créer. Clique le Ajouter un composant bouton dans le Inspecteur et choisir Physique> Box Collider.

Cela va ajouter un collider de boîte à l'objet du jeu. Répétez cette procédure pour chaque trou et assurez-vous de vérifier la Déclencheur case à cocher.

Positionnez les collisionneurs comme indiqué dans la capture d'écran ci-dessous.

19. Tableau de bord

Pour afficher le tableau de bord du jeu, nous allons utiliser les textures graphiques de Unity. Par défaut, les images importées dans le Les atouts dossier sont convertis en Texture instances qui peuvent être appliquées à des objets 3D. Nous devons changer ces Texture des instances à Texture de l'interface graphique instances pour les images que nous voulons utiliser dans l'interface utilisateur du jeu.

Sélectionnez l'image que vous souhaitez convertir dans le Les atouts panneau et ouvrez le Inspecteur. Sélectionner Interface graphique du Type de texture menu.

Vous pouvez maintenant faire glisser l'image vers le Scène. L'image apparaîtra toujours devant chaque objet de la scène et sera traitée comme un élément 2D.

20. Texte du tableau de bord

Dans l'élément d'interface graphique du tableau d'affichage, nous afficherons des nombres indiquant le score du joueur et le nombre de balles qu'il a laissées..

Sélectionner Créer autre> Texte d'interface graphique du GameObject menu pour créer un objet texte, placez-le au centre de l’élément graphique et modifiez le texte dans Hiérarchie panneau à 00. Suivez le même processus pour le texte des balles pour compléter le tableau de bord.

21. Ajout de scripts

Il est temps d'écrire du code. Avec l'interface utilisateur en place, nous pouvons commencer à écrire le code nécessaire pour ajouter une interaction au jeu. Nous faisons cela au moyen de scripts, qui peuvent être attachés à des objets de jeu. Suivez les étapes suivantes pour apprendre à ajouter une interaction au niveau que nous venons de créer..

22. Classe ThrowBall

Étape 1: Déclaration de variables

Nous allons commencer par créer la classe qui gère la plupart des mécanismes de jeu. Sélectionnez la caméra principale, cliquez sur le bouton Ajouter un composant bouton dans le Inspecteur panneau, et choisissez Nouveau script. Nommez le script ThrowBall et n'oubliez pas de changer le langage en C #. Ouvrez le fichier nouvellement créé et ajoutez l'extrait de code suivant..

utiliser UnityEngine; using System.Collections; Classe publique ThrowBall: MonoBehaviour private Vector3 throwSpeed ​​= new Vector3 (0, 0, 1100); public GameObject ballReference; startPos Vector2 privé; EndPos Vector2 privé; Vector2 privé minDistance = nouveau Vector2 (0, 100); Vector3 ballPos privé = nouveau Vector3 (0, 0.38f, -11.41f); public bool ballOnStage = false; public int ballsLeft = 5; public GUIText ballsTextReference; public AudioClip throwSound;

Nous commençons par créer un certain nombre de variables que nous utiliserons dans le jeu. Jetons un coup d'oeil à chacun.

  • vitesse de projection: la vitesse initiale de la balle lorsqu'elle est placée sur l'allée
  • ballReference: une référence au préfabriqué de balle, placé dans l'inspecteur
  • startPos: position de départ du premier contact, utilisé pour détecter un geste de balayage
  • EndPos: position finale du toucher
  • minDistance: mouvement minimum nécessaire pour que le doigt soit considéré comme un balayage
  • ballPos: position initiale du ballon
  • ballOnStage: vrai quand une balle est actuellement dans l'allée, pour éviter plusieurs coups en même temps
  • ballesGauche: le nombre de balles restantes
  • ballsTextReference: référence au champ de texte balles, défini dans l'inspecteur
  • lancer son: référence au son joué lors du lancement de la balle, défini dans l'inspecteur

Étape 2: Détecter les contacts

L’extrait de code suivant montre le début de la Mettre à jour méthode. Cette méthode détecte si l'utilisateur touche l'écran.

void Update () if (Input.touchCount> 0) tactile tactile = Entrée.GetTouch (0);

Nous vérifions le touchCount propriété du Contribution classe pour obtenir le nombre actuel de contacts sur l’écran. Si touchCount est supérieur à 0, nous gardons une référence à la première Toucher objet. Nous utiliserons cet objet plus tard.

Étape 3: Détection d'un balayage

En référence à la Toucher objet, nous avons accès à ses phase propriété, ce qui nous aide à déterminer si le contact a commencé, s'est déplacé ou s'est terminé.

Parce que nous avons besoin d’un point de départ pour détecter un geste de balayage, nous devons avoir accès au point de départ du Toucher objet, auquel nous avons accès lorsque le Toucher objets phase est égal à TouchPhase.Began. La position de la Toucher objet est stocké dans son position propriété.

Nous avons accès au point final du geste en accédant à la Toucher objets position propriété lorsque son phase propriété est égale à TouchPhase.Fin.

if (touch.phase == TouchPhase.Began) startPos = touch.position;  if (touch.phase == TouchPhase.Ended) endPos = touch.position;  / * Comparer les positions * / if (endPos.y - startPos.y> = minDistance.y &&! BallOnStage && ballsLeft> 0) 

Maintenant que nous avons les coordonnées du début et de la fin du contact, nous pouvons calculer la distance et vérifier s’il s’agit d’un geste de balayage valide en le comparant à la valeur stockée dans le champ. minDistance objet.

Nous inspectons également la valeur de ballOnStage pour vérifier si une balle est déjà sur la scène et nous nous assurons que le joueur a assez de balles pour continuer à jouer. Le nombre de billes restantes est stocké dans le ballesGauche variable.

Étape 4: Détection de la zone d'écran

Des zones d'écran sont créées pour calculer la position horizontale de la balle lors de sa création. Nous faisons cela pour avoir le contrôle de la position du ballon et cela nous dit où le ballon va se terminer et éviter de le jeter en dehors des limites. Nous divisons l'écran en trois parties comme vous pouvez le voir ci-dessous.


Le calcul que nous utilisons est assez simple, comme vous pouvez le constater dans le bloc de code ci-dessous. Nous divisons l'écran en trois parties égales et vérifions quelle partie contient le toucher de l'utilisateur.

/ * Divise l'écran en 3 parties * / / * Gauche * / si (touch.position.x> = 0 && touch.position.x <= Screen.width / 3)  ballPos.x = Random.Range(-0.87f, -0.35f);  /* Center */ else if(touch.position.x > Screen.width / 3 && touch.position.x <= (Screen.width / 3) * 2)  ballPos.x = Random.Range(-0.35f, 0.22f);  /* Right */ else if(touch.position.x > (Largeur de l'écran / 3) * 2 && touch.position.x <= Screen.width)  ballPos.x = Random.Range(0.22f, 0.36f); 

Après avoir détecté la bonne zone d’écran, nous calculons une position aléatoire entre le début et la fin de la zone et attribuons cette position au ballPos variable.

Étape 5: Lancer la balle

Après avoir déterminé la position de départ de la balle, nous créons un nouveau GameObject exemple en utilisant le Instancier méthode, en passant dans le ballReference et ballPos les variables.

GameObject ball = Instantiate (ballReference, ballPos, transform.rotation) en tant que GameObject; ball.rigidbody.AddForce (throwSpeed);

Avec la balle sur la scène, nous ajoutons une force pour la faire passer dans la bonne allée. Nous faisons cela en invoquant le AddForce méthode sur la balle corps rigide propriété, en passant dans le vitesse de projection variable nous avons déclaré plus tôt.

Étape 6: Jouer un effet sonore

Nous jouons un effet sonore lorsque la balle est lancée dans la ruelle. La ligne de code suivante s’occupe de cela. Pour ce travail, n'oubliez pas de définir le lancer son variable dans le Inspecteur.

AudioSource.PlayClipAtPoint (throwSound, transform.position);

Étape 7: Réinitialisation des variables de balayage

Après avoir lancé la balle, nous devons réinitialiser les variables qui détectent les contacts du joueur. Si vous ne le faites pas, plusieurs balayages seront détectés. Nous avons également mis le ballOnStage variable à vrai, empêchant qu'une autre balle soit lancée en même temps.

endPos = nouveau Vector2 (0, 0); startPos = new Vector2 (0, 0); ballOnStage = true;

Ceci termine la ThrowBall classe. L'implémentation de la classe devrait ressembler à celle montrée ci-dessous.

utiliser UnityEngine; using System.Collections; Classe publique ThrowBall: MonoBehaviour private Vector3 throwSpeed ​​= new Vector3 (0, 0, 1100); public GameObject ballReference; startPos Vector2 privé; EndPos Vector2 privé; Vector2 privé minDistance = nouveau Vector2 (0, 100); Vector3 ballPos privé = nouveau Vector3 (0, 0.38f, -11.41f); public bool ballOnStage = false; public int ballsLeft = 5; public GUIText ballsTextReference; public AudioClip throwSound; void Update () if (Input.touchCount> 0) tactile tactile = Entrée.GetTouch (0); if (touch.phase == TouchPhase.Began) startPos = touch.position;  if (touch.phase == TouchPhase.Ended) endPos = touch.position;  / * Comparer les positions * / if (endPos.y - startPos.y> = minDistance.y &&! BallOnStage && ballsLeft> 0) / * Diviser l'écran en 3 parties * / / * Gauche * / if (touch.position. x> = 0 && touch.position.x <= Screen.width / 3)  ballPos.x = Random.Range(-0.87f, -0.35f);  /* Center */ else if(touch.position.x > Screen.width / 3 && touch.position.x <= (Screen.width / 3) * 2)  ballPos.x = Random.Range(-0.35f, 0.22f);  /* Right */ else if(touch.position.x > (Largeur de l'écran / 3) * 2 && touch.position.x <= Screen.width)  ballPos.x = Random.Range(0.22f, 0.36f);  GameObject ball = Instantiate(ballReference, ballPos, transform.rotation) as GameObject; ball.rigidbody.AddForce(throwSpeed); AudioSource.PlayClipAtPoint(throwSound, transform.position); endPos = new Vector2(0, 0); startPos = new Vector2(0, 0); ballOnStage = true;    

23. Classe BallSensor

Le script suivant contient la mise en oeuvre de la BallSensor classe et est attaché aux capteurs à billes, manipulant toutes les collisions avec les capteurs à billes.

Étape 1: Déclaration de variables

Nous commençons par déclarer une variable nommée sensorValue, qui stocke le nombre de points que le capteur de balle ajoutera au score. Comme les capteurs de bille sont tous les mêmes préfabriqués, nous déclarons cette variable comme Publique. Cela nous permettra de définir cette valeur dans l'éditeur à l'aide du Inspecteur.

utiliser UnityEngine; using System.Collections; public class BallSensor: MonoBehaviour public int sensorValue = 0; public GUIText scoreReference; public GameObject alertReference;

Les deux autres variables stockent des références aux objets de jeu de score et d’alerte, que nous avons également définies dans Inspecteur. Ces références seront utilisées pour augmenter le score et afficher l'alerte à la fin du jeu..

Étape 2: Détruire le ballon

le OnTriggerEnter méthode détecte le moment où une collision est survenue et accepte le Collisionneur objet avec lequel le capteur entre en collision, la balle dans ce cas. Lorsqu'une collision est détectée, la balle est détruite pour l'empêcher de rebondir et de potentiellement tomber dans un autre trou..

void OnTriggerEnter (Collider other) Destroy (other.gameObject);

Étape 3: Activer le lancer

Après avoir détruit le ballon, nous sommes sûrs que ce n’est plus dans l’allée. Cela signifie que nous pouvons lancer une autre balle sans provoquer de comportement indésirable. La ligne de code suivante communique avec le ThrowBall classe et obtient le ballOnStage variable, le mettre à faux.

Camera.main.GetComponent() .ballOnStage = false;

Regardons de plus près comment nous accédons à une variable déclarée dans une autre classe. Comme vous pouvez le constater, un moyen d'accéder à une variable ou à un objet déclaré en dehors de la classe actuelle consiste à définir une variable de référence à l'aide de Publique ou [SerializeField], et ensuite utiliser le Inspecteur pour lui donner une valeur.

le Publique le mot clé joue un rôle important à cet égard. Son utilisation rend la variable non seulement accessible à partir du Inspecteur, mais aussi par le code. Pour ce faire, nous devons d’abord avoir accès au GameObject qui a le Composant de script qui y est attaché, qui est le Caméra principale dans ce cas.

Il n'y a qu'une seule caméra dans ce jeu, ce qui facilite les choses. Nous pouvons obtenir une référence à la caméra principale à travers Camera.main. En utilisant GetComponent nous obtenons le script attaché à la caméra, en utilisant le nom de la classe. Nous avons ensuite accès à la variable publique nommée ballOnStage.

Étape 4: Changer le score

Le bloc de code suivant met à jour le score, en utilisant la référence déclarée précédemment.

scoreReference.text = (int.Parse (scoreReference.text) + sensorValue) .ToString ();

Nous convertissons la valeur stockée dans scoreRéférence à un entier et l'ajouter à la valeur stockée dans sensorValue. Nous convertissons le résultat en chaîne et l’affectons à la texte propriété de scoreRéférence.

Étape 5: Mise à jour des balles restantes

Dans cette étape, nous diminuons le nombre de balles restantes. Nous utilisons la méthode décrite dans Étape 3 accéder au ballesGauche et ballsTextReference variables de la ThrowBall classe.

Camera.main.GetComponent() .ballsLeft--; Camera.main.GetComponent() .ballsTextReference.text = Camera.main.GetComponent() .ballsLeft.ToString ();

Nous décrémentons la valeur stockée dans ballesGauche et mettre à jour le texte propriété de ballsTextReference.

Étape 6: Vérification de la fin de la partie

La partie est terminée lorsque le joueur manque de coups disponibles. Les prochaines lignes de code vérifient si le ballesGauche variable est égale à 0 et créer une alerte si vrai. Nous appelons ensuite le Invoquer méthode pour invoquer le Recharger méthode, qui redémarre le jeu en rechargeant la scène en cours.

Le deuxième paramètre de la Invoquer méthode définit le délai dans lequel le Recharger La méthode sera invoquée. Nous faisons cela pour donner au joueur un peu de temps avant de commencer une nouvelle partie..

 si (Camera.main.GetComponent() .ballsLeft == 0) Instantiate (alertReference, nouveau Vector3 (0.5f, 0.5f, 0), transformation.rotation); Invoke ("Recharger", 3); 

Étape 7: Recharger le jeu

Ceci est la dernière partie de la BallSensor classe. dans le Recharger méthode, nous appelons LoadLevel sur le Application classe et recharge le niveau actuel, réinitialisant chaque objet et variable à son état initial.

 void Reload () Application.LoadLevel (Application.loadedLevel); 

Voici à quoi ressemble la classe lorsque vous avez terminé.

utiliser UnityEngine; using System.Collections; public class BallSensor: MonoBehaviour public int sensorValue = 0; public GUIText scoreReference; public GameObject alertReference; void OnTriggerEnter (Collider other) Destroy (other.gameObject); Camera.main.GetComponent() .ballOnStage = false; scoreReference.text = (int.Parse (scoreReference.text) + sensorValue) .ToString (); Camera.main.GetComponent() .ballsLeft--; Camera.main.GetComponent() .ballsTextReference.text = Camera.main.GetComponent() .ballsLeft.ToString (); si (Camera.main.GetComponent() .ballsLeft == 0) Instantiate (alertReference, nouveau Vector3 (0.5f, 0.5f, 0), transformation.rotation); Invoke ("Recharger", 3);  void Reload () Application.LoadLevel (Application.loadedLevel); 

24. Test

Il est temps de tester le jeu. presse Commande-P jouer au jeu dans Unity. Si tout fonctionne comme prévu, alors vous êtes prêt pour les étapes finales.

25. Paramètres du joueur

Lorsque vous êtes satisfait de votre jeu, il est temps de sélectionner Paramètres de construction du Fichier menu et cliquez sur le Paramètres du joueur bouton. Cela devrait amener le Paramètres du joueur dans le Inspecteur panneau où vous pouvez définir les paramètres pour votre application.

Ces paramètres sont des données spécifiques à l'application, notamment le créateur ou la société, la résolution et le mode d'affichage de l'application, le mode de rendu (CPU, GPU), la compatibilité du système d'exploitation, etc. Configurez les paramètres en fonction des appareils ciblés et du magasin ou du marché où vous envisagez de publier l'application.

26. Icônes et images Splash

En utilisant les graphiques que vous avez créés précédemment, vous pouvez maintenant créer une jolie icône et une image de démarrage pour votre jeu. Unity vous indique les tailles requises, qui dépendent de la plate-forme pour laquelle vous construisez..

27. Construire et jouer


Une fois votre projet correctement configuré, il est temps de revenir sur la Paramètres de construction et cliquez sur le Construire Bouton. C'est tout ce dont vous avez besoin pour créer votre jeu à des fins de test et / ou de distribution..

Conclusion

Dans ce tutoriel, nous avons appris à utiliser les forces de la physique, les gestes de balayage, la communication en classe et d'autres aspects du développement de jeux dans Unity. Je vous encourage à expérimenter le résultat et à personnaliser le jeu pour qu'il soit le vôtre. J'espère que vous avez aimé ce tutoriel et que vous l'avez trouvé utile.