Unity Arduino 教學 |
||||||||||||||||||||||||||||||||||||||||||||
Arduino 是一種應用廣泛的開發板,可用控制電子設備、連接各種感應器,而且價格不貴容易購買。 將 Arduino 開發板與 Unity 遊戲引擎結合可以製作多種不同的應用,提供鍵盤、滑鼠、觸控螢幕無法達成的互動功能。實際上在遊戲界已推出的裝置,都可以使用 Arduino 製作出來的。您可以到電子商場或購物網站選擇需要的購買 Arduino 開發板與相關零件,Arduino Uno 是比較多初學者選擇的型號,本教學使用 Arduino Leonardo 與 Pro Micro 開發板,而且能夠模擬鍵盤或滑鼠輸入來控制 Unity 遊戲,例如製作格鬥遊戲用大型搖桿。
模擬鍵盤部份型號的 Arduino 開發板可支援 Keyboard 輸入功能,主要是使用 ATmega32U4 或 SAMD 的開發板,例如 Leonardo、Esplora、Zero、Due 與 MKR 家族。本教學也會使用到 SparkFun Pro Micro 5V 16MHz 開發板,
若選擇的開發板不支援 Keyboard 上傳時會出現錯誤: 找不到'Keyboard',草稿碼有加入'#include <Keyboard.h>'這一行嗎? 選擇正確開發板即可解決問題,本範例使用 Arduino Leonardo 或 SparkFun Pro Micro 開發板,價格便宜而且容易購買。
匯入資源,將玩家角色的預製物件拖曳到場景,測試遊戲確認可以正常操作。 上傳到 Arduino 後連接電腦測試遊戲,使用時發現同時按下多個按鈕,將會因為衝突而無法正確輸入,稍後說明解決方法。
超音波感應器當訪客進入超音波感測器的感應範圍時,將會傳送鍵盤的輸入訊號,達到觸發遊戲的互動操作。 範例使用 2 組超音波感測器連接到 Arduino 開發板,將可觸發不同的輸入,熟悉後可再依需求增加。 使用 HC-SR04 超音波測距模組 ( Ultrasonic Sensor ),價格約 70~80 元。 程式碼下載 [ Ultrasound_Keyboard | Ultrasound_Keyboard ]
Kreation.Arduino - On/Off Controller 是一套支援 Unity 遊戲引擎的免費外掛程式 [ 連結 ] Arduino 官方網站 [ 連結 ] 使用 Unity 動畫編輯器即可製作 LED 燈光效果,控制伺服馬達,不需要撰寫程式。 使用 Unity 動畫編輯器製作 LED 燈光動畫,或是控制伺服馬達,無需撰寫程式也可以製作科技藝術的作品。
按下 JUST DOWNLOAD 下載程式。
選擇使用的開發板。 若您的電腦已偵測到 Arduino 開發板,即可從選擇對應序列埠。 部份型號的開發板需要 USB 轉 TTL 序列傳輸線( 例如 PL2303HX 或 PL2303TA 傳輸線 ) 紅色 +5V 黑色 GND 白色 RXD 綠色 TXD
ATMega32U4 BS Micro pro micro leonardo 開發板
Kreation.Arduino - On/Off Controller 使用 Firmata 協定,這是讓 Arduino 與 Unity 連線最簡單的一種方法。 執行 [ 範例 > Firmata > StandardFirmata ] 然後上傳,不需要自行撰寫程式。
Kreation.Arduino - On/Off Controller 是一套支援 Unity 遊戲引擎的免費外掛程式 [ 連結 ] 下載免費的 Kreation.Arduino - On/Off Controller 外掛程式。
本教學使用特殊的 5V LED 元件,請注意一般 LED 的電壓是 3V 左右,如果沒有串接電阻將會讓 LED 損壞,網路上有許多 Arduino 入門教學,請部份還請自行參閱 。
呼吸燈警示燈 (紅色、藍色 LED)。 Arduino 開發板的輸出電壓是 5V,若需要控制 LED 亮度,可以使用 PWM , 官網 https://www.arduino.cc/en/tutorial/PWM
按下 PLAY 測試遊戲,拖曳 Inspector 屬性編輯器的滑桿,即可控制 LED 亮度,使用 Animation 的關鍵影格,即可製作呼吸燈的效果。
警示燈 (紅色、藍色 LED 交替閃爍)。 使用 Arduino 開發板的 2 組輸出製作警示燈的效果。
伺服馬達(★機)
This is a documented On/Off Controller component with support for controlling Arduino UNO board output from a Unity game or application. This asset supports an Arduino / Genuino UNO boards connected via USB serial and makes it possible to control the output signals on 5 digital/PWM pins - 3, 5, 6, 10 and 11 on the UNO. This video explains how to use this asset with the Unity Animation window and Animator window to make a LED sequence light show that can be controlled from a Unity in-game UI. No code needed! How to install Firmata on your Arduino UNO
用 Arduino 來玩 GTA5 遊戲吧! 好久沒運動了,找個理由動一動吧! 我覺得單純用跑步機運動比較無聊,那就用 Arduino 來玩 GTA5 吧!
特定型號的 Arduino 開發板可模擬鍵盤或滑鼠的輸入,製作遊戲控制器。 這次使用的 SparkFun Pro Micro 5V 16MHz 開發板,搭載 ATmega32U4 處理器,體積很小且可直接插在麵包板上。電子材料行也可以買到直插麵包板的模組化零件,對於不想焊接電子零件的人來說,可以節省一些工作的時間。
搭配水銀開關或傾斜開關。 走路或跑步時,轉換成前進的輸入訊號, 許多遊戲使用 WSAD 控制玩家前後左右移動,
製作遊戲控制器 將喝完的飲料瓶洗乾淨,待完全乾燥後放入麵包板,測試容器的尺寸是否適合製作遊戲控制器。Kelvin 老師找到的飲料罐,放入麵包板剛好可以完美固定。 使用電鑽打洞,用於安裝控制的按鈕,瓶蓋上也需要鑽洞,使用 USB 線連接 Arduino 開發板與玩遊戲的電腦。 需要注意的是 SparkFun Pro Micro 開發板的 USB 座使用 SMT 表面黏著技術製作,稍微碰觸就可能脫落,需要保護避免損壞。
#include <Keyboard.h> void setup() { void loop() {
每次走路只能向前走一下,這是因為水銀開關只有擺動一次時按一下 W 鍵,這樣並不容易控制遊戲中的玩家角色。 為了提供前進的功能稍微修改程式,第一次開關接觸時開始按住 W 鍵,每隔一段時間判斷水銀開關是否再次接觸,如果符合條件,將會持續按住 W 鍵讓玩家角色前進,反之若玩家停止走動,水銀開關不再接觸,則放開 W 鍵停止前。
#include <Keyboard.h> int set_time = 1000; //設定延遲時間 void setup() { void loop() {
|