Përmbajtje:

Kontrolluesi i Thjeshtë i Unitetit: 5 hapa
Kontrolluesi i Thjeshtë i Unitetit: 5 hapa

Video: Kontrolluesi i Thjeshtë i Unitetit: 5 hapa

Video: Kontrolluesi i Thjeshtë i Unitetit: 5 hapa
Video: Gjeniu i matematikës, 13-vjeçari që zgjidh ushtrimet më shpejt së makina llogaritëse 2024, Korrik
Anonim
Kontrolluesi i Thjeshtë i Unitetit
Kontrolluesi i Thjeshtë i Unitetit

Përshkrim

Ky projekt është një kontrollues shumë i thjeshtë që mund të japë kontribut në Unity kur shtypni butonat e kam krijuar atë për të kontrolluar një lojë që kam bërë ku lojtari mund të shkojë majtas dhe djathtas. Sigurisht që gjithmonë mund ta rregulloni për më shumë kontrolle. Nuk ka nevojë të përdorni ndonjë bibliotekë shtesë.

Hapi 1: Materialet

Përbërësit e nevojshëm

  • -Rezistor Arduino 2x
  • -[~ 220 Ohm
  • -Telët
  • -2x butona
  • -Burboard

Hapi 2: Breadboarding

Breadboarding
Breadboarding

Fillova duke lidhur portën arduino GND me një kunj negativ (-) në anën e majtë të pjatës, dhe duke lidhur 5V me një pozitiv (+) në anën e djathtë të pjatës.

Pas kësaj vendosa butonat në vendin që doja të ishte mto. Dhe i lidhi duke përdorur telat dhe rezistencat.

Hapi 3: Kodimi i Arduino

Para së gjithash, do t'ju duhet të shkruani një kod që Arduino të funksionojë. Unë vendos komente në kod që shpjegojnë se çfarë bën.

// Deklaroni kunjat me të cilët janë lidhur butonat.

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

void setup ()

{// Filloni serialin Serial.begin (9600); // Konfiguroni kunjat si dalje. pinMode (butoniPin1, INPUT); pinMode (butoniPin2, HYRJE); }

lak void ()

{// Lexoni gjendjen e butonit nëse (digitalRead (buttonPin1) == HIGH) {// printoni këtë rresht nëse gjendja është HIGH. Serial.println ("Majtas"); vonesa (20); } if (digitalRead (buttonPin2) == HIGH) {// printoni këtë rresht nëse gjendja është HIGH. Serial.println ("E Drejtë"); vonesa (20); }}

Hapi 4: Uniteti

Nëse nuk keni një lojë gati, ky kod do të funksionojë në çdo objekt të lojës në unitet.

nëse ky është rasti, do t'ju duhet një objekt i lojës për të lëvizur.

Për hir të thjeshtësisë, ne do të krijojmë një kub duke shkuar te GameObject-> 3D Object-> Cube

pasi kubi të jetë në skenën tuaj, zgjidhni atë dhe shtypni butonin Shto Komponentin dhe krijoni skenar të ri.

Gjithashtu do t'ju duhet të ndryshoni nivelin e pajtueshmërisë Api në mënyrë që biblioteka System. IO. Ports të funksionojë.

Për ta bërë këtë, shkoni te Edit-> Cilësimet e Projektit-> Player

lëvizni poshtë në këtë meny derisa të gjeni Nivelin e Përputhshmërisë Api dhe zgjidhni. NET 2.0 në vend të nënbashkësisë. Net 2.0

Tani jeni gati për të filluar kodimin.

duke përdorur System. Collections; duke përdorur System. Collections. Generic; duke përdorur UnityEngine; duke përdorur System. IO. Ports;

klasa publike PlayerLëvizja: Një sjellje

{shpejtësia e notimit publik; lëvizja notuese;

SerialPort sp = SerialPort i ri ("COM3", 9600);

fillimi i pavlefshëm ()

{// Drejtoni kodin për të hapur portën seriale OpenSerialPort (); }

void OpenSerialPort ()

{// Hap portin serial sp. Open (); sp. ReadTimeout = 1; }

lëvizja e zbrazët (drejtimi i vargut)

{// Kontrolloni se në cilin drejtim ka kaluar arduino nëse (Drejtimi == "Majtas") {lëvizja = -1; } if (Drejtimi == "E djathtë") {lëvizja = 1; } // llogarit sasinë me të cilën objekti i lojës do të zhvendoset përkthim notues = lëvizje * shpejtësi; // Aplikoni lëvizjen në transformimin e objektit të lojës. Përktheni (përkthim, 0, 0); }

void Update ()

{if (sp. IsOpen) {try {// ndërsa porta seriale është e hapur lëvizni ekzekutoni funksionin e lëvizjes dhe kaloni vijën që Arduino po shtyp Lëvizjen (sp. ReadLine ()); } kap (Sistemi. Përjashtim) {

}

}

} }

Hapi 5: Shënimet përfundimtare

Kontrolloni nëse përbërësit tuaj po punojnë

Një problem që hasa gjatë krijimit të kësaj ishte se të gjitha telat dhe kodi ishin të drejtë dhe nuk duhet të kishte problem fare, por nuk funksiononte. Në rastin tim ishte një tel që nuk funksiononte, edhe pse e njëjta gjë mund të ndodhë me disa nga përbërësit tuaj të tjerë.

Recommended: