Obsah:

Jednoduchý ovladač Unity: 5 kroků
Jednoduchý ovladač Unity: 5 kroků

Video: Jednoduchý ovladač Unity: 5 kroků

Video: Jednoduchý ovladač Unity: 5 kroků
Video: Tvorba hry v Unity 5 pt.4 Základní Tvorba Modelů 2024, Červenec
Anonim
Jednoduchý ovladač Unity
Jednoduchý ovladač Unity

Popis

Tento projekt je velmi jednoduchý ovladač, který může dávat vstup do Unity po stisknutí tlačítek. Navrhl jsem jej k ovládání hry, kterou jsem vytvořil, kde hráč může jít doleva a doprava. Samozřejmě můžete vždy upravit pro více ovládacích prvků. Není třeba používat žádné další knihovny.

Krok 1: Materiály

Potřebné součásti

  • -Arduino 2x odpor
  • -[~ 220 ohmů
  • -Dráty
  • -2x tlačítka
  • -prkénko

Krok 2: Breadboarding

Breadboarding
Breadboarding

Začal jsem připojením arduino GND portu k zápornému (-) pinu na levé straně prkénka a připojením 5V k kladnému (+) na pravé straně prkénka.

Poté jsem dal tlačítka na místo, kde jsem chtěl mto být. A spojil je pomocí vodičů a rezistorů.

Krok 3: Kódování Arduina

Nejprve budete muset napsat nějaký kód, který vám Arduino spustí. Vložil jsem do kódu komentáře, které vysvětlují, co dělá.

// Deklarujte piny, ke kterým jsou připojena tlačítka.

tlačítko const intPin1 = 3; tlačítko const int Pin2 = 4;

neplatné nastavení ()

{// Spusťte seriál Serial.begin (9600); // Konfigurujte piny jako výstup. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

prázdná smyčka ()

{// Přečíst stav tlačítka if (digitalRead (buttonPin1) == HIGH) {// vytisknout tento řádek, pokud je stav HIGH. Serial.println ("vlevo"); zpoždění (20); } if (digitalRead (buttonPin2) == HIGH) {// vytiskne tento řádek, pokud je stav HIGH. Serial.println („Právo“); zpoždění (20); }}

Krok 4: Jednota

Pokud nemáte připravenou hru, bude tento kód fungovat na jakémkoli herním objektu v jednotě.

v takovém případě budete k pohybu potřebovat herní objekt.

Kvůli jednoduchosti vytvoříme krychli tak, že přejdeme na GameObject-> 3D objekt-> Kostka

jakmile je kostka ve vaší scéně, vyberte ji, stiskněte tlačítko Přidat komponentu a vytvořte nový skript.

Aby knihovna System. IO. Ports fungovala, budete také muset změnit úroveň kompatibility Api.

Chcete-li to provést, přejděte do nabídky Upravit-> Nastavení projektu-> Přehrávač

v této nabídce přejděte dolů, dokud nenajdete úroveň kompatibility Api, a místo podmnožiny. NET 2.0 vyberte. NET 2.0

Nyní jste připraveni začít s kódováním.

pomocí System. Collections; pomocí System. Collections. Generic; pomocí UnityEngine; pomocí System. IO. Ports;

veřejná třída PlayerMovement: MonoBehaviour

{public float speed; pohyb plováku;

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

neplatný začátek ()

{// Spuštěním kódu otevřete sériový port OpenSerialPort (); }

zrušit OpenSerialPort ()

{// Otevřete sériový port sp. Open (); sp. ReadTimeout = 1; }

neplatný pohyb (směr řetězce)

{// Zkontrolujte, jakým směrem arduino prošlo, pokud (Směr == "Vlevo") {pohyb = -1; } if (Směr == "Vpravo") {pohyb = 1; } // vypočítat částku, o kterou se bude herní objekt pohybovat float translation = pohyb * rychlost; // Použití pohybu na transformaci gameobject. Translate (překlad, 0, 0); }

zrušit aktualizaci ()

{if (sp. IsOpen) {zkuste {// když je sériový port otevřený, pohyb proveďte funkci pohybu a předejte řádek, který Arduino tiskne Pohyb (sp. ReadLine ()); } catch (System. Exception) {

}

}

} }

Krok 5: Závěrečné poznámky

Zkontrolujte, zda vaše součásti fungují

Při vytváření tohoto problému jsem narazil na to, že všechny vodiče a kód byly správné a neměl by být žádný problém, ale nefungoval. V mém případě to byl drát, který nefungoval, ačkoli totéž se může stát s některými z vašich dalších komponent.

Doporučuje: