Სარჩევი:

მარტივი ერთიანობის კონტროლერი: 5 ნაბიჯი
მარტივი ერთიანობის კონტროლერი: 5 ნაბიჯი

ვიდეო: მარტივი ერთიანობის კონტროლერი: 5 ნაბიჯი

ვიდეო: მარტივი ერთიანობის კონტროლერი: 5 ნაბიჯი
ვიდეო: მე ვხსნი საკვებისა და საზოგადოების მეთაურ გემბანს, ბეჭდების მბრძანებელს 2024, ნოემბერი
Anonim
მარტივი ერთიანობის კონტროლერი
მარტივი ერთიანობის კონტროლერი

აღწერა

ეს პროექტი არის ძალიან მარტივი კონტროლერი, რომელსაც შეუძლია შეიტანოს კავშირი Unity ღილაკებზე დაჭერისას, მე შევიმუშავე ის თამაშის გასაკონტროლებლად, სადაც მოთამაშეს შეუძლია მარცხნივ და მარჯვნივ წასვლა. რა თქმა უნდა, თქვენ ყოველთვის შეგიძლიათ მისი მორგება მეტი კონტროლისთვის. არ არის საჭირო დამატებითი ბიბლიოთეკების გამოყენება.

ნაბიჯი 1: მასალები

კომპონენტებია საჭირო

  • -არდუინო 2x რეზისტორი
  • -[~ 220 Ohm
  • -მავთულები
  • -2x ღილაკი
  • -პურის დაფა

ნაბიჯი 2: პურის დაფა

პურის დაფა
პურის დაფა

მე დავიწყე არდუინოს GND პორტის დაკავშირება პურის დაფის მარცხენა მხარეს უარყოფით (-) პინთან და 5V პოზიტივთან (+) დამაკავშირებელი პურის დაფის მარჯვენა მხარეს.

ამის შემდეგ დავაყენე ღილაკები იმ ადგილას, სადაც მინდოდა რომ ყოფილიყო. და დააკავშირა ისინი მავთულხლართებით და რეზისტენტებით.

ნაბიჯი 3: Arduino– ს კოდირება

უპირველეს ყოვლისა, თქვენ უნდა დაწეროთ კოდი Arduino– ს გასაშვებად. კოდექსში ვდებ კომენტარებს, რომლებიც განმარტავენ რას აკეთებს.

// გამოაცხადეთ ქინძისთავები, რომლებთანაც დაკავშირებულია ღილაკები.

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

ბათილად დაყენება ()

{// დაიწყეთ სერიული Serial.begin (9600); // ქინძისთავების კონფიგურაცია გამომავალი სახით. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

ბათილი მარყუჟი ()

{// წაიკითხეთ ღილაკის მდგომარეობა if (digitalRead (buttonPin1) == HIGH) {// დაბეჭდეთ ეს ხაზი, თუ მდგომარეობა მაღალია. Serial.println ("მარცხნივ"); დაგვიანება (20); } if (digitalRead (buttonPin2) == HIGH) {// დაბეჭდეთ ეს ხაზი, თუ მდგომარეობა მაღალია. Serial.println ("მარჯვნივ"); დაგვიანება (20); }}

ნაბიჯი 4: ერთიანობა

თუ თქვენ არ გაქვთ მზად თამაში, ეს კოდი იმუშავებს ნებისმიერ თამაშის ობიექტზე ერთიანად.

თუ ეს ასეა, თქვენ დაგჭირდებათ თამაშის ობიექტი გადასატანად.

სიმარტივისთვის ჩვენ შევქმნით კუბს GameObject-> 3D Object-> Cube– ზე გადასვლით

მას შემდეგ, რაც კუბი თქვენს სცენაზეა, შეარჩიეთ იგი და დააჭირეთ ღილაკს კომპონენტის დამატება და შექმენით ახალი სკრიპტი.

ასევე თქვენ უნდა შეცვალოთ Api თავსებადობის დონე, რათა System. IO. Ports ბიბლიოთეკამ იმუშაოს.

ამისათვის გადადით Edit-> Project Settings-> Player

გადაახვიეთ ქვემოთ ამ მენიუში სანამ არ იპოვით Api თავსებადობის დონეს და აირჩიეთ. NET 2.0 ნაცვლად. Net 2.0 ქვეჯგუფისა

თქვენ ახლა მზად ხართ დაიწყოთ კოდირება.

System. Collections; System. Collections. Generic გამოყენებით; UnityEngine- ის გამოყენებით; System. IO. Ports- ის გამოყენებით;

საჯარო კლასი PlayerMovement: MonoBehaviour

{public float speed; float მოძრაობა;

SerialPort sp = ახალი SerialPort ("COM3", 9600);

ბათილად დაწყება ()

{// გაუშვით კოდი სერიული პორტის გასახსნელად OpenSerialPort (); }

ბათილია OpenSerialPort ()

{// სერიული პორტის sp. Open () გახსნა; sp. ReadTimeout = 1; }

ბათილი მოძრაობა (სიმების მიმართულება)

{// შეამოწმეთ რა მიმართულებით გაიარა არდუინომ თუ (მიმართულება == "მარცხნივ") {მოძრაობა = -1; } if (მიმართულება == "მარჯვნივ") {მოძრაობა = 1; } // გამოთვალეთ თანხა, რომლითაც გადავა თამაშის ობიექტი float თარგმანი = მოძრაობა * სიჩქარე; // გამოიყენეთ მოძრაობა gameobject transform. Translate (თარგმანი, 0, 0); }

ბათილი განახლება ()

{if (sp. IsOpen) {ცადეთ {// სანამ სერიული პორტი ღიაა გადაადგილეთ შეასრულეთ მოძრაობის ფუნქცია და გაიარეთ ის ხაზი, რომლითაც Arduino ბეჭდავს მოძრაობას (sp. ReadLine ()); } დაჭერა (System. Exception) {

}

}

} }

ნაბიჯი 5: საბოლოო შენიშვნები

შეამოწმეთ მუშაობს თუ არა თქვენი კომპონენტები

პრობლემა, რომელსაც მე შევხვდი ამის შექმნისას იყო ის, რომ ყველა მავთული და კოდი იყო სწორი და არ უნდა არსებობდეს პრობლემა, მაგრამ ის არ მუშაობდა. ჩემს შემთხვევაში ეს იყო მავთული, რომელიც არ მუშაობდა, თუმცა იგივე შეიძლება მოხდეს თქვენი ზოგიერთი სხვა კომპონენტის შემთხვევაში.

გირჩევთ: