Inhoudsopgave:

Eenvoudige Unity-controller: 5 stappen
Eenvoudige Unity-controller: 5 stappen

Video: Eenvoudige Unity-controller: 5 stappen

Video: Eenvoudige Unity-controller: 5 stappen
Video: CryEngine 5.7.1 / Урок - Настройка C# (CSharp) проекта 2024, November
Anonim
Eenvoudige Unity-controller
Eenvoudige Unity-controller

Beschrijving

Dit project is een heel eenvoudige controller die input kan geven aan Unity wanneer je op knoppen drukt. Ik heb het ontworpen om een spel te besturen dat ik heb gemaakt waarbij de speler naar links en rechts kan gaan. Je kunt het natuurlijk altijd aanpassen voor meer bedieningselementen. Het is niet nodig om extra bibliotheken te gebruiken.

Stap 1: Materialen

Benodigde onderdelen

  • -Arduino 2x weerstand
  • -[~220 Ohm
  • -Draden
  • -2x Knoppen
  • -Broodplank

Stap 2: Breadboarden

Breadboarden
Breadboarden

Ik begon door de arduino GND-poort aan te sluiten op een negatieve (-) pin aan de linkerkant van het breadboard en de 5V aan te sluiten op een positieve (+) aan de rechterkant van het breadboard.

Daarna plaatste ik de knoppen op de plek waar ik de m wilde hebben. En verbond ze met de draden en weerstanden.

Stap 3: De Arduino coderen

Allereerst moet je wat code schrijven om je Arduino te laten werken. Ik plaats opmerkingen in de code die uitleggen wat het doet.

// Verklaar pinnen waarmee knoppen zijn verbonden.

const int buttonPin1 = 3; const int knopPin2 = 4;

ongeldige setup()

{ // Start de seriële Serial.begin (9600); // Configureer de pinnen als uitvoer. pinMode (knopPin1, INPUT); pinMode (knopPin2, INPUT); }

lege lus()

{ // Lees de status van de knop if (digitalRead (buttonPin1) == HIGH) { // print deze regel als de status HOOG is. Serial.println("Links"); vertraging(20); } if(digitalRead(buttonPin2) == HIGH) {//print deze regel als de status HOOG is. Serial.println("Rechts"); vertraging(20); } }

Stap 4: Eenheid

Als je geen game bij de hand hebt, werkt deze code in eenheid op elk gameobject.

als dit het geval is, heb je een gameobject nodig om te verplaatsen.

Voor de eenvoud zullen we een kubus maken door naar GameObject->3D Object->Cube. te gaan

zodra de kubus in uw scène is, selecteert u deze en drukt u op de knop Component toevoegen en maakt u een nieuw script.

U moet ook het API-compatibiliteitsniveau wijzigen om de System. IO. Ports-bibliotheek te laten werken.

Ga hiervoor naar Bewerken->Projectinstellingen->Speler

scrol omlaag in dit menu totdat u het Api-compatibiliteitsniveau vindt en selecteer. NET 2.0 in plaats van. Net 2.0-subset

U bent nu klaar om te beginnen met coderen.

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

openbare klasse PlayerMovement: MonoBehaviour

{ openbare vlottersnelheid; vlotter beweging;

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

ongeldig Begin()

{ // Voer de code uit om de seriële poort OpenSerialPort () te openen; }

ongeldig OpenSerialPort()

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

ongeldige beweging (snaarrichting)

{//Controleer in welke richting de arduino is gepasseerd als (Direction == "Links") { movement = -1; } if (Richting == "Rechts") { beweging = 1; } // bereken de hoeveelheid waarmee het gameobject wordt verplaatst float translation = beweging * snelheid; // Pas de beweging toe op de transformatie van het gameobject. Translate (translation, 0, 0); }

ongeldige update()

{if (sp. IsOpen) {probeer { // terwijl de seriële poort open is, beweeg de bewegingsfunctie uit en geef de regel door die de Arduino aan het printen is Movement(sp. ReadLine()); } catch (System. Exception) {

}

}

} }

Stap 5: Laatste opmerkingen

Controleer of uw componenten werken

Een probleem dat ik tegenkwam tijdens het maken hiervan was dat alle draden en code juist waren en dat er helemaal geen probleem zou moeten zijn, maar het werkte niet. In mijn geval was het een draad die niet werkte, hoewel de hetzelfde kan gebeuren met sommige van uw andere componenten.

Aanbevolen: