فهرست مطالب:

کنترل کننده وحدت ساده: 5 مرحله
کنترل کننده وحدت ساده: 5 مرحله

تصویری: کنترل کننده وحدت ساده: 5 مرحله

تصویری: کنترل کننده وحدت ساده: 5 مرحله
تصویری: پسر باید...🗿😐 2024, نوامبر
Anonim
کنترل کننده وحدت ساده
کنترل کننده وحدت ساده

شرح

این پروژه یک کنترلر بسیار ساده است که می تواند هنگام فشار دادن دکمه ها به Unity ورودی بدهد ، من آن را برای کنترل بازی ای که ساخته ام و در آن بازیکن می تواند به چپ و راست حرکت کند ، کنترل کند. البته همیشه می توانید آن را برای کنترل های بیشتر تنظیم کنید. نیازی به استفاده از کتابخانه های اضافی نیست.

مرحله 1: مواد

اجزای مورد نیاز

  • -مقاومت آردوینو 2 برابر
  • -[220 پوند
  • -سیم ها
  • -2 دکمه
  • -تختخواب

مرحله 2: تخته نان

تخته نان
تخته نان

من با اتصال پورت arduino GND به یک پین منفی (-) در سمت چپ تخته نان و اتصال 5 ولت به مثبت (+) در سمت راست تخته غذا شروع کردم.

پس از آن دکمه ها را در محلی که می خواستم mto باشد قرار دادم. و آنها را با استفاده از سیم و مقاومت متصل کنید.

مرحله 3: کدنویسی آردوینو

اول از همه برای اجرای Arduino باید کمی کد بنویسید. من کامنت هایی را در کد قرار می دهم که توضیح می دهد چه کار می کند.

// پین هایی را که دکمه ها به آنها متصل هستند اعلام کنید.

const int buttonPin1 = 3؛ const int buttonPin2 = 4 ؛

void setup ()

{// شروع سریال Serial.begin (9600) ؛ // پین ها را به عنوان خروجی پیکربندی کنید. pinMode (buttonPin1 ، INPUT) ؛ pinMode (buttonPin2 ، INPUT) ؛ }

حلقه خالی ()

{// وضعیت دکمه if (digitalRead (buttonPin1) == HIGH) را بخوانید {// اگر وضعیت HIGH است این خط را چاپ کنید. Serial.println ("چپ") ؛ تأخیر (20) ؛ } if (digitalRead (buttonPin2) == HIGH) {// اگر وضعیت HIGH است این خط را چاپ کنید. Serial.println ("راست") ؛ تأخیر (20) ؛ }}

مرحله چهارم: وحدت

اگر بازی آماده ای ندارید ، این کد روی هر gameobject به صورت یکپارچه کار می کند.

در این صورت شما برای حرکت به یک gameobject نیاز دارید.

برای سادگی ، با رفتن به GameObject-> 3D Object-> Cube یک مکعب ایجاد می کنیم.

هنگامی که مکعب در صحنه شما قرار دارد ، آن را انتخاب کرده و دکمه Add Component را فشار دهید و اسکریپت جدیدی ایجاد کنید.

همچنین برای کارکردن کتابخانه System. IO. Ports باید سطح سازگاری Api را تغییر دهید.

برای انجام این کار به Edit-> Project Settings-> Player بروید

در این منو پایین بروید تا سطح سازگاری 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 () اجرا کنید. }

void OpenSerialPort ()

{// پورت سریال sp. Open () را باز کنید ؛ sp. ReadTimeout = 1؛ }

حرکت خالی (جهت رشته)

{// بررسی کنید که arduino در چه مسیری حرکت کرده است (جهت == "چپ") {move = -1؛ } if (جهت == "راست") {جنبش = 1؛ } // محاسبه مقدار جابجایی gameobject ترجمه شناور = حرکت * سرعت ؛ // حرکت را به gameobject تبدیل کنید. ترجمه (ترجمه ، 0 ، 0) ؛ }

void Update ()

{if (sp. IsOpen) {try {// در حالی که پورت سریال باز است حرکت را انجام دهید عملکرد تابع را اجرا کرده و خطی را که آردوینو در حال چاپ حرکت (sp. ReadLine ()) است عبور دهید. } catch (System. Exception) {

}

}

} }

مرحله 5: نکات نهایی

بررسی کنید که آیا اجزای شما کار می کنند یا خیر

مشکلی که در هنگام ایجاد آن با آن روبرو شدم این بود که همه سیمها و کد درست بود و نباید مشکلی وجود داشت ، اما کار نمی کرد. در مورد من این سیم بود که کار نمی کرد ، اگرچه همین امر می تواند با برخی دیگر از اجزای شما اتفاق بیفتد.

توصیه شده: