Créez un jeu de réalité augmentée de style Pokémon GO avec Vuforia: partie 2

Ce que vous allez créer

Dans le dernier article de cette série, nous avons appris comment configurer Vuforia et commencer à développer un jeu AR à partir de zéro, en adoptant une logique similaire à celle utilisée sur Pokémon GO!

  • Créez un jeu de réalité augmentée de style Pokémon GO avec Vuforia

    Développement mobile
  • Réalité augmentée de style Pokémon GO avec Vuforia

  • Réalité augmentée de style Pokémon GO: marqueurs

Nous avons commencé le développement d’un jeu de réalité augmentée appelé Shoot the Cubes. Il est maintenant temps d’améliorer le jeu en ajoutant de l’interaction et en rendant l’expérience plus attrayante. Nous nous concentrerons principalement sur les possibilités que nous offre Unity, en laissant de côté les spécificités de Vuforia. Une expérience avec le moteur Unity n’est pas obligatoire.

1. Rendre les cubes vivants

Commençons à travailler sur notre jeu. Jusqu’à présent, nous avons réussi à créer une scène de réalité augmentée qui se déplace avec l’appareil de l’utilisateur. Nous améliorerons cette application en faisant apparaître et en vol les cubes, et en laissant le joueur les chercher et les détruire avec un tir laser.

1.1. Générer les éléments

Nous avons déjà défini une position initiale du _SpawnController selon la rotation de la caméra de l’appareil. Nous allons maintenant établir une zone autour de ce point où nos cubes vont apparaître. Nous allons maintenant mettre à jour le SpawnScript pour faire le _SpawnController instanciez les éléments de cube avec différentes tailles et positions aléatoires, par rapport au _SpawnController.

Modifions le SpawnScript class, en ajoutant quelques variables pour contrôler le processus de frai.

Nous allons créer une coroutine appelée SpawnLoop pour gérer le processus de spawn. Il sera également chargé de définir la position initiale du _SpawnController quand le jeu commence. Notez que le Random.insideUnitSphere provoque l’instanciation des cubes à des emplacements aléatoires dans une zone sphérique autour du _SpawnManager.

Enfin, modifiez le Start() fonction. Assurez-vous de retirer le StartCoroutine( ChangePosition() ); ligne et remplacez-la par un appel pour démarrer le SpawnLoop coroutine.

De retour dans Unity, vous devrez créer un préfabriqué de cube à instancier par le script.

  • Créez un dossier appelé Préfabriqués dans le Projet la fenêtre.
  • Changer la cube échelle des éléments sur tous les axes 1 et changez la rotation en sur tous les axes.
  • Faites glisser le cube à la Préfabriqués dossier.
  • Supprimer le cube du Hiérarchie la fenêtre.
  • Sélectionnez le _SpawnController et faites glisser le cube préfabriqué du Préfabriqués dossier vers le M Cube Obj terrain, situé dans le SpawnScript domaine de l’inspecteur.

Enfin, supprimez le Sphère situé à l’intérieur du _SpawnManager.

Maintenant, si vous appuyez sur lecture dans Unity et exécutez le projet sur l’appareil, vous devriez voir les cubes apparaître.

1.2. Cubes rotatifs

Nous devons ajouter du mouvement à ces cubes pour rendre les choses plus intéressantes. Faisons pivoter les cubes autour de leurs axes et sur ARCamera. Ce serait également cool d’ajouter un facteur aléatoire sur le mouvement du cube pour créer une sensation plus organique.


Faites glisser le cube Préfabriqué du Préfabriqués dossier à la hiérarchie.

  • Sur le Les scripts dossier créer un nouveau Script C # appelé CubeBehaviorScript.
  • Faites glisser le script vers le cube préfabriqué et ouvrez-le pour le modifier.

Chaque cube aura des caractéristiques aléatoires. La taille, la vitesse de rotation et le sens de rotation seront définis aléatoirement, en utilisant certaines références préalablement définies. Créons quelques variables de contrôleur et initialisons l’état du cube.

Il est maintenant temps d’ajouter du mouvement à notre cube. Faisons-le tourner autour de lui-même et autour du ARCamera, en utilisant la vitesse et la direction aléatoires définies précédemment.

Pour le rendre plus organique, le cube augmentera à partir de la taille zéro après sa création.

2. Recherche et destruction

Ces cubes sont trop heureux de voler comme ça. Nous devons les détruire avec des lasers! Créons une arme dans notre jeu et commençons à leur tirer dessus.

2.1. Tirer un laser

Le tir laser doit être connecté au ARCamera et sa rotation. Chaque fois que le joueur «touche» l’écran de l’appareil, un laser sera tiré. Nous utiliserons le Physics.Raycast classe pour vérifier si le laser a atteint la cible et si c’est le cas, nous en retirerons un peu de santé.

  • Créez un nouvel objet vide nommé _PlayerController et un autre objet vide appelé _LaserController à l’intérieur.
  • Ajouter un Script C # appelé LaserScript à l’intérieur de Les scripts dossier et faites-le glisser vers _LaserController.

À l’intérieur LaserScript, nous utiliserons un LineRenderer pour montrer le rayon laser, en utilisant un point d’origine connecté au bas du ARCamera. Pour obtenir le point d’origine du rayon laser, le canon du pistolet virtuel, nous allons obtenir la caméra Transform au moment où un laser est tiré et déplacez-le de 10 unités vers le bas.

Tout d’abord, créons quelques variables pour contrôler les paramètres du laser et obtenir mLaserLine.

La fonction responsable de la prise de vue est Fire(). Cela sera appelé chaque fois que le joueur appuie sur le bouton de tir. Remarquerez que Camera.main.transform est utilisé pour obtenir le ARCamera position et rotation et que le laser est positionné 10 unités en dessous. Cela positionne le laser au bas de la caméra.

Pour vérifier si la cible a été atteinte, nous utiliserons un Raycast.

Enfin, il est temps de vérifier si le bouton de tir a été enfoncé et d’appeler les effets laser lorsque le coup est tiré.

De retour dans Unity, nous devrons ajouter un LineRenderer composant au _LaserController objet.

  • Sélectionner _LaserController et dans le Inspecteur fenêtre, cliquez sur Ajouter un composant. Nomme le “Rendu de ligne“et sélectionnez le nouveau composant.
  • Créez un nouveau dossier appelé Matériaux, et créez un nouveau matériau à l’intérieur appelé Laser.
  • Sélectionnez le Laser matériau et changez-le en n’importe quelle couleur que vous aimez.
  • Sélectionnez le _LaserController et faites glisser le matériau Laser vers le Matériaux domaine de la LineRenderer composant.
  • Toujours dedans LineRenderer, sous Paramètres ensemble Commencer avec à 1 et Terminer par à .

Si vous testez le jeu maintenant, vous devriez voir un laser tiré depuis le bas de l’écran. N’hésitez pas à ajouter un Source audio composant avec un effet sonore laser pour _LaserController pour pimenter.

2.1. Frapper les cubes

Nos lasers doivent atteindre leurs cibles, infliger des dégâts et éventuellement détruire les cubes. Nous devrons ajouter un Corps rigide aux cubes, en leur appliquant une force et en les endommageant.

  • Traîne le cube prefab du dossier prefabs vers n’importe quel endroit du Étape.
  • Sélectionner le cube et sélectionnez Ajouter un composant dans le Inspecteur la fenêtre. Nommez le nouveau composant “Corps rigide“et sélectionnez-le.
  • Sur le Corps rigide ensemble de composants La gravité et Est cinématique à De.
  • Appliquez ces modifications au préfabriqué.

Modifions maintenant le CubeBehavior script pour créer une fonction chargée d’appliquer des dégâts au cube et une autre pour le détruire lorsque la santé tombe en dessous de 0.

D’accord, le cube peut maintenant subir des dégâts et être détruit. Modifions le LaserScript pour infliger des dégâts au cube. Tout ce que nous avons à faire est de changer le Fire() fonction pour appeler la Hit méthode de la CubeBehavior scénario.

3. Conclusion

Toutes nos félicitations! Notre jeu de réalité augmentée est terminé! Oui, le jeu pourrait être plus raffiné, mais les bases sont là et l’expérience globale est assez intéressante. Pour le rendre plus intéressant, vous pouvez ajouter une explosion de particules, comme je l’ai fait dans la vidéo, et en plus de cela, vous pouvez ajouter un système de score ou même un système d’ondes avec une minuterie pour en faire plus un défi. Les prochaines étapes sont à vous!

3.1. Et après?

Nous avons créé une expérience AR intéressante en utilisant Vuforia sur Unity, mais nous avons encore beaucoup de fonctionnalités intéressantes à couvrir. Nous n’avons vu aucune des ressources Vuforia les plus sophistiquées: cibles, Smart Terrain, Cloud, etc. Restez à l’écoute pour les prochains didacticiels, où nous couvrirons davantage de ces fonctionnalités, en utilisant toujours la même approche étape par étape.

À bientôt!

En relation :  Samsung annonce une tablette robuste Galaxy Tab Active3 avec une batterie surprise
Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.