תוכן עניינים:

בקר אחדות פשוטה: 5 שלבים
בקר אחדות פשוטה: 5 שלבים

וִידֵאוֹ: בקר אחדות פשוטה: 5 שלבים

וִידֵאוֹ: בקר אחדות פשוטה: 5 שלבים
וִידֵאוֹ: עדן חסון ואודיה - הנשיקה! 😱 2024, מאי
Anonim
בקר אחדות פשוט
בקר אחדות פשוט

תיאור

הפרויקט הזה הוא בקר פשוט מאוד שיכול לתת קלט ל- Unity בעת לחיצה על כפתורים שתכננתי אותו לשלוט במשחק שעשיתי בו השחקן יכול ללכת ימינה ושמאלה. כמובן שתמיד תוכל להתאים אותו לבקרות נוספות. אין צורך להשתמש בספריות נוספות.

שלב 1: חומרים

דרושים רכיבים

  • -נגד Arduino 2x
  • -[~ 220 אוהם
  • -חוטים
  • כפתורים -2x
  • -קרש

שלב 2: לוח לחם

לוח לחם
לוח לחם

התחלתי בחיבור יציאת ה- GND הארדואינו לסיכה שלילית (-) בצד שמאל של לוח הלחם, וחיבור ה- 5V לחיובי (+) בצד ימין של לוח הלחם.

לאחר מכן הנחתי את הכפתורים במקום שרציתי שיהיה. וחיבר אותם באמצעות החוטים והנגדים.

שלב 3: קידוד הארדואינו

קודם כל תצטרך לכתוב קוד כדי שתוכל להפעיל את Arduino. שמתי הערות בקוד המסבירות מה הוא עושה.

// הצהירו על סיכות שאליהן מחוברים כפתורים.

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

הגדרת חלל ()

{// התחל את סדרת Serial.begin (9600); // הגדר את הפינים כפלט. pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

לולאת חלל ()

{// קרא את מצב הלחצן אם (digitalRead (buttonPin1) == HIGH) {// הדפס שורה זו אם המצב הוא HIGH. Serial.println ("שמאל"); עיכוב (20); } if (digitalRead (buttonPin2) == HIGH) {// הדפס שורה זו אם המצב הוא HIGH. Serial.println ("מימין"); עיכוב (20); }}

שלב 4: אחדות

אם אין לך משחק מוכן, הקוד הזה יפעל על כל משחק אובייקט באחדות.

אם זה המקרה תצטרך משחק אובייקט כדי לזוז.

לשם הפשטות ניצור קובייה על ידי מעבר ל- GameObject-> 3D Object-> Cube

לאחר שהקובייה נמצאת בסצנה שלך, בחר בה ולחץ על הלחצן הוסף רכיב, וצור סקריפט חדש.

כמו כן, יהיה עליך לשנות את רמת תאימות ה- Api על מנת שספריית System. IO. Ports תפעל.

לשם כך עבור אל עריכה-> הגדרות פרויקט-> נגן

גלול למטה בתפריט זה עד שתמצא את רמת תאימות ה- Api ובחר. NET 2.0 במקום קבוצת משנה של. Net 2.0

כעת אתה מוכן להתחיל בקידוד.

שימוש ב- System. Collections; שימוש ב- System. Collections. Generic; שימוש ב- UnityEngine; שימוש ב- System. IO. Ports;

מחלקה ציבורית PlayerMovement: MonoBehaviour

{מהירות הצפה לציבור; תנועת צף;

SerialPort sp = SerialPort חדש ("COM3", 9600);

void Start ()

{// הפעל את הקוד כדי לפתוח את היציאה הטורית OpenSerialPort (); }

בטל OpenSerialPort ()

{// פתח את היציאה הטורית sp. Open (); sp. ReadTimeout = 1; }

תנועת חלל (כיוון מחרוזת)

{// בדוק לאיזה כיוון עבר הארדואינו אם (כיוון == "שמאל") {תנועה = -1; } אם (כיוון == "ימין") {תנועה = 1; } // לחשב את הכמות שבה המשחק אובייקט יועבר תרגום צף = תנועה * מהירות; // החילו את התנועה על הטרנספורמציה gameobject. Translate (תרגום, 0, 0); }

עדכון בטל ()

{if (sp. IsOpen) {נסה {// בזמן שהיציאה הסדרתית פתוחה, העבר את פונקציית התנועה והעבר את הקו שהארדואינו מדפיס את התנועה (sp. ReadLine ()); } catch (System. Exception) {

}

}

} }

שלב 5: הערות אחרונות

בדוק אם הרכיבים שלך עובדים

בעיה שנתקלתי בה במהלך היצירה של זה הייתה שכל החוטים והקוד תקינים ולא אמורה להיות שום בעיה בכלל, אבל זה לא עבד. במקרה שלי זה היה חוט שלא עבד, אם כי אותו דבר יכול לקרות עם חלק מהרכיבים האחרים שלך.

מוּמלָץ: