Spisu treści:

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

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

Wideo: Prosty kontroler jedności: 5 kroków
Wideo: Cypis karaluch w kościele 2024, Listopad
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: