สารบัญ:

ตัวควบคุม Unity อย่างง่าย: 5 ขั้นตอน
ตัวควบคุม Unity อย่างง่าย: 5 ขั้นตอน

วีดีโอ: ตัวควบคุม Unity อย่างง่าย: 5 ขั้นตอน

วีดีโอ: ตัวควบคุม Unity อย่างง่าย: 5 ขั้นตอน
วีดีโอ: การเขียนเกม 3 มิติ Unity 3D (อัพเด็ต 2022) ตอนที่ 1 การควบคุมตัวละคร 2024, พฤศจิกายน
Anonim
คอนโทรลเลอร์ Unity อย่างง่าย
คอนโทรลเลอร์ Unity อย่างง่าย

คำอธิบาย

โปรเจ็กต์นี้เป็นคอนโทรลเลอร์ที่ง่ายมากที่สามารถป้อนข้อมูลให้กับ Unity เมื่อกดปุ่ม ฉันออกแบบให้ควบคุมเกมที่ฉันสร้างโดยที่ผู้เล่นสามารถไปทางซ้ายและขวาได้ แน่นอน คุณสามารถปรับเปลี่ยนเพื่อการควบคุมเพิ่มเติมได้ตลอดเวลา ไม่จำเป็นต้องใช้ไลบรารีพิเศษใดๆ

ขั้นตอนที่ 1: วัสดุ

ส่วนประกอบที่จำเป็น

  • - ตัวต้านทาน Arduino 2x
  • -[~220 โอห์ม
  • -สายไฟ
  • -2x ปุ่ม
  • -เขียงหั่นขนม

ขั้นตอนที่ 2: เขียงหั่นขนม

เขียงหั่นขนม
เขียงหั่นขนม

ฉันเริ่มต้นด้วยการเชื่อมต่อพอร์ต arduino GND กับพินเชิงลบ (-) ที่ด้านซ้ายของเขียงหั่นขนมและเชื่อมต่อ 5V กับค่าบวก (+) ที่ด้านขวาของเขียงหั่นขนม

หลังจากนั้นฉันวางปุ่มในตำแหน่งที่ฉันต้องการให้เป็น และเชื่อมต่อโดยใช้สายไฟและตัวต้านทาน

ขั้นตอนที่ 3: การเข้ารหัส Arduino

ก่อนอื่น คุณจะต้องเขียนโค้ดเพื่อให้ Arduino ทำงาน ฉันใส่ความคิดเห็นในโค้ดที่อธิบายว่ามันทำอะไร

//ประกาศพินที่ปุ่มต่างๆ เชื่อมต่ออยู่

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

การตั้งค่าเป็นโมฆะ ()

{// เริ่ม Serial Serial.begin (9600); //กำหนดค่าพินเป็นเอาต์พุต pinMode (ปุ่ม Pin1, INPUT); pinMode(ปุ่มPin2, INPUT); }

วงเป็นโมฆะ ()

{// อ่านสถานะของปุ่ม if(digitalRead(buttonPin1) == HIGH) {// พิมพ์บรรทัดนี้หากสถานะเป็น HIGH Serial.println("ซ้าย"); ล่าช้า (20); } if(digitalRead(buttonPin2) == HIGH) {// พิมพ์บรรทัดนี้หากสถานะเป็น HIGH Serial.println("ถูกต้อง"); ล่าช้า (20); } }

ขั้นตอนที่ 4: ความสามัคคี

หากคุณไม่มีเกมพร้อม รหัสนี้จะใช้ได้กับวัตถุเกมใดๆ ก็ตามที่เป็นอันหนึ่งอันเดียวกัน

หากเป็นกรณีนี้ คุณจะต้องมีวัตถุเกมที่จะย้าย

เพื่อความเรียบง่าย เราจะสร้างคิวบ์โดยไปที่ GameObject->3D Object->Cube

เมื่อคิวบ์อยู่ในฉากของคุณแล้ว ให้เลือกและกดปุ่ม Add Component และสร้างสคริปต์ใหม่

นอกจากนี้ คุณจะต้องเปลี่ยนระดับความเข้ากันได้ของ Api เพื่อให้ไลบรารี System. IO. Ports ทำงานได้

โดยไปที่ Edit->Project Settings->Player

เลื่อนลงมาในเมนูนี้จนกว่าคุณจะพบระดับความเข้ากันได้ของ Api แล้วเลือก. NET 2.0 แทน. Net 2.0 subset

ตอนนี้คุณพร้อมที่จะเริ่มเขียนโค้ดแล้ว

ใช้ System. Collections ใช้ System. Collections. Generic; ใช้ UnityEngine; ใช้ System. IO. Ports;

คลาสสาธารณะ PlayerMovement: MonoBehavior

{ ความเร็วลอยน้ำสาธารณะ; การเคลื่อนไหวแบบลอยตัว;

SerialPort sp = SerialPort ใหม่ ("COM3", 9600);

เป็นโมฆะเริ่มต้น ()

{// เรียกใช้รหัสเพื่อเปิดพอร์ตอนุกรม OpenSerialPort (); }

เป็นโมฆะ OpenSerialPort()

{//เปิดพอร์ตอนุกรม sp. Open(); sp. ReadTimeout = 1; }

โมฆะ การเคลื่อนไหว (ทิศทางสตริง)

{ // ตรวจสอบว่า Arduino ผ่านไปในทิศทางใดถ้า (ทิศทาง == "ซ้าย") { การเคลื่อนไหว = -1; } ถ้า (ทิศทาง == "ขวา") { การเคลื่อนไหว = 1; } //คำนวณจำนวนที่วัตถุเกมจะถูกย้าย float การแปล = การเคลื่อนไหว * ความเร็ว; //นำการเคลื่อนไหวไปใช้กับ gameobject transform. Translate(translation, 0, 0); }

เป็นโมฆะอัปเดต ()

{ if (sp. IsOpen) { ลอง {// ในขณะที่พอร์ตอนุกรมเปิดอยู่ ให้เรียกใช้ฟังก์ชันการเคลื่อนไหวและส่งผ่านบรรทัดที่ Arduino กำลังพิมพ์ การเคลื่อนไหว (sp. ReadLine ()); } จับ (System. Exception) {

}

}

} }

ขั้นตอนที่ 5: บันทึกย่อสุดท้าย

ตรวจสอบว่าส่วนประกอบของคุณทำงานหรือไม่

ปัญหาที่ฉันพบระหว่างการสร้างสิ่งนี้คือ สายไฟและรหัสทั้งหมดถูกต้อง และไม่น่าจะมีปัญหาใดๆ เลย แต่ก็ใช้งานไม่ได้ ในกรณีของฉัน มันเป็นลวดที่ไม่ทำงาน แม้ว่า สิ่งเดียวกันนี้สามารถเกิดขึ้นได้กับส่วนประกอบอื่นๆ ของคุณ

แนะนำ: