Turinys:

Paprastas „Unity“valdiklis: 5 žingsniai
Paprastas „Unity“valdiklis: 5 žingsniai

Video: Paprastas „Unity“valdiklis: 5 žingsniai

Video: Paprastas „Unity“valdiklis: 5 žingsniai
Video: Leap Motion SDK 2024, Lapkritis
Anonim
Paprastas „Unity“valdiklis
Paprastas „Unity“valdiklis

apibūdinimas

Šis projektas yra labai paprastas valdiklis, kuris gali įvesti „Unity“, kai paspaudęs mano sukurtus mygtukus valdo mano sukurtą žaidimą, kuriame žaidėjas gali eiti kairėn ir dešinėn. Žinoma, jūs visada galite jį koreguoti, kad gautumėte daugiau valdymo. Nereikia naudoti jokių papildomų bibliotekų.

1 žingsnis: medžiagos

Reikalingi komponentai

  • -Arduino 2x rezistorius
  • -[~ 220 omų
  • -Laidai
  • -2x mygtukai
  • -Bandomoji Lenta

2 žingsnis: „Breadboarding“

Breadboarding
Breadboarding

Pradėjau prijungdamas „arduino“GND prievadą prie neigiamo (-) kaiščio, esančio kairėje duonos lentos pusėje, ir prijungdamas 5 V prie teigiamo (+) dešinėje lentos pusėje.

Po to mygtukus įdėjau į norimą vietą. Ir prijungė juos naudodami laidus ir rezistorius.

3 žingsnis: „Arduino“kodavimas

Pirmiausia turėsite parašyti tam tikrą kodą, kad galėtumėte paleisti „Arduino“. Į kodą įdedu komentarus, paaiškinančius, ką jis daro.

// Deklaruoti kaiščius, prie kurių yra prijungti mygtukai.

const int mygtukasPin1 = 3; const int mygtukasPin2 = 4;

negaliojanti sąranka ()

{// Paleiskite seriją Serial.begin (9600); // Konfigūruokite kaiščius kaip išvestį. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

tuštumos kilpa ()

{// Skaitykite mygtuko būseną, jei (digitalRead (buttonPin1) == HIGH) {// spausdinkite šią eilutę, jei būsena yra HIGH. Serial.println („Kairė“); vėlavimas (20); } if (digitalRead (buttonPin2) == HIGH) {// spausdinti šią eilutę, jei būsena yra HIGH. Serial.println („Teisingai“); vėlavimas (20); }}

4 žingsnis: vienybė

Jei neturite paruošto žaidimo, šis kodas veiks vieningai bet kuriame žaidimo objekte.

tokiu atveju jums reikės žaidimo objekto, kurį norite perkelti.

Paprastumo dėlei mes sukursime kubą eidami į „GameObject-> 3D Object-> Cube“

kai kubas yra jūsų scenoje, pasirinkite jį ir paspauskite mygtuką Pridėti komponentą ir sukurkite naują scenarijų.

Taip pat turėsite pakeisti „Api“suderinamumo lygį, kad „System. IO. Ports“biblioteka veiktų.

Norėdami tai padaryti, eikite į Redaguoti-> Projekto nustatymai-> Leistuvas

slinkite žemyn šiame meniu, kol rasite Api suderinamumo lygį ir pasirinkite. NET 2.0, o ne. Net 2.0 pogrupį

Dabar esate pasiruošę pradėti koduoti.

naudojant System. Collections; naudojant System. Collections. Generic; naudojant „UnityEngine“; naudojant System. IO. Ports;

viešosios klasės „PlayerMovement“: „MonoBehaviour“

{viešasis plūdės greitis; plūdės judėjimas;

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

negaliojanti pradžia ()

{// Paleiskite kodą, kad atidarytumėte nuoseklųjį prievadą OpenSerialPort (); }

negaliojantis „OpenSerialPort“()

{// Atidarykite nuoseklųjį prievadą sp. Open (); sp. ReadTimeout = 1; }

tuščias judėjimas (eilutės kryptis)

{// Patikrinkite, kokia kryptimi arduino perdavė, jei (Direction == "Left") {motion = -1; } if (kryptis == "dešinė") {judėjimas = 1; } // apskaičiuoti sumą, kuria bus perkeltas žaidimo objektas float translation = judėjimas * greitis; // Taikyti judesį žaidimo objekto transformacijai. Versti (vertimas, 0, 0); }

negaliojantis atnaujinimas ()

{if (sp. IsOpen) {try {// kai serijinis prievadas yra atviras, vykdykite judėjimo funkciją ir praleiskite eilutę, kurią „Arduino“spausdina Judėjimas (sp. ReadLine ()); } sugavimas (System. Exception) {

}

}

} }

5 žingsnis: paskutinės pastabos

Patikrinkite, ar jūsų komponentai veikia

Kuriant šią problemą susidūriau su tuo, kad visi laidai ir kodas buvo teisingi, ir jokių problemų neturėtų kilti, bet tai neveikė. Mano atveju tai buvo laidas, kuris neveikia, nors tas pats gali atsitikti su kai kuriais kitais jūsų komponentais.

Rekomenduojamas: