Innehållsförteckning:

Simple Unity Controller: 5 steg
Simple Unity Controller: 5 steg

Video: Simple Unity Controller: 5 steg

Video: Simple Unity Controller: 5 steg
Video: A Sneaky Trick Most FPS Games Use 2024, Juli
Anonim
Enkel enhetskontroller
Enkel enhetskontroller

Beskrivning

Detta projekt är en mycket enkel styrenhet som kan ge input till Unity när jag trycker på knappar jag utformade den för att styra ett spel jag gjorde där spelaren kan gå vänster och höger. Naturligtvis kan du alltid justera det för fler kontroller. Det finns inget behov av att använda några extra bibliotek.

Steg 1: Material

Komponenter behövs

  • -Arduino 2x motstånd
  • -[~ 220 Ohm
  • -Ledningar
  • -2x knappar
  • -Bakbord

Steg 2: Breadboarding

Breadboarding
Breadboarding

Jag började med att ansluta arduino GND-porten till en negativ (-) stift på vänstra sidan av brödbrädet och ansluta 5V till en positiv (+) på höger sida av brödbrädet.

Efter det satte jag knapparna på det ställe jag ville ha mto. Och kopplade dem med trådarna och motstånden.

Steg 3: Kodning av Arduino

Först och främst måste du skriva lite kod för att du ska kunna köra Arduino. Jag lägger kommentarer i koden som förklarar vad den gör.

// Ange stift som knapparna är anslutna till.

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

void setup ()

{// Starta serien Serial.begin (9600); // Konfigurera stiften som utdata. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

void loop ()

{// Läs läget för knappen om (digitalRead (buttonPin1) == HIGH) {// skriv ut den här raden om tillståndet är HIGH. Serial.println ("vänster"); fördröjning (20); } if (digitalRead (buttonPin2) == HIGH) {// skriv ut den här raden om tillståndet är HIGH. Serial.println ("Höger"); fördröjning (20); }}

Steg 4: Enhet

Om du inte har ett spel redo fungerar den här koden för alla spelobjekt i enhet.

om så är fallet behöver du ett spelobjekt för att flytta.

För enkelhetens skull skapar vi en kub genom att gå till GameObject-> 3D Object-> Cube

när kuben är i din scen väljer du den och trycker på knappen Lägg till komponent och skapar ett nytt skript.

Du måste också ändra Api -kompatibilitetsnivån för att System. IO. Ports -biblioteket ska fungera.

För att göra detta, gå till Redigera-> Projektinställningar-> Spelare

bläddra ner i den här menyn tills du hittar Api -kompatibilitetsnivån och välj. NET 2.0 istället för. Net 2.0 -delmängden

Du är nu redo att börja koda.

använder System. Collections; använder System. Collections. Generic; använder UnityEngine; använder System. IO. Ports;

public class PlayerMovement: MonoBehaviour

{offentlig flythastighet; flottörrörelse;

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

ogiltig start ()

{// Kör koden för att öppna den seriella porten OpenSerialPort (); }

void OpenSerialPort ()

{// Öppna den seriella porten sp. Open (); sp. ReadTimeout = 1; }

tomrumsrörelse (strängriktning)

{// Kontrollera vilken riktning arduino har gått vidare om (Riktning == "Vänster") {rörelse = -1; } if (Riktning == "Höger") {rörelse = 1; } // beräkna hur mycket spelobjektet ska flyttas float translation = rörelse * hastighet; // Applicera rörelsen på gameobject transform. Translate (translation, 0, 0); }

ogiltig uppdatering ()

{if (sp. IsOpen) {try {// medan serieporten är öppen flytta kör rörelsefunktionen och passera linjen som Arduino skriver ut Movement (sp. ReadLine ()); } catch (System. Exception) {

}

}

} }

Steg 5: Slutanteckningar

Kontrollera om dina komponenter fungerar

Ett problem som jag stötte på under skapandet av detta var att alla ledningar och kod var rätt och det borde inte vara några problem alls, men det fungerade inte. I mitt fall var det en tråd som inte fungerade, även om samma kan hända med några av dina andra komponenter.

Rekommenderad: