透過 GaussSense Desktop 應用程式可以在 Mac OS X / Windows / Linux 作業系統下快速使用 GaussSense,GaussSense Desktop 透過 WebSocket 傳送磁場資訊到 Unity3D 編輯器,在遊戲中提供新的互動體驗。
🙋🏻 開始前請先確認您的 Arduino 與 GaussSense 已完成接線與上傳好 Arduino code
若還未完成請先參考 👉 詳細步驟教學
安裝 GaussSense Desktop 和連結 Mini GaussSense 可參考 開始使用 GaussSense Desktop
點選 Unity 上方選單的 Assets → Import Package → Custom Package… 來加入 GaussSense-Websocket.unitypackage
GaussSense Desktop 連結後會建立 Websocket server 傳送磁場資訊,port 為 5100
,GaussSense Websocket Unity Package 則會建立 Websocket client 來接收 GaussSense Desktop 所傳送的磁場資訊,點選 Scenes 資料夾中的範例場景 GaussSenseWebsocket.unity 來開始了解基本的接收 GaussSense 磁場資訊方法。
查看範例專案 SpaceShooter2D GitHub Repository
Into The Space 是 Unity Asset Store 裡的專案,可以免費下載。我們將利用這個專案介紹如何在專案中加入 GaussSense Websocket package,讓我們可以透過抓握磁鐵來操作遊戲中的飛機。
1. 首先先點選上方選單的 Assets → Import Package → Custom Package… 來加入 GaussSense-Websocket.unitypackage。
2. 在場景中建立一個 Empty Object 命名為 GaussSense,並把 Scripts 資料夾的 GaussSense.cs 加入此物件。
3. 在 PlayerShip 物件中可以找到 Player_Script.cs,原本程式碼以鍵盤來控制飛機移動,現在我們可以加上 GaussSense 的磁場資訊,首先先在 Start() 中尋找剛剛命名為 GaussSense 的物件並取出 GaussSense.cs 的 Component :
private GaussSense gs; void Start() { gs = GameObject.Find("GaussSense").GetComponent(); }
4. 在 FixedUpdate() 中加上讀取雙極中點與旋轉角度來控制飛機:
GData bipolarMidpoint = gs.getBipolarMidpoint(); if (bipolarMidpoint != null && bipolarMidpoint.getIntensityInGauss() > 0) { moveHorizontal = (bipolarMidpoint.getX() - 0.5f) * 2; moveVertical = -(bipolarMidpoint.getY() - 0.5f) * 2; float angle = -bipolarMidpoint.getAngle() * Mathf.Rad2Deg; this.transform.rotation = Quaternion.Euler(0, 0, angle); }
在 GaussSense
物件中我們可以取出 N 極、S 極與雙極 GData ,當 Mini GaussSense 與 NFC 模組連結時,也可使用 getTagID()
取得偵測的 Tag ID:
Get Methods | Meaning |
---|---|
getNorthPoint() | Get the north point object. Methods: getX(), getY(), getIntensity() |
getSouthPoint() | Get the south point object. Methods: getX(), getY(), getIntensity() |
getBipolarMidpoint() | Get the bipolar midpoint object. Methods: getX(), getY(), getIntensity(), getAngle(), getPitch() |
getTagID() | Get the IDs of NFC tag. Return List<int> |
按照以上步驟即可快速在遊戲中加入 GaussSense 的互動功能,產生出新的遊戲方式!
回到教學目錄