Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Avez-vous toujours voulu concevoir votre propre contrôleur de jeu? Il est plus facile que vous le pensez!

Pour ce projet, vous aurez besoin

  • Arduino ou un microcontrôleur similaire
  • 1 x résistance de 10K Ohm
  • 1 x interrupteur momentané
  • 1 x Potentiomètre
  • fils de branchement
  • Une planche à pain
  • moteur de jeu Unity
  • Le plugin Unity Uniduino Asset Store (30 $)
  • Code complet du projet. au cas où vous ne voulez pas l'écrire (ne comprend pas le plug-in Uniduino)

Vous pouvez faire votre contrôleur aussi compliqué que vous le souhaitez, mais pour cet exemple, nous allons mettre en place un potentiomètre et un bouton - parfait pour contrôler un jeu d'arcade simple.

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Assemblage du contrôleur

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Préparation de votre Arduino

Une fois que vous avez tout câblé, connectez votre Arduino via USB. Dans la tête du logiciel Arduino IDE Outils> Conseil et Outils> Port pour sélectionner le microcontrôleur et le port que vous utilisez. L'Arduino IDE est livré avec le croquis dont nous avons besoin, et vous pouvez le trouver sous Fichier> Exemples> Firmata> StandardFirmata. Cliquez sur Télécharger et vous serez prêt à partir.

Configuration de votre projet Unity

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Nous pouvons utiliser ce même panneau de test pour tester notre contrôleur. Set Pin D2 INPUT et numérique. Plus bas, réglez Pin A5 à ANALOG. Votre potentiomètre et le bouton doit afficher les valeurs à l'écran à côté de leurs numéros de broches maintenant. Le progrès!

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Maintenant, pour faire quelque chose que nous pouvons contrôler

Nous allons construire un jeu très basique dans lequel votre but est d'esquiver votre sphère à gauche et à droite pour éviter les cubes qui tombent, qui utilisera votre contrôleur personnalisé récemment fait.

Créer une nouvelle scène et faites glisser le bâtiment préfabriqué Uniduino des actifs> Uniduino> Préfabriqués dans votre hierachy et faites glisser le Uniduino dans la hiérarchie maison préfabriquée. Nous en avons besoin là pour faire parler entre notre jeu et le contrôleur.

Dans la hiérarchie de l'unité cliquez sur Créer> Sphère et utiliser Transformer onglet dans l'inspecteur pour le déplacer vers le bas de l'écran de jeu.

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Il est temps de codage

Maintenant, pour ajouter du code à ce parti. Avec la sphère sélectionnée dans la hiérarchie, cliquez sur Ajouter un composant> Nouveau script au bas de sa fenêtre Inspecteur. Nommez sphereMover et sélectionnez C de Sharp de menu déroulant. Cliquez sur Créer et Ajouter et le script sera ajouté à la gameobject. Double-cliquez dessus pour ouvrir le script et entrez ce code:

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Nous pouvons maintenant voir nos variables publiques dans la fenêtre Inspecteur. Voyons voir ce que nous pouvons entrer à ce stade pour nous aider plus tard. Nous savons ce que la broche de nous utilisons sur l'Arduino de notre version antérieure, nous pouvons les saisir. Nous savons aussi de notre expérience antérieure jusqu'où nous voulons que notre sphère pour pouvoir voyager gauche et à droite pour qu'il ne tombe pas hors de l'écran. Permet de saisir ces valeurs maintenant.

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Premiers signes de vie

Il est temps de voir réellement les valeurs de notre Arduino dans l'éditeur Unity. Pour l'instant, nous pouvons ajouter une ligne de code à notre fonction de mise à jour du script sphereMover et enregistrer à nouveau le script.

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Sélectionnez votre sphère dans la hiérarchie, puis cliquez sur le bouton Lecture en haut de l'écran. Le système a besoin de quelques secondes pour initialiser, après quoi vous devriez commencer à voir le changement de variable Pot Valeur dans l'inspecteur lorsque vous déplacez le potentiomètre.

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Maintenant, nous parlons! Eh bien, strictement parlant l'unité et l'Arduino parlent, mais qui compte? Si vous avez loin et ne sont pas voir le changement de valeur dans l'inspecteur, vérifier au cours des étapes de configuration, et assurez-vous que vous avez le bon port est sélectionné pour votre Arduino.

Déplaçons Cette sphère

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Nous voulons influer sur la position X de la sphère. Malheureusement, en utilisant les valeurs de notre potentiomètre directement ne fonctionnera pas, comme lorsque le potentiomètre est tout le chemin à gauche donne une valeur de 0 - ce qui mettrait notre sphère en plein milieu de l'écran. À l'autre extrême, haut valeur du potentiomètre, 1023, placerait le chemin de cube à droite de notre écran. Pas utile. Ce que nous avons besoin ici est un peu de maths.

Pourquoi faire des maths Quand l'unité va le faire pour vous?

Une méthode d'extension est un script qui fait pour nous un travail spécifique. Dans ce cas, nous lui donnons les valeurs que nous avons, et renvoie les mises en correspondance avec un autre un, prêt à être utilisé dans notre script sphereMover. En haut du panneau Projet, cliquez sur Créer> C # Script et nommez-ExtensionMethods. Entrez le code ci-dessous dans le script:

Enregistrez le script, et retourner à votre script sphereMover. Nous pouvons maintenant utiliser cette fonction Remap dans notre script ExtensionMethods dans notre fonction de mise à jour pour convertir nos valeurs du potentiomètre en valeurs utilisables dans notre jeu. Sous où nous vient d'assigner la variable potValue, tapez ce qui suit:

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

L'invite nous montre que notre Remap prend deux ensembles de valeurs en provenance et à, et les cartes ensemble. Nous pouvons entrer dans nos valeurs dans ce.

Enregistrez votre script, retournez à l'éditeur Unity, et appuyez sur le bouton de lecture. Vous devriez voir que les changements variables Pot mappées lorsque vous déplacez le potentiomètre, pour correspondre avec les valeurs que nous déterminés pour nos côtés gauche et droit. Prenez un moment pour vous asseoir et remercier votre script ExtensionMethods. Pas une calculatrice en vue.

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Maintenant, nous avons enfin des valeurs utilisables. Maintenant, tout ce qui reste à faire est d'attribuer ces valeurs à la position X de notre sphère:

Enregistrez votre script, retournez à l'éditeur Unity et le jeu de la presse. Vous devriez maintenant être en mesure de déplacer votre sphère à gauche et à droite en utilisant votre potentiomètre!

Mettre le bouton au travail

Maintenant que nous avons notre mouvement de la sphère, ne serait-il pas agréable d'avoir un moyen de ralentir un peu les choses quand nous dans un endroit serré? Nous allons utiliser notre bouton pour ralentir le temps dans notre jeu. Ouvrez votre script sphereMover et ajoutez ce code à votre fonction de mise à jour

Maintenant, nous avons la mécanique de notre jeu, nous allons ajouter quelques obstacles! Nous allons utiliser l'ennemi naturel de la sphère, le cube. Dans la hiérarchie, cliquez sur Créer> Objet 3D> Cube. Dans l'inspecteur du cube, Ajouter un composant> Physique> modèle du solide indéformable. Réglez la valeur de traînée du à 5. En outre modèle du solide indéformable, sous le composant collisionneur Box dans l'inspecteur, sélectionnez Trigger Is. Cela nous permettra de détecter les collisions avec notre sphère.

Créer un script sur le cube et l'appeler collideWithSphere. ouvrez le script et supprimer les fonctions de début et de mise à jour que nous ne serons pas besoin d'eux cette fois-ci. Entrez ce code:

OnTriggerEnter envoie un message chaque fois que le collisionneur de déclenchement frappe un autre collisionneur. Dans ce cas, nous disons à détruire tout ce qu'il touche. Enregistrez le script et retourner à l'éditeur Unity. Faites glisser le cube de la hiérarchie dans le panneau Projet. Vous remarquerez le texte du cube dans la hiérarchie est devenu bleu. En effet, nous avons créé un bâtiment préfabriqué et enregistré dans notre projet. Supprimer votre cube de la hiérarchie maintenant.

Tout nous avons besoin est maintenant un script pour reproduire les cubes. Dans la hiérarchie cliquez sur Créer> Créer un vide. et renommez-Manager de jeu dans l'inspecteur et ajouter un script qu'il a appelé gameManager. Ouvrez le script et ajoutez ce code:

Comment faire un contrôleur de jeu personnalisé avec Arduino et l'unité

Le projet fini

Maintenant, lorsque vous appuyez sur le jeu, les cubes engendreront ci-dessus vous et tomber. Vous pouvez utiliser votre potentiomètre pour les éviter, et votre bouton pour ralentir le temps.

Dans ce projet, nous avons créé un contrôleur personnalisé avec un Arduino, configuré l'unité et Uniduino pour communiquer avec lui, et a créé un jeu simple pour le tester. Les concepts ici peuvent être appliqués à presque tous les projets, et il y a même des confitures de jeu qui se spécialisent dans les contrôleurs personnalisés.

Avec Arduino et Unity vous pouvez créer un contrôleur personnalisé à partir de presque rien. Avez-vous créé un salut-fi qui contrôle un vaisseau spatial? Un grille-pain qui contrôle un jeu de plate-forme?

Articles Liés