Indholdsfortegnelse:

Simple Unity Controller: 5 trin
Simple Unity Controller: 5 trin

Video: Simple Unity Controller: 5 trin

Video: Simple Unity Controller: 5 trin
Video: FIRST PERSON MOVEMENT in 10 MINUTES - Unity Tutorial 2024, November
Anonim
Enkel enhedskontroller
Enkel enhedskontroller

Beskrivelse

Dette projekt er en meget enkel controller, der kan give input til Unity, når jeg trykker på knapper, jeg designet det til at styre et spil, jeg lavede, hvor spilleren kan gå til venstre og højre. Selvfølgelig kan du altid justere det for flere kontroller. Det er ikke nødvendigt at bruge ekstra biblioteker.

Trin 1: Materialer

Komponenter nødvendige

  • -Arduino 2x modstand
  • -[~ 220 Ohm
  • -Ledninger
  • -2x knapper
  • -Brødbræt

Trin 2: Breadboarding

Breadboarding
Breadboarding

Jeg startede med at tilslutte arduino GND-porten til en negativ (-) pin på venstre side af brødbrættet og tilslutte 5V til en positiv (+) på højre side af brødbrættet.

Derefter satte jeg knapperne på det sted, jeg ville have mto. Og forbundet dem ved hjælp af ledninger og modstande.

Trin 3: Kodning af Arduino

Først og fremmest skal du skrive en kode, så du kan køre Arduino. Jeg sætter kommentarer i koden, der forklarer, hvad den gør.

// Angiv stifter, som knapper er forbundet til.

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

ugyldig opsætning ()

{// Start serien Serial.begin (9600); // Konfigurer stifterne som output. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

hulrum ()

{// Læs status for knappen, hvis (digitalRead (buttonPin1) == HIGH) {// udskriv denne linje, hvis tilstanden er HIGH. Serial.println ("Venstre"); forsinkelse (20); } hvis (digitalRead (buttonPin2) == HIGH) {// udskriv denne linje, hvis tilstanden er HIGH. Serial.println ("Højre"); forsinkelse (20); }}

Trin 4: Enhed

Hvis du ikke har et spil klar, fungerer denne kode på ethvert spilobjekt i fællesskab.

hvis dette er tilfældet, skal du bruge et spilobjekt for at flytte.

For enkelthedens skyld vil vi oprette en terning ved at gå til GameObject-> 3D Object-> Cube

når terningen er i din scene, skal du vælge den og trykke på knappen Tilføj komponent og oprette nyt script.

Du skal også ændre Api -kompatibilitetsniveauet, for at System. IO. Ports -biblioteket kan fungere.

For at gøre dette skal du gå til Rediger-> Projektindstillinger-> Spiller

rul ned i denne menu, indtil du finder Api -kompatibilitetsniveauet og vælg. NET 2.0 i stedet for. Net 2.0 -undersæt

Du er nu klar til at begynde at kode.

brug af System. Collections; brug af System. Collections. Generic; ved hjælp af UnityEngine; ved hjælp af System. IO. Ports;

public class PlayerMovement: MonoBehaviour

{offentlig flydehastighed; flydebevægelse;

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

ugyldig start ()

{// Kør koden for at åbne den serielle port OpenSerialPort (); }

ugyldig OpenSerialPort ()

{// Åbn den serielle port sp. Open (); sp. ReadTimeout = 1; }

tomrumsbevægelse (strengretning)

{// Kontroller hvilken retning arduinoen er videregivet, hvis (Retning == "Venstre") {bevægelse = -1; } hvis (Retning == "Højre") {bevægelse = 1; } // beregne det beløb, hvormed gameobjectet vil blive flyttet float translation = bevægelse * hastighed; // Anvend bevægelsen på gameobject transform. Translate (oversættelse, 0, 0); }

ugyldig opdatering ()

{if (sp. IsOpen) {try {// mens serieporten er åben, bevæg bevægelsesfunktionen og passér den linje, som Arduino udskriver Movement (sp. ReadLine ()); } catch (System. Exception) {

}

}

} }

Trin 5: Endelige noter

Kontroller, om dine komponenter fungerer

Et problem, jeg stødte på under oprettelsen af dette var, at alle ledninger og kode var rigtige, og der burde slet ikke være noget problem, men det virkede ikke. I mit tilfælde var det en ledning, der ikke fungerede, selvom det samme kan ske med nogle af dine andre komponenter.

Anbefalede: