Unityでゲームやアプリを作るとき、スクリプトを書くためのエディタには Visual Studio(VS)がよく使われますが、「重い…」「起動が遅い…」と感じたことはありませんか?
そんなときに人気なのが Visual Studio Code(VS Code) です。軽快に動き、カスタマイズ性も高く、UnityのC#スクリプトをストレスなく編集できます。
この記事では、VS CodeでUnity開発を快適にするためのおすすめ拡張機能や導入ポイント を、初心者にもわかりやすく紹介します。
UnityでVS Codeを使うメリットとデメリット
VS Codeを選ぶメリット
軽量で高速
- 起動時間が早い(Visual Studioの約1/3)
- メモリ使用量が少ない
- レスポンスが良くサクサク動作
高いカスタマイズ性
- 必要な機能だけを拡張機能で追加
- テーマやキーバインドを自由に変更
- ワークスペース設定で プロジェクトごとに最適化
マルチファイル対応
- C#スクリプト以外も一つのエディタで管理
- Shader、JSON、XML、Markdownなど
- Gitとの連携も標準で強力
クロスプラットフォーム
- Windows、Mac、Linuxで同じ環境
- 設定の同期機能あり
注意すべきデメリット
初期設定が必要
- 標準ではUnity専用機能が限られる
- 拡張機能の導入と設定が必要
- OmniSharpの初回セットアップに時間がかかる
一部機能の制限
- Visual Studioほど高度なデバッグ機能はない
- IntelliCodeの機能が限定的
- プロファイラーとの連携が弱い
ただし、適切な拡張機能を導入すれば、これらのデメリットはほぼ解消できます。
Unity開発におすすめのVS Code拡張機能
C# for Visual Studio Code(ms-dotnettools.csharp)
必須度:★★★★★
概要 Unityスクリプト(C#)開発に必須の拡張機能です。Microsoft公式が提供しており、C#の言語サポートを強力に提供します。
主な機能
- インテリセンス(入力補完):クラス、メソッド、プロパティの自動補完
- シンタックスハイライト:コードの色分け表示
- エラー検出:リアルタイムでの構文エラー表示
- リファクタリング:変数名の一括変更など
Unity対応機能
- UnityEngine APIの補完対応
- MonoBehaviourクラスの継承サポート
- Unity固有の属性([SerializeField]など)に対応
インストール手順
- VS Codeの拡張機能タブ(
Ctrl + Shift + X
)を開く - 「C#」で検索
- 「C# for Visual Studio Code」をインストール
初回セットアップの注意点
インストール後、OmniSharp(C#のバックエンドサービス)が起動するまで少し時間がかかります:
- ステータスバーに?(Flame)アイコンが表示される
- 初回は.NET SDKのダウンロードが必要な場合がある
- プロジェクトの規模によって5分程度かかることもある
Unity Code Snippets(kleber-swf.unity-code-snippets)
必須度:★★★★☆
概要 Unity開発でよく使うコードをサクッと挿入できるスニペット集です。MonoBehaviourのメソッドやDebug.Logなどを効率的に書けます。
主なスニペット
start
→void Start() { }
update
→void Update() { }
log
→Debug.Log();
mono
→ MonoBehaviourクラスのテンプレート
実際の使用例
// 「start」と入力してTabキーを押すと
void Start()
{
}
// 「log」と入力してTabキーを押すと
Debug.Log();
Shader languages support for VS Code(slevesque.shader)
必須度:★★★☆☆
概要 UnityのShaderLab(.shaderファイル)とHLSLの編集を快適にする拡張機能です。
対応ファイル形式
.shader
(ShaderLab).hlsl
(High Level Shading Language).cginc
(CG Include)
主な機能
- シンタックスハイライト
- 基本的な入力補完
- コードの折りたたみ機能
Shaderファイルの例
Shader "Custom/MyShader" {
Properties {
_MainTex ("Texture", 2D) = "white" {}
_Color ("Color", Color) = (1,1,1,1)
}
SubShader {
Tags { "RenderType"="Opaque" }
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
fixed4 frag (v2f i) : SV_Target {
return _Color;
}
ENDCG
}
}
}
Unity Debugger(Unity-Technologies.debugger-for-unity)
必須度:★★★☆☆
概要 Unity Technologies公式のデバッグ拡張機能です。実行中のUnityプロジェクトにアタッチして、ブレークポイントでの停止や変数の監視ができます。
主な機能
- ブレークポイント:コードの特定行で実行を停止
- 変数ウォッチ:変数の値をリアルタイムで監視
- ステップ実行:1行ずつコードを実行
- コールスタック表示:メソッド呼び出しの履歴確認
デバッグの基本手順
- Unityでプロジェクトを実行
- VS Codeでデバッグビューを開く(
Ctrl + Shift + D
) - 「Attach to Unity」を選択
- ブレークポイントを設定して F5 でデバッグ開始
Rainbow Brackets(2gua.rainbow-brackets)
必須度:★★☆☆☆
概要 カッコ({}
、[]
、()
)を色分けして表示する拡張機能です。入れ子が深いUnityコードでも構造が分かりやすくなります。
効果的な場面
- 複雑なif文やfor文の組み合わせ
- JSONやXMLファイルの編集
- Shaderコードの構造把握
色分け例
public class PlayerController : MonoBehaviour { // 青
void Update() { // 赤
if (Input.GetKey(KeyCode.Space)) { // 緑
transform.Translate(Vector3.up * Time.deltaTime); // 青
}
}
}
UnityとVS Codeを連携させる設定
Unity側の基本設定
External Script Editorの変更
- Unityを起動してプロジェクトを開く
- メニューから
Edit
→Preferences
(Mac:Unity
→Preferences
) External Tools
を選択External Script Editor
を以下に設定:- Windows:
C:\Users\[ユーザー名]\AppData\Local\Programs\Microsoft VS Code\Code.exe
- Mac:
/Applications/Visual Studio Code.app
- Windows:
プロジェクトファイル生成の設定
以下の項目にチェックを入れることで、VS Codeでの補完機能が向上します:
- ☑
Regenerate project files
- ☑
Embedded packages
- ☑
Local packages
- ☑
Local tarball
- ☑
Git packages
- ☑
Built-in packages
VS Code側の設定
ワークスペース設定
プロジェクトフォルダに .vscode/settings.json
を作成:
{
"files.exclude": {
"**/.DS_Store": true,
"**/.git": true,
"**/.gitmodules": true,
"**/.vs": true,
"**/.vsconfig": true,
"**/Library": true,
"**/obj": true,
"**/Temp": true
},
"omnisharp.defaultLaunchSolution": "*.sln",
"dotnet.completion.showCompletionItemsFromUnimportedNamespaces": true
}
launch.jsonの設定
デバッグ機能を使う場合、.vscode/launch.json
を作成:
{
"version": "0.2.0",
"configurations": [
{
"name": "Unity Editor",
"type": "unity",
"path": "/Applications/Unity/Hub/Editor/2022.3.10f1/Unity.app",
"request": "launch"
},
{
"name": "Attach to Unity Editor",
"type": "unity",
"request": "attach"
}
]
}
連携確認の手順
- Unity でスクリプトファイルをダブルクリック
- VS Code が起動して該当ファイルが開かれる
- VS Code の右下に「Unity」と表示される
- OmniSharp が正常に動作していることを確認
よくあるトラブルと対処法
インテリセンス(補完)が効かない
症状
- クラス名やメソッド名の補完が表示されない
- エラー表示が正しく動作しない
- UnityEngine.〇〇 が認識されない
対処法1:OmniSharpの再起動
Ctrl + Shift + P
でコマンドパレットを開く- 「OmniSharp: Restart OmniSharp」を実行
- 数分待ってから動作確認
対処法2:プロジェクトファイルの再生成
- Unity で
Assets
→Open C# Project
をクリック - VS Code でプロジェクトが正しく読み込まれるか確認
- 必要に応じて Unity を再起動
対処法3:.NET SDKの確認
# ターミナルで .NET SDK のバージョン確認
dotnet --version
# 6.0 以上が必要(2023年現在)
ブレークポイントが止まらない
症状
- ブレークポイントを設定しても実行が止まらない
- デバッガーがアタッチできない
対処法1:Unity側の設定確認
- Unity の
File
→Build Settings
Development Build
にチェックScript Debugging
にチェック
対処法2:デバッグ手順の確認
- Unity でプレイモードに入る
- VS Code で
F5
を押す - 「Attach to Unity Editor」を選択
- プロセス一覧から Unity エディタを選択
対処法3:ファイアウォールの確認
Windows の場合、ファイアウォールが通信をブロックしている可能性があります:
- Windows Defender ファイアウォールを開く
- 「アプリまたは機能の許可」をクリック
- Unity Editor と VS Code が許可されているか確認
パフォーマンスの問題
症状
- VS Code の動作が重い
- ファイル保存時に数秒かかる
対処法1:不要なファイルの除外
.vscode/settings.json
で除外設定を追加:
{
"files.watcherExclude": {
"**/Library/**": true,
"**/Temp/**": true,
"**/obj/**": true,
"**/.git/**": true
}
}
対処法2:OmniSharpの設定調整
{
"omnisharp.enableEditorConfigSupport": true,
"omnisharp.enableImportCompletion": true,
"omnisharp.enableRoslynAnalyzers": false
}
より効率的な開発のためのテクニック
Git連携の活用
.gitignoreの設定
Unityプロジェクト用の .gitignore
ファイル例:
# Unity generated
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
[Ll]ogs/
[Uu]ser[Ss]ettings/
# VS Code
.vscode/
# OS generated
.DS_Store
Thumbs.db
コードスニペットのカスタマイズ
独自のスニペットを作成して効率化:
File
→Preferences
→Configure User Snippets
csharp.json
を選択- カスタムスニペットを追加
{
"Unity Singleton": {
"prefix": "singleton",
"body": [
"public static ${1:ClassName} Instance { get; private set; }",
"",
"void Awake()",
"{",
" if (Instance == null)",
" {",
" Instance = this;",
" DontDestroyOnLoad(gameObject);",
" }",
" else",
" {",
" Destroy(gameObject);",
" }",
"}"
]
}
}
タスクの自動化
.vscode/tasks.json
でビルドタスクを設定:
{
"version": "2.0.0",
"tasks": [
{
"label": "Build Unity Project",
"type": "shell",
"command": "/Applications/Unity/Hub/Editor/2022.3.10f1/Unity.app/Contents/MacOS/Unity",
"args": [
"-batchmode",
"-quit",
"-projectPath",
"${workspaceFolder}",
"-buildTarget",
"StandaloneOSX"
],
"group": "build"
}
]
}
まとめ
VS Codeは適切な拡張機能を導入することで、Unity開発を軽快かつパワフルにサポートしてくれます。重要なポイントをまとめると:
必須の拡張機能
- C# for Visual Studio Code:C#開発の基盤
- Unity Code Snippets:効率的なコード入力
推奨の拡張機能
- Shader languages support:Shader開発時に便利
- Unity Debugger:高度なデバッグが必要な場合
- Rainbow Brackets:コードの可読性向上
設定のポイント
- Unity側の External Script Editor 設定
- プロジェクトファイル生成オプションの有効化
- VS Code のワークスペース設定
トラブル対策
- OmniSharp の状態確認と再起動
- .NET SDK のバージョン確認
- ファイアウォール設定の確認
コメント