[Unity] 用 VS Code 寫腳本與除錯 – Using VS Code as Script Editor in Unity

通稱 VS Code,全名 Visual Studio Code 的軟體是一款針對程式開發所設計的文字編輯器,也是一款受到 Microsoft 支援的 Open source 軟體。

VS Code 有著輕量、更新快速的優點,並有很多現成套件提供奇奇怪怪的功能強化。Unity 自 5.5 版後特別針對了 VS Code 進行了相容性更新,所以跟 Unity 的互動性也得到了改善,最近我正式從 Visual Studio 轉移到 VS Code 來開發 Unity 了。

本篇文章記錄了我安裝 VS Code 作為 Unity 腳本編輯器所遇到的細節、問題與解法,有 Windows 跟 Mac OSX 兩個平台。

Step 1 安裝 Visual Studio Code 本體

VS Code 的本體只要下載官網的安裝包即可,不過為了可以使用 termial 的指令,Mac 必須對 Shell 的 PATH 環境變數進行設定,在 ~/.bash_profile 增加:

export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"

接著為了讓 VS Code 可以執行 .NET 的 debugger 指令,還需要安裝 .NET Core SDK,安裝完畢後 Windows 系統需要重新開機,更新 PATH 環境變數。

完成以上動作後,應該可以在 cmd 或者 terminal 運行指令 code --versiondotnet --version  來確定環境。

另外是 Mac 才要進行的,安裝或更新 Mono.Framework 5.0 以上版本,這是 Mac 上面要編譯 .NET C# 的必要 SDK,原本 Unity 內建的版本不夠新。

Step 2 安裝對應於 Unity 的 VS Code 套件

目前我在 VS Code 裡面共安裝了 7 個與 Unity 相關的套件:

  • C#
  • C# FixFormat
  • C# Snippets
  • Debugger for Unity
  • Unity Tools
  • Unity Snippets Modified
  • ShaderLabVSCode

這些套件分別對應了 C# 語法的自動完成、排版;可連結 Unity 的 Debugger;Unity API 的語法自動完成;以及 ShaderLab 的 highlight。

如果在 Step 1 的動作都完成了,且可以使用 code --version,你也可直接用套件安裝指令一次安裝數個套件,而不用到 market 上一個一個搜尋:

code --install-extension amlovey.shaderlabvscodefree
code --install-extension jorgeserrano.vscode-csharp-snippets
code --install-extension Leopotam.csharpfixformat
code --install-extension lionize.unity-snippets-modified
code --install-extension ms-vscode.csharp
code --install-extension Tobiah.unity-tools
code --install-extension Unity.unity-debug
  • 不過這個指令在 VS Code 1.15.1 會遭遇 bug 而提示錯誤,1.16.0 已經修正

Step 3 修改 Unity 設定

基本環境都安裝完成了,最後只要修改 Unity 中的設定,將開啟腳本的程式改為 VS Code 就完成了。

開啟設定頁,在 External Tools 中,改用 Code 開啟腳本。如果下拉選單沒有這個選項,就需要選擇 Browse 去設定開啟程式。

  • Mac OSX 的位置會位於 /Applications/Visual Studio Code.app
  • Windows 預設的位置為 C:\Program Files (x86)\Microsoft VS Code\Code.exe

螢幕快照 2017-09-10 下午12.01.23.png

Step 4 測試除錯功能可以運作

只要在 VS Code 按下 F5,便會進入除錯模式,接著再到 Unity 中按下 Play 即可。

專案如果是第一次啟動除錯,稍早安裝的套件會自動在專案中生成 .vscode/launch.json 檔案,是作為除錯模式的設定檔。如果沒辦法啟動除錯模式,可以檢查一下這個檔案。

比如我的 Mac 中安裝了多個版本的 Unity,為了辨識版本我修改過 Unity 的名稱,無法被 VS Code 對應,所以我必須在 launch.json 中增加一個對應的區塊。

{
  "name": "Unity554",
  "type": "unity",
  "request": "launch"
}

螢幕快照 2017-09-10 上午11.57.29

近期使用感想

優點

  • VS Code 只是個文字編輯器,而不是 IDE,所以在前端網頁的開發上會相當適合。
  • 因為不是 IDE,所以非常的輕量化,開啟速度比 Visual Studio 快很多,也比 MonoDeveloper 稍快。
  • 另外一款文字編輯器 Sublime,因為有許多快速編輯的功能而令我喜愛,VS Code 也同樣吸納了這些特色的操作,這應該是 open source 下社群帶來的功能建議吧。
  • 透過使用套件,所以也有 ShaderLab 的 highlight 與一部分的自動完成可以使用。
  • 編輯器內部直接整合 Terminal,如果有使用 git 或者其他 command line 指令習慣的人,會對這個功能感到幸福。

缺點

  • 安裝環境相對麻煩。
  • 自動完成、自動排版、程式碼的自動修正都不如 Visual Studio 般強大,但我應該是被 Visual Studio 寵壞了才會覺得這是缺點。
廣告

對「[Unity] 用 VS Code 寫腳本與除錯 – Using VS Code as Script Editor in Unity」的想法

  1. 版主您好:
    感謝您分享Unity的一些文章
    想跟您請教一下

    我現在有一包完整的project並且可以在Android Studio上成功地進行編譯執行(可產生一個APP)
    請問可以將此project放到Unity下進行編譯跟執行嗎?
    請問版主有這方面的經驗可以提供SOP嗎?
    感激不盡~~

    • 如果是要將功能變成另外一個 Unity 專案的一部份,或許可以想辦法改編成 unity plugin。如果是要直接轉換的話,我沒有處理過類似的情況,兩者語言跟專案結構都不一樣,不清楚有沒有工具能辦到轉換的工作。

    • 確實這邊對 Unity 腳本的支援並不完善,因為相關功能是透過第三方的插件來完成,目前我用過的插件只能列出所有字元上自動配對的結果,不像 VS 上那麼的聰明

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

w

連結到 %s