Prosty kontroler jedności: 5 kroków
Prosty kontroler jedności: 5 kroków
Anonim
Prosty kontroler jedności
Prosty kontroler jedności

Opis

Ten projekt jest bardzo prostym kontrolerem, który może dawać wejście do Unity, naciskając przyciski, które zaprojektowałem, aby sterować grą, którą stworzyłem, w której gracz może poruszać się w lewo i w prawo. Oczywiście zawsze możesz go dostosować, aby uzyskać więcej kontroli. Nie ma potrzeby korzystania z dodatkowych bibliotek.

Krok 1: Materiały

Potrzebne komponenty

  • -Rezystor Arduino 2x
  • -[~220 omów
  • -Przewody
  • -2x przyciski
  • -Płytka do krojenia chleba

Krok 2: Deska do krojenia chleba

Deska do krojenia chleba
Deska do krojenia chleba

Zacząłem od podłączenia portu GND arduino do ujemnego (-) pinu po lewej stronie płytki stykowej i podłączenia 5 V do dodatniego (+) po prawej stronie płytki stykowej.

Następnie umieściłem przyciski w miejscu, w którym chciałem, aby był. I połączyłem je za pomocą przewodów i rezystorów.

Krok 3: Kodowanie Arduino

Przede wszystkim będziesz musiał napisać kod do uruchomienia Arduino. Umieszczam w kodzie komentarze, które wyjaśniają, co robi.

//Zadeklaruj piny, do których podłączone są przyciski.

const int przyciskPin1 = 3; const int przyciskPin2 = 4;

pusta konfiguracja()

{ //Uruchom serial Serial.begin(9600); //Konfiguruj piny jako dane wyjściowe. pinMode(przyciskPin1, WEJŚCIE); pinMode(buttonPin2, INPUT); }

pusta pętla()

{ //Odczytaj stan przycisku if(digitalRead(buttonPin1) == HIGH) { //wydrukuj tę linię, jeśli stan jest WYSOKI. Serial.println("Lewy"); opóźnienie(20); } if(digitalRead(buttonPin2) == HIGH) { //wypisz tę linię, jeśli stan jest HIGH. Serial.println("Prawy"); opóźnienie(20); } }

Krok 4: Jedność

Jeśli nie masz gotowej gry, ten kod będzie działał na dowolnym obiekcie gry w jedności.

w takim przypadku będziesz potrzebować obiektu gry, aby się przenieść.

Dla uproszczenia stworzymy sześcian przechodząc do GameObject->3D Object->Cube

gdy kostka znajdzie się w twojej scenie, wybierz ją i naciśnij przycisk Dodaj komponent i utwórz nowy skrypt.

Aby biblioteka System. IO. Ports działała, konieczna będzie również zmiana poziomu zgodności Api.

Aby to zrobić, przejdź do Edycja->Ustawienia projektu->Odtwarzacz

przewiń w dół w tym menu, aż znajdziesz poziom zgodności interfejsu API i wybierz. NET 2.0 zamiast podzbioru. Net 2.0

Jesteś teraz gotowy do rozpoczęcia kodowania.

używanie System. Collections; używanie System. Collections. Generic; za pomocą UnityEngine; za pomocą System. IO. Ports;

public class PlayerMovement: MonoBehaviour

{ publiczna prędkość pływania; ruch pływaka;

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

nieważny Start()

{ //Uruchom kod, aby otworzyć port szeregowy OpenSerialPort(); }

nieważne OpenSerialPort()

{ //Otwórz port szeregowy sp. Open(); sp. Czas odczytu = 1; }

void Ruch (kierunek ciągu)

{ //Sprawdź, w jakim kierunku przeszło arduino if (Kierunek == "W lewo") { ruch = -1; } if (Kierunek == "W prawo") { ruch = 1; } //oblicz ilość, o jaką obiekt gry zostanie przesunięty float translation = movement * speed; //Zastosuj ruch do obiektu gry transform. Translate(translation, 0, 0); }

nieważna aktualizacja()

{ if (sp. IsOpen) { try { //gdy port szeregowy jest otwarty move wykonaj funkcję ruchu i przekaż wiersz drukowany przez Arduino Movement(sp. ReadLine()); } catch (System. Exception) {

}

}

} }

Krok 5: Uwagi końcowe

Sprawdź, czy Twoje komponenty działają

Problem, który napotkałem podczas tworzenia tego, polegał na tym, że wszystkie przewody i kod były w porządku i nie powinno być żadnego problemu, ale nie działał. W moim przypadku był to przewód, który nie działał, chociaż to samo może się zdarzyć z niektórymi innymi komponentami.

Zalecana: