Table des matières:

Contrôleur Unity simple : 5 étapes
Contrôleur Unity simple : 5 étapes

Vidéo: Contrôleur Unity simple : 5 étapes

Vidéo: Contrôleur Unity simple : 5 étapes
Vidéo: 🕹️ Créer un Joystick Virtuel avec UNITY - Déplacement pour périphérique mobile. 2024, Décembre
Anonim
Contrôleur Unity simple
Contrôleur Unity simple

La description

Ce projet est un contrôleur très simple qui peut donner une entrée à Unity lorsque vous appuyez sur des boutons. Je l'ai conçu pour contrôler un jeu que j'ai créé où le joueur peut aller à gauche et à droite. Bien sûr, vous pouvez toujours l'ajuster pour plus de contrôles. Il n'est pas nécessaire d'utiliser des bibliothèques supplémentaires.

Étape 1: Matériaux

Composants nécessaires

  • -Arduino 2x résistance
  • -[~220 ohms
  • -Fils
  • -2x boutons
  • -Planche à pain

Étape 2: la planche à pain

Planche à pain
Planche à pain

J'ai commencé par connecter le port arduino GND à une broche négative (-) sur le côté gauche de la planche à pain et connecter le 5V à un positif (+) sur le côté droit de la planche à pain.

Après cela, j'ai mis les boutons à la place que je voulais que le mto soit. Et les a connectés à l'aide des fils et des résistances.

Étape 3: coder l'Arduino

Tout d'abord, vous devrez écrire du code pour que votre Arduino puisse exécuter. J'ai mis des commentaires dans le code qui expliquent ce qu'il fait.

//Déclare les broches auxquelles les boutons sont connectés.

const int boutonPin1 = 3; const int boutonPin2 = 4;

void setup()

{ //Démarrer la série Serial.begin(9600); //Configurez les broches en sortie. pinMode(boutonPin1, INPUT); pinMode(boutonPin2, INPUT); }

boucle vide()

{ //Lire l'état du bouton if(digitalRead(buttonPin1) == HIGH) { //imprimer cette ligne si l'état est HIGH. Serial.println("Gauche"); retard(20); } if(digitalRead(buttonPin2) == HIGH) { // imprime cette ligne si l'état est HIGH. Serial.println("Droite"); retard(20); } }

Étape 4: Unité

Si vous n'avez pas de jeu prêt, ce code fonctionnera sur n'importe quel gameobject dans unity.

si c'est le cas, vous aurez besoin d'un gameobject pour vous déplacer.

Par souci de simplicité, nous allons créer un cube en allant dans GameObject->3D Object->Cube

une fois le cube dans votre scène, sélectionnez-le et appuyez sur le bouton Ajouter un composant, et créez un nouveau script.

Vous devrez également modifier le niveau de compatibilité Api pour que la bibliothèque System. IO. Ports fonctionne.

Pour ce faire, allez dans Édition->Paramètres du projet->Lecteur

faites défiler vers le bas dans ce menu jusqu'à ce que vous trouviez le niveau de compatibilité Api et sélectionnez. NET 2.0 au lieu du sous-ensemble. Net 2.0

Vous êtes maintenant prêt à commencer à coder.

en utilisant System. Collections;en utilisant System. Collections. Generic; en utilisant UnityEngine; en utilisant System. IO. Ports;

Classe publique PlayerMovement: MonoBehaviour

{ vitesse du flotteur public; mouvement du flotteur;

SerialPort sp = nouveau SerialPort("COM3", 9600);

annuler le début()

{ // Exécutez le code pour ouvrir le port série OpenSerialPort(); }

void OpenSerialPort()

{ //Ouvre le port série sp. Open(); sp. ReadTimeout = 1; }

Mouvement vide (direction de la chaîne)

{ //Vérifiez dans quelle direction l'arduino a passé if (Direction == "Left") { movement = -1; } if (Direction == "Droite") { mouvement = 1; } //calculer la quantité par laquelle le gameobject sera déplacé float translation = mouvement * vitesse; //Appliquer le mouvement au gameobject transform. Translate(translation, 0, 0); }

annuler la mise à jour()

{ if (sp. IsOpen) { try { //pendant que le port série est ouvert, exécute la fonction de mouvement et passe la ligne que l'Arduino imprime Movement(sp. ReadLine()); } catch (System. Exception) {

}

}

} }

Étape 5: Notes finales

Vérifiez si vos composants fonctionnent

Un problème que j'ai rencontré lors de la création de ceci était que tous les fils et le code étaient corrects et qu'il ne devrait y avoir aucun problème, mais cela ne fonctionnait pas. Dans mon cas, c'était un fil qui ne fonctionnait pas, bien que le la même chose peut arriver avec certains de vos autres composants.

Conseillé: