Kazalo:

Enostaven krmilnik Unity: 5 korakov
Enostaven krmilnik Unity: 5 korakov

Video: Enostaven krmilnik Unity: 5 korakov

Video: Enostaven krmilnik Unity: 5 korakov
Video: 🚀 RUTUBE и ТОЧКА. Разработка РУТУБА за 5 часов *БЕЗ ВОДЫ* [Next / React / Nest / PostgreSQL / Redux] 2024, November
Anonim
Preprost krmilnik Unity
Preprost krmilnik Unity

Opis

Ta projekt je zelo preprost krmilnik, ki lahko vnese Unity, ko pritisnem gumbe, ki sem jih oblikoval za nadzor nad igro, ki sem jo naredil, kjer lahko igralec gre levo in desno. Seveda ga lahko vedno prilagodite za več kontrol. Dodatnih knjižnic ni treba uporabljati.

1. korak: Materiali

Potrebne komponente

  • -Arduino 2x upor
  • -[~ 220 ohm
  • -Žice
  • -2x gumbi
  • -lesena deska

Korak: Breadboarding

Breadboarding
Breadboarding

Začel sem tako, da sem priključil vrata arduino GND na negativni (-) zatič na levi strani plošče in priključil 5V na pozitivni (+) na desni strani plošče.

Po tem sem gumbe postavil na mesto, kjer bi želel biti mto. In jih povezali z žicami in upori.

3. korak: Kodiranje Arduina

Najprej boste morali napisati kodo za zagon Arduina. V kodo vnesem komentarje, ki pojasnjujejo, kaj počne.

// Razglasi zatiče, na katere so povezani gumbi.

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

void setup ()

{// Zaženite serijski Serial.begin (9600); // Konfigurirajte zatiče kot izhodne. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

void loop ()

{// Preberite stanje gumba if (digitalRead (buttonPin1) == HIGH) {// natisnite to vrstico, če je stanje HIGH. Serial.println ("Levo"); zamuda (20); } if (digitalRead (buttonPin2) == HIGH) {// natisni to vrstico, če je stanje HIGH. Serial.println ("Desno"); zamuda (20); }}

4. korak: enotnost

Če nimate pripravljene igre, bo ta koda enotno delovala na vseh igrah.

v tem primeru boste za premikanje potrebovali predmet igre.

Zaradi preprostosti bomo kocko ustvarili tako, da odpremo GameObject-> 3D Object-> Cube

ko je kocka v vašem prizoru, jo izberite in pritisnite gumb Dodaj komponento ter ustvarite nov skript.

Prav tako boste morali spremeniti raven združljivosti Api, da bo knjižnica System. IO. Ports delovala.

To storite tako, da odprete Edit-> Project Settings-> Player

se pomaknite navzdol v tem meniju, dokler ne najdete ravni združljivosti Api in izberite. NET 2.0 namesto. Net 2.0

Zdaj ste pripravljeni na začetek kodiranja.

z uporabo System. Collections; z uporabo System. Collections. Generic; z uporabo UnityEngine; z uporabo System. IO. Ports;

javni razred PlayerMovement: MonoBehaviour

{public float speed; plavajoče gibanje;

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

void Start ()

{// Zaženite kodo, da odprete serijska vrata OpenSerialPort (); }

void OpenSerialPort ()

{// Odprite serijska vrata sp. Open (); sp. ReadTimeout = 1; }

void gibanje (smer smeri)

{// Preverite, v katero smer je šel arduino if (Direction == "Left") {motion = -1; } if (Smer == "Desno") {gibanje = 1; } // izračunamo znesek, za katerega se bo igralni predmet premaknil float translation = gibanje * hitrost; // Uporabi gibanje za transformacijo igralnega predmeta. Prevod (prevod, 0, 0); }

void Update ()

{if (sp. IsOpen) {try {// ko je serijsko vrata odprto move, izvedite funkcijo premikanja in prenesite vrstico, ki jo Arduino tiska Movement (sp. ReadLine ()); } catch (System. Exception) {

}

}

} }

5. korak: Končne opombe

Preverite, ali komponente delujejo

Težava, s katero sem se srečal med ustvarjanjem tega, je bila, da so bile vse žice in koda pravilne in sploh ne bi smelo biti težav, vendar ni delovalo. V mojem primeru je bila to žica, ki ni delovala, čeprav enako se lahko zgodi z nekaterimi drugimi komponentami.

Priporočena: