Sisällysluettelo:

Yksinkertainen Unity -ohjain: 5 vaihetta
Yksinkertainen Unity -ohjain: 5 vaihetta

Video: Yksinkertainen Unity -ohjain: 5 vaihetta

Video: Yksinkertainen Unity -ohjain: 5 vaihetta
Video: Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! 2024, Marraskuu
Anonim
Yksinkertainen Unity -ohjain
Yksinkertainen Unity -ohjain

Kuvaus

Tämä projekti on hyvin yksinkertainen ohjain, joka voi antaa panoksen Unityyn painettaessa painikkeita, jotka olen suunnitellut ohjaamaan tekemääni peliä, jossa pelaaja voi siirtyä vasemmalle ja oikealle. Voit tietysti aina säätää sitä lisää säätöjä varten. Ylimääräisiä kirjastoja ei tarvitse käyttää.

Vaihe 1: Materiaalit

Tarvittavat komponentit

  • -Arduino 2x vastus
  • -[~ 220 ohmia
  • -Johdot
  • -2x nappia
  • -Leipälauta

Vaihe 2: Breadboarding

Leipälautailu
Leipälautailu

Aloitin kytkemällä arduino GND -portin negatiiviseen (-) nastaan leipälevyn vasemmalla puolella ja kytkemällä 5V positiiviseen (+) leipälevyn oikealle puolelle.

Sen jälkeen laitoin painikkeet haluamaani paikkaan. Ja liitti ne johtojen ja vastusten avulla.

Vaihe 3: Arduinon koodaus

Ensinnäkin sinun on kirjoitettava koodi Arduinoa varten. Laitoin koodiin kommentteja, jotka selittävät, mitä se tekee.

// Ilmoita nastat, joihin painikkeet on kytketty.

const int -painikePin1 = 3; const int -painikePin2 = 4;

mitätön asennus ()

{// Käynnistä sarja Serial.begin (9600); // Määritä nastat lähtöksi. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

tyhjä silmukka ()

{// Lue painikkeen tila, jos (digitalRead (buttonPin1) == HIGH) {// tulosta tämä rivi, jos tila on HIGH. Serial.println ("Vasen"); viive (20); } if (digitalRead (buttonPin2) == HIGH) {// tulosta tämä rivi, jos tila on HIGH. Serial.println ("Oikea"); viive (20); }}

Vaihe 4: Yhtenäisyys

Jos sinulla ei ole peliä valmiina, tämä koodi toimii kaikissa peliobjekteissa yhtenäisesti.

tässä tapauksessa tarvitset peliobjektin siirtyäksesi.

Yksinkertaisuuden vuoksi luomme kuution siirtymällä kohtaan GameObject-> 3D Object-> Cube

Kun kuutio on kohtauksessasi, valitse se ja paina Lisää komponentti -painiketta ja luo uusi komentosarja.

Sinun on myös muutettava Api -yhteensopivuustasoa, jotta System. IO. Ports -kirjasto toimii.

Voit tehdä tämän valitsemalla Muokkaa-> Projektiasetukset-> Pelaaja

vieritä alas tässä valikossa, kunnes löydät Api -yhteensopivuustason, ja valitse. NET 2.0. Net 2.0 -joukon sijaan

Olet nyt valmis aloittamaan koodauksen.

käyttämällä System. Collectionsia; käyttämällä System. Collections. Generic; käyttämällä UnityEngineä; käyttämällä System. IO. Portsia;

julkisen luokan PlayerMovement: MonoBehaviour

{julkinen kelluntanopeus; kelluva liike;

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

mitätön alku ()

{// Avaa sarjaportti suorittamalla koodi OpenSerialPort (); }

mitätön OpenSerialPort ()

{// Avaa sarjaportti sp. Open (); sp. ReadTimeout = 1; }

mitätön liike (merkkijonon suunta)

{// Tarkista, mihin suuntaan arduino on siirtynyt, jos (suunta == "Vasen") {liike = -1; } jos (suunta == "oikea") {liike = 1; } // laskea määrä, jolla peliobjekti siirretään float translation = liike * nopeus; // Käytä liikettä gameobject -muunnokseen. Translate (käännös, 0, 0); }

mitätön päivitys ()

{if (sp. IsOpen) {try {// kun sarjaportti on auki, suorita liiketoiminto ja ohita rivi, jonka Arduino tulostaa liikkeen (sp. ReadLine ()); } saalis (System. Exception) {

}

}

} }

Vaihe 5: Viimeiset huomautukset

Tarkista, toimivatko komponentit

Ongelma, jonka kohtasin tämän luomisen aikana, oli se, että kaikki johdot ja koodi olivat oikein, eikä ongelmia pitäisi olla ollenkaan, mutta se ei toiminut, mutta tapauksessani se oli lanka, joka ei toiminut, vaikka sama voi tapahtua joidenkin muiden komponenttien kanssa.

Suositeltava: