[教學] 在 Visual Studio 安裝 GitHub Copilot 程式碼生成輔助工具

GitHub Copilot 程式碼生成與預測服務現在已正式推出,使用者將會有 60 天的免費試用期,而後每月需支付 10 美元或使用教育者與學生資格取得免費方案。相關報導可參考 可利用人工智慧輔助編碼的GitHub Copilot技術,目前成為正式服務項目

官方網站:GitHub Copilot · Your AI pair programmer

一、開啟 Visual Studio,開啟一個專案或點擊 不使用程式碼繼續

二、從導覽列進入 延伸模組 > 管理延伸模組

三、搜尋 GitHub Copliot 並點擊 下載

四、下載套件後將 Visual Studio 關閉,系統將自動開始安裝程式,點擊 Modify 開始安裝。

五、完成安裝後再次啟動 Visual Studio 並進入或開新專案,系統將會跳出需進行 GitHub 帳號授權的通知。點擊 確定 後系統將自動複製驗證碼與開啟驗證網頁。

六、登入 GitHub 帳號並 Ctrl + V 貼上驗證碼,並點擊 Authorize GitHub Copilot Plugin 進行授權。

七、授權完畢後回到 Visual Studio,因這次是初次設定,需進行 Copilot 服務初始化。選擇 Copilot Settings 後點擊 Continue

八、系統將開啟 Copilot 管理頁面,點擊 Start your free trial 開始免費試用。

九、點擊 Continue to get access to Copilot

十、視情況調整下拉式選單為 Allow 與勾選 Allow GitHub to use my code snippets for product improvements,大意是同意 GitHub Copilot 服務使用 GitHub 現有公開的程式碼作為建議與同意 GitHub 使用你的程式碼片段來進行服務的優化。完成後點擊 Save and get started

十一、來進行測試,開啟一個專案,建立一個方法名為 PrintNumberOneToTen,Copilot 將自動生成一個 For 迴圈並進行列印。

十二、在視窗左下角有個圖示 (上圖左下紅框處),點擊後即可快速設定 GitHub Copilot 的行為,這裡建議將 Wait for pauses in typing before showing suggestions 開啟,可防止當你還在打字時他一直跳出建議干擾作業。

[Unity] 以 Interface 介面搜尋場景上所有物件

有在 Unity 用過 Interface 介面的工程師們應該都知道 GetComponent<介面名稱>; 的用法,但卻沒辦法用 FindObjectsByType<介面名稱> 來找物件。

而在 2014 年的 Unity 論壇中有人提出的 How can I find all objects that have a script that implements a certain interface? 討論串中有人以 LINQ 實作出用介面找物件的功能。

但為了要能更方便使用,我將它重寫成擴充功能,但這個目前沒研究出來能直接在 MonoBehaviour 中使用的辦法,所以就先讓它依附在 GameObject 之下。

編寫邏輯

先新開一個腳本,儲存以下程式碼:

簡單來說就是,因為我們不能直接搜尋 Interface,所以就往更上層的 MonoBehaviour 搜尋,再往下去找有指定介面的物件,感覺就超吃效能,慎用。

用法如下,它會回傳一個 List。

使用範例

IReady 是我自己寫的介面,裡面有個 Ready() 函數。上面先以 iReady 儲存它用 FindInterfacesOfType 找出來的物件 List,再透過 foreach 呼叫 Ready()。

切記,別把這個玩意兒塞在 Update 中讓它瘋狂執行,Find 與 LINQ 系列的程式碼都很吃效能的!