Inhaltsverzeichnis:

Einfacher Unity-Controller - Gunook
Einfacher Unity-Controller - Gunook

Video: Einfacher Unity-Controller - Gunook

Video: Einfacher Unity-Controller - Gunook
Video: Unity Playmaker - 3rd Person Controller and New Input System 2024, Dezember
Anonim
Einfacher Unity-Controller
Einfacher Unity-Controller

Beschreibung

Dieses Projekt ist ein sehr einfacher Controller, der Unity beim Drücken von Tasten Eingaben geben kann. Ich habe ihn entworfen, um ein von mir erstelltes Spiel zu steuern, bei dem der Spieler nach links und rechts gehen kann. Natürlich können Sie es jederzeit für weitere Kontrollen anpassen. Es ist nicht erforderlich, zusätzliche Bibliotheken zu verwenden.

Schritt 1: Materialien

Benötigte Komponenten

  • -Arduino 2x Widerstand
  • -[~220 Ohm
  • -Drähte
  • -2x Tasten
  • -Breadboard

Schritt 2: Breadboarding

Brotbacken
Brotbacken

Ich begann damit, den Arduino GND-Port mit einem negativen (-) Pin auf der linken Seite des Steckbretts zu verbinden und die 5V mit einem positiven (+) auf der rechten Seite des Steckbretts zu verbinden.

Danach habe ich die Knöpfe an die Stelle gesetzt, an der ich das m haben wollte. Und verband sie mit den Drähten und Widerständen.

Schritt 3: Codieren des Arduino

Zuerst müssen Sie etwas Code schreiben, damit Ihr Arduino ausgeführt wird. Ich habe Kommentare in den Code eingefügt, die erklären, was es tut.

// Pins deklarieren, mit denen Schaltflächen verbunden sind.

const int buttonPin1 = 3; const int buttonPin2 = 4;

Void-Setup ()

{// Starten Sie die serielle Serial.begin (9600); // Konfigurieren Sie die Pins als Ausgabe. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

Leere Schleife ()

{ // Den Zustand der Schaltfläche lesen if (digitalRead (buttonPin1) == HIGH) { // diese Zeile drucken, wenn der Zustand HIGH ist. Serial.println ("Links"); Verzögerung (20); aufrechtzuerhalten. If (digitalRead (buttonPin2) == HIGH) {// diese Zeile drucken, wenn der Zustand HIGH ist. Serial.println ("Rechts"); Verzögerung (20); } }

Schritt 4: Einheit

Wenn Sie kein Spiel bereit haben, funktioniert dieser Code auf jedem Spielobjekt in Unity.

Wenn dies der Fall ist, benötigen Sie ein Spielobjekt, um sich zu bewegen.

Der Einfachheit halber erstellen wir einen Würfel, indem wir zu GameObject->3D-Objekt->Cube gehen

Sobald sich der Würfel in Ihrer Szene befindet, wählen Sie ihn aus und klicken Sie auf die Schaltfläche Komponente hinzufügen und erstellen Sie ein neues Skript.

Außerdem müssen Sie den API-Kompatibilitätsgrad ändern, damit die System. IO. Ports-Bibliothek funktioniert.

Gehen Sie dazu zu Bearbeiten->Projekteinstellungen->Player

Scrollen Sie in diesem Menü nach unten, bis Sie die Api-Kompatibilitätsstufe finden und wählen Sie. NET 2.0 anstelle von. Net 2.0-Teilmenge

Sie können jetzt mit der Codierung beginnen.

using System. Collections;using System. Collections. Generic; mit UnityEngine; Verwenden von System. IO. Ports;

Öffentliche Klasse PlayerMovement: MonoBehaviour

{ Geschwindigkeit des öffentlichen Schwimmers; Schwimmerbewegung;

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

void Start()

{ // Führen Sie den Code aus, um den seriellen Port OpenSerialPort () zu öffnen; }

void OpenSerialPort()

{ // Öffnen Sie den seriellen Port sp. Open (); sp. ReadTimeout = 1; }

Leere Bewegung (String-Richtung)

{ // Überprüfen Sie, welche Richtung das Arduino weitergegeben hat if (Direction == "Left") { Bewegung = -1; } if (Richtung == "Rechts") { Bewegung = 1; } // Berechnen Sie den Betrag, um den das Spielobjekt verschoben wird float translation = Bewegung * Geschwindigkeit; // Wende die Bewegung auf das Spielobjekt an transform. Translate(translation, 0, 0); }

void Update()

{ if (sp. IsOpen) { try { // während der serielle Port geöffnet ist, führen Sie die Bewegungsfunktion aus und übergeben Sie die Zeile, die der Arduino druckt Movement (sp. ReadLine ()); } catch (System. Exception) {

}

}

} }

Schritt 5: Abschließende Hinweise

Überprüfen Sie, ob Ihre Komponenten funktionieren

Ein Problem, auf das ich bei der Erstellung gestoßen bin, war, dass alle Drähte und der Code richtig waren und es sollte überhaupt kein Problem geben, aber es funktionierte nicht. In meinem Fall war es ein Draht, der nicht funktionierte, obwohl die Das gleiche kann mit einigen Ihrer anderen Komponenten passieren.

Empfohlen: