Visual Studio CodeのExtensionをオフライン環境でインストールする方法

Visual Studio CodeのExtensionをオフライン環境でインストールする方法についてのメモ。

インストール手順

1. Visual Studio Marketplaceで使いたいExtensionを検索

Extensions for Visual Studio family of products | Visual Studio Marketplace
https://marketplace.visualstudio.com/VSCode

2. URLとMore Infoに書いてあるVersionを調べてインストールファイルのダウンロードリンクを作成。

リンクは以下の${publisher}、${extension name}、${version}部分を置き換えて作れます。

https://${publisher}.gallery.vsassets.io/_apis/public/gallery/publisher/${publisher}/extension/${extension name}/${version}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage

「C#」のExtensionの場合は次のようになります。

URL: https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp
Version 1.13.1
リンク: https://ms-vscode.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vscode/extension/csharp/1.13.1/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage

3. ダウンロードしたファイルの拡張子を.vsixに変更して、Visual Studio CodeのInstall from VSIX...からインストール

リンク

visual studio code – How to install VSCode extensions offline? – Stack Overflow
https://stackoverflow.com/questions/37071388/how-to-install-vscode-extensions-offline

VSCodeにオフラインでExtensionを追加する – Qiita
https://qiita.com/tosier/items/b3b7d42b2580cb63c9ee

UnityでVisual Studio Codeを使ってみました

Unity 2017.3をインストールしてみたところ、以前の2017.2.1もそうだったと思いますが、MonoDevelopが別途インストールするようになっていたので、前から気になっていたVisual Studio Codeを使ってみました。

使い方

  1. Visual Studio Codeをダウンロードして普通にインストール
  2. Unityの
    [Edit] » [Preferences...] » [External Tools] » [External Script Editor]
    からVisual Studio Codeインストール先のCode.exeを指定

後は用途に合わせてExtensionsをインストールしてみると良いようです。

とりあえず、「C#」と「Debugger for Unity」をインストールしてしばらく使ってみようと思います。

リンク

Visual Studio Code – Code Editing. Redefined
https://code.visualstudio.com

C# – Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp

Debugger for Unity – Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=Unity.unity-debug

edit modeでOnRenderImageが呼び出されるタイミングについて

UnityのOnRenderImageは、play mode時は毎フレーム呼ばれるけれど、edit mode時は必要な時のみ呼ばれるという実装になっているそうです。

Unity – Scripting API: ExecuteInEditMode
https://docs.unity3d.com/ScriptReference/ExecuteInEditMode.html

edit modeでOnRenderImageを呼び出したい場合は、

if (GUI.changed) {
  Repaint ();
}

のような感じで、Repaintを実行してみると良いようです。

UpdateOnGUIでもedit modeとplay modeで挙動が変わるそうなので、気を付けてください。

リンク

Unity – Scripting API: ExecuteInEditMode
https://docs.unity3d.com/ScriptReference/ExecuteInEditMode.html

Unity – Scripting API: ExecuteInEditMode
https://docs.unity3d.com/ScriptReference/ExecuteInEditMode.html

When is Update called in edit mode? – Unity Answers
https://answers.unity.com/questions/122074/when-is-update-called-in-edit-mode.html