INHOUDSOPGAWE:

Eenvoudige eenheidsbeheerder: 5 stappe
Eenvoudige eenheidsbeheerder: 5 stappe

Video: Eenvoudige eenheidsbeheerder: 5 stappe

Video: Eenvoudige eenheidsbeheerder: 5 stappe
Video: Normaal - Ik bun moar een eenvoudige boerenlul 2024, Julie
Anonim
Eenvoudige eenheidsbeheerder
Eenvoudige eenheidsbeheerder

Beskrywing

Hierdie projek is 'n baie eenvoudige kontroleerder wat by Unity insette kan lewer deur op die knoppies te druk. Ek het dit ontwerp om 'n speletjie wat ek gemaak het, te beheer waar die speler links en regs kan gaan. U kan dit natuurlik altyd aanpas vir meer kontroles. U hoef geen ekstra biblioteke te gebruik nie.

Stap 1: materiaal

Komponente benodig

  • -Arduino 2x weerstand
  • -[~ 220 Ohm
  • -Drade
  • -2 x knoppies
  • -Broodbord

Stap 2: Breadboarding

Broodplankry
Broodplankry

Ek het begin deur die arduino GND-poort aan te sluit op 'n negatiewe (-) pen aan die linkerkant van die broodbord en die 5V aan 'n positiewe (+) aan die regterkant van die broodbord te koppel.

Daarna sit ek die knoppies op die plek waar ek die mto wil hê. En verbind dit met die drade en weerstande.

Stap 3: Kodering van die Arduino

Eerstens moet u 'n kode skryf om u Arduino te laat loop. Ek plaas opmerkings in die kode wat verduidelik wat dit doen.

// Gee penne aan waarmee knoppies gekoppel is.

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

leemte opstelling ()

{// Begin die reeks Serial.begin (9600); // Stel die penne as uitvoer in. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

leemte lus ()

{// Lees die toestand van die knoppie as (digitalRead (buttonPin1) == HOOG) {// druk hierdie reël as die toestand HOOG is. Serial.println ("Links"); vertraging (20); } if (digitalRead (buttonPin2) == HOOG) {// druk hierdie reël as die toestand HOOG is. Serial.println ("regs"); vertraging (20); }}

Stap 4: Eenheid

As u nie 'n speletjie gereed het nie, werk hierdie kode in eenheid op enige spelobjek.

As dit die geval is, benodig u 'n spelvoorwerp om te beweeg.

Vir die eenvoud sal ons 'n kubus skep deur na GameObject-> 3D Object-> Cube te gaan

sodra die kubus in u toneel is, kies dit en druk op die knoppie Voeg komponent by en skep 'n nuwe skrif.

U moet ook die Api -verenigbaarheidsvlak verander sodat die System. IO. Ports -biblioteek werk.

Om dit te doen, gaan na Edit-> Project Settings-> Player

blaai af in hierdie spyskaart totdat u die Api -verenigbaarheidsvlak vind en kies. NET 2.0 in plaas van. Net 2.0 -subset

U is nou gereed om te begin kodeer.

met behulp van System. Collections; met behulp van System. Collections. Generic; gebruik UnityEngine; met behulp van System. IO. Ports;

openbare klas PlayerMovement: MonoBehaviour

{openbare dryfsnelheid; vlotbeweging;

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

leegte begin ()

{// Begin die kode om die seriële poort OpenSerialPort () oop te maak; }

nietig OpenSerialPort ()

{// Maak die seriële poort sp. Open () oop; sp. ReadTimeout = 1; }

leegtebeweging (stringrigting)

{// Kyk watter rigting die arduino oorgegaan het as (Rigting == "Links") {beweging = -1; } as (Rigting == "Regs") {beweging = 1; } // bereken die hoeveelheid waarmee die spelvoorwerp beweeg sal word float translation = movement * speed; // Pas die beweging toe op die gameobject transform. Translate (vertaling, 0, 0); }

ongeldige opdatering ()

{if (sp. IsOpen) {probeer {// terwyl die reekspoort oop is, voer die bewegingsfunksie uit en slaag die lyn wat die Arduino druk Movement (sp. ReadLine ()); } vang (System. Exception) {

}

}

} }

Stap 5: Laaste aantekeninge

Kyk of u komponente werk

'N Probleem wat ek teëgekom het tydens die skepping hiervan was dat al die drade en kode reg was en dat daar geen probleem moes wees nie, maar dit werk nie. In my geval was dit 'n draad wat nie werk nie, alhoewel die dieselfde kan gebeur met sommige van u ander komponente.

Aanbeveel: