Drone Controller PRO 教學

Drone Controller PRO 是一套製作 Unity 無人機模擬飛行遊戲的開發套件,使用 Unity Input System 輸入系統,可快速修改無人機的操作,例如設定美國手、日本手等操作模式。

先將 Drone Controller PRO 下載匯入專案,開啟 [DroneController > Scenes] 資料夾的展示場景。

按下 Play 測試無人機,預設操作為日本手,開啟 [ Project-DroneController] 資料夾的 DroneInputActions 。

Drone Controller PRO 預設的操控動作如下

左搖桿 X軸=翻滾 Y軸=俯仰 ( X=Roll Y=Pitch )

右搖桿 X軸=偏航 Y軸=油門 ( X=Yaw Y=Throttle )

備註: Pitch 俯仰 / Roll 翻滾 / Yaw 偏航 / Throttle 油門

 

美國手

參考以下步驟將無人機修改為「美國手」的操作模式。

左搖桿 X軸=左轉/右轉 Y軸=上升/下降

右搖桿 X軸=左移/右移 Y軸=前進/後退

 

開啟 DroneInputAction 在 Default Input 按滑鼠右鍵選擇 Duplicate 複製,參考以下修改步驟

例如選取 Pitch 後,右側 Binding Properties 綁定屬性的 Path 按 T 按鈕,直接修改路徑。

 

修改完成後按下 Save Asset 儲存設定。

修改後的美國手。

選取場景中的 InputManager 物件,設定 Input Pitch, Input Roll, Input Yaw, Input Throttle 對應的輸入動作。

 

槳葉設定

預設的槳葉旋轉速度較慢,設定 Propeller Movement 腳本元件的 Rotation Speed 數值,預設值 3

 

無人機炸機

Drone Controller PRO 的無人機受到撞擊時,並不會發生炸機的情況…

實際上沒有槳葉保護的無人機,發生碰撞時可能會停槳掉落,以下將稍做修改,關閉 Drone Movement 元件即可掉落。

另外製作一個 FPV 攝影機,模擬無人機炸機時的第一人稱畫面,調整位置並設定 Clipping Planes 的 Near 到最小值。

撰寫 DroneCrash.cs 腳本,並套用到場景中的無人機。

 

無人機競速遊戲 / 第一階段請只提供 C# 腳本與 UI ,稍後再進行遊戲功能的整合。

使用單一電腦提供 1~3 位玩家同時進行競速,研究項目包括:

輸入:使用 3 個 XBox 控制器或無人機遙控器 [DroneControlSystem.cs]

輸出:連接 3 個螢幕 (HDMI / DisplayPort) [MultiDisplay.cs] [官網]

選擇無人機:玩家可從 5 款不同性能的無人機中,選擇參加競賽 [UI設計]

玩家的無人機必須按照指定的路徑飛行,並穿過路徑上的檢查點,遊戲結束時計算成績 [GameManager.cs]

畫面上的小地圖顯示玩家們的位置 [MiniMap.cs]

 

 

參考資料:

DJI Stick Mode

Mode 1

左搖桿 X軸=Turn Left, Turn Right Y軸=Forward, Backward

右搖桿 X軸=Left, Right Y軸=Ascend, Descend

 

Mode 2 美國手

左搖桿 X軸=Turn Left, Turn Right Y軸=Ascend, Descend

右搖桿 X軸=Left, Right Y軸=Forward, Backward

 

Mode 3

左搖桿 X軸=Left, Right Y軸=Forward, Backward

右搖桿 X軸=Turn Left, Turn Right Y軸=Ascend, Descend

 

DJI - Introducing DJI Flight Simulator [Youtube]

 

修正 URP 專案的材質問題

將 Drone Controller PRO 匯入 UPR 專案,將出現材質無法正常呈現的問題。

若選取有問題的材質,轉換為 URP 材質時,因為部份材質不是標準著色器,將會出現無法轉換的情況。

實際上,無人機預製物件的材質已經轉換可正常使用,無法轉換的材質是場景模型。

 

[D]