Tartalomjegyzék:

Egyszerű Unity vezérlő: 5 lépés
Egyszerű Unity vezérlő: 5 lépés

Videó: Egyszerű Unity vezérlő: 5 lépés

Videó: Egyszerű Unity vezérlő: 5 lépés
Videó: Tervezési segédlet 8. lépés: A vezérlőautomatika kiválasztása és a vezérlőkábel méretezése 2024, Július
Anonim
Egyszerű Unity Controller
Egyszerű Unity Controller

Leírás

Ez a projekt egy nagyon egyszerű vezérlő, amely bemenetet adhat az Unity -nek, amikor megnyomja a gombokat, amelyeket úgy terveztem, hogy irányítsa az általam készített játékot, ahol a játékos balra és jobbra léphet. Természetesen bármikor beállíthatja a további vezérlés érdekében. Nincs szükség további könyvtárak használatára.

1. lépés: Anyagok

Szükséges alkatrészek

  • -Arduino 2x ellenállás
  • -[~ 220 Ohm
  • -Vezetékek
  • -2x gombok
  • -Kenyértábla

2. lépés: Breadboarding

Breadboardozás
Breadboardozás

Azzal kezdtem, hogy az arduino GND portot a kenyérsütőlap bal oldalán lévő negatív (-) tűhöz kötöttem, és az 5V-ot pozitív irányba (+) csatlakoztattam a kenyértábla jobb oldalán.

Ezt követően a gombokat a kívánt helyre tettem. És csatlakoztatta őket a vezetékek és ellenállások segítségével.

3. lépés: Az Arduino kódolása

Először is írnia kell néhány kódot, hogy az Arduino fusson. A kódba megjegyzéseket teszek, amelyek elmagyarázzák, mit csinál.

// A gombok csatlakoztatott csapok deklarálása.

const int gombPin1 = 3; const int gombPin2 = 4;

üres beállítás ()

{// Indítsa el a sorozatot Serial.begin (9600); // Konfigurálja a csapokat kimenetként. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

üres hurok ()

{// Olvassa el a gomb állapotát, ha (digitalRead (buttonPin1) == HIGH) {// ezt a sort nyomtatja, ha az állapot HIGH. Serial.println ("Bal"); késleltetés (20); } if (digitalRead (buttonPin2) == HIGH) {// ezt a sort nyomtatja, ha az állapot HIGH. Serial.println ("Jobb"); késleltetés (20); }}

4. lépés: Egység

Ha nincs kész játék, ez a kód egységben minden játékobjektumon működik.

ebben az esetben szüksége lesz egy játékobjektumra a mozgatáshoz.

Az egyszerűség kedvéért létrehozunk egy kockát a GameObject-> 3D Object-> Cube menüpontban

Miután a kocka a jelenetben van, jelölje ki, és nyomja meg az Összetevő hozzáadása gombot, és hozzon létre új szkriptet.

A System. IO. Ports könyvtár működéséhez módosítania kell az Api kompatibilitási szintet is.

Ehhez lépjen a Szerkesztés-> Projektbeállítások-> Lejátszó menübe

görgessen lefelé ebben a menüben, amíg meg nem találja az Api kompatibilitási szintet, és válassza a. NET 2.0 lehetőséget a. Net 2.0 részhalmaz helyett

Most már készen áll a kódolás megkezdésére.

a System. Collections használatával; a System. Collections. Generic használatával; a UnityEngine használatával; a System. IO. Ports használatával;

public class PlayerMovement: MonoBehaviour

{nyilvános lebegési sebesség; úszó mozgás;

SerialPort sp = új SerialPort ("COM3", 9600);

void Start ()

{// Futtassa a kódot a soros port megnyitásához OpenSerialPort (); }

void OpenSerialPort ()

{// Nyissa meg a soros portot sp. Open (); sp. ReadTimeout = 1; }

üres mozgás (karakterlánc iránya)

{// Ellenőrizze, hogy az arduino milyen irányba továbbított, ha (Direction == "Left") {motion = -1; } if (Irány == "Jobb") {mozgás = 1; } // kiszámítja a játékobjektum áthelyezésének összegét float translation = mozgás * sebesség; // Alkalmazza a mozgást a gameobject transzformációra. Translate (translation, 0, 0); }

érvénytelen frissítés ()

{if (sp. IsOpen) {try {// amíg a soros port nyitva van, hajtsa végre a mozgási funkciót, és adja át azt a sort, amelyet az Arduino nyomtat. Mozgás (sp. ReadLine ()); } fogás (System. Exception) {

}

}

} }

5. lépés: Záró megjegyzések

Ellenőrizze, hogy az alkatrészek működnek -e

A probléma, amellyel a létrehozás során találkoztam, az volt, hogy minden vezeték és kód helyes volt, és egyáltalán nem lehet probléma, de nem működött. Az én esetemben ez egy vezeték volt, amely nem működött, bár ugyanez történhet más alkatrészekkel is.

Ajánlott: