Sisukord:

Lihtne Unity kontroller: 5 sammu
Lihtne Unity kontroller: 5 sammu

Video: Lihtne Unity kontroller: 5 sammu

Video: Lihtne Unity kontroller: 5 sammu
Video: Делаем игру на Unity 5 - #10. Пишем контроллер. Часть 1 2024, Juuli
Anonim
Lihtne Unity kontroller
Lihtne Unity kontroller

Kirjeldus

See projekt on väga lihtne kontroller, mis saab Unityle sisendi anda, kui vajutasin nuppe, mille kujundasin, et juhtida minu tehtud mängu, kus mängija saab vasakule ja paremale liikuda. Loomulikult saate seda alati reguleerida, et saada rohkem juhtnuppe. Täiendavaid raamatukogusid pole vaja kasutada.

Samm: materjalid

Vajalikud komponendid

  • -Arduino 2x takisti
  • -[~ 220 oomi
  • -Traadid
  • -2x nupud
  • -Leivalaud

2. samm: leivalaud

Leivalaud
Leivalaud

Alustasin sellega, et ühendasin arduino GND pordi leivaplaadi vasakul küljel oleva negatiivse (-) tihvtiga ja ühendasin 5V leivalaua paremal küljel positiivse (+) külge.

Pärast seda panin nupud sinna kohta, kus ma tahtsin olla. Ja ühendas need juhtmete ja takistitega.

Samm: Arduino kodeerimine

Kõigepealt peate Arduino käivitamiseks kirjutama koodi. Panen koodi sisse kommentaarid, mis selgitavad, mida see teeb.

// Deklareeri nööpnõelad, millega nupud on ühendatud.

const int nuppPin1 = 3; const int nuppPin2 = 4;

tühine seadistus ()

{// Käivitage seeria Serial.begin (9600); // Tihvtide seadistamine väljundiks. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

tühine tsükkel ()

{// Loe nupu olekut, kui (digitalRead (buttonPin1) == HIGH) {// prindi see rida, kui olek on HIGH. Serial.println ("Vasak"); viivitus (20); } if (digitalRead (buttonPin2) == HIGH) {// prindi see rida, kui olek on HIGH. Serial.println ("Õige"); viivitus (20); }}

4. samm: ühtsus

Kui teil pole mängu valmis, töötab see kood ühtselt mis tahes mänguobjektiga.

sel juhul vajate liikumiseks mänguobjekti.

Lihtsuse huvides loome kuubi, minnes GameObject-> 3D Object-> Cube

kui kuup on teie stseenis, valige see ja vajutage nuppu Lisa komponent ning looge uus skript.

Samuti peate teeki System. IO. Ports töötamiseks muutma Api ühilduvuse taset.

Selleks minge menüüsse Redigeerimine-> Projekti seaded-> Mängija

kerige selles menüüs alla, kuni leiate Api ühilduvuse taseme, ja valige. NET 2.0 alamhulga asemel. NET 2.0

Nüüd olete valmis kodeerimist alustama.

kasutades System. Collections; kasutades System. Collections. Generic; UnityEngine'i kasutamine; kasutades System. IO. Ports;

avaliku klassi PlayerMovement: MonoBehaviour

{avalik ujuki kiirus; ujuki liikumine;

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

tühine algus ()

{// Käivitage kood jadapordi avamiseks OpenSerialPort (); }

tühine OpenSerialPort ()

{// Ava jadaport sp. Open (); sp. ReadTimeout = 1; }

tühine liikumine (stringi suund)

{// Kontrollige, mis suunas on arduino edasi andnud, kui (Direction == "Left") {motion = -1; } kui (Suund == "Õige") {liikumine = 1; } // arvutada summa, mille võrra mänguobjekti liigutatakse, float translation = liikumine * kiirus; // Rakenda liikumine gameobjecti teisendusele. Tõlgi (tõlge, 0, 0); }

tühine värskendus ()

{if (sp. IsOpen) {try {// kui jadaport on avatud, käivitage liikumisfunktsioon ja jätke rida, mida Arduino prindib Movement (sp. ReadLine ()); } saak (System. Exception) {

}

}

} }

5. samm: viimased märkmed

Kontrollige, kas teie komponendid töötavad

Selle loomisel tekkis probleem, et kõik juhtmed ja kood olid õiged ja probleeme ei tohiks üldse olla, kuid see ei töötanud. Minu puhul oli see traat, mis ei töötanud, kuigi sama võib juhtuda ka mõne teise komponendiga.

Soovitan: