HOME » » » » HERE

ゆにすち準備編(この画像は、https://www.pakutaso.com/さまから借用しています)

こんにちわ、横浜すみっこクリエイターととです。

unityでゲームを制作して販売するまでの軌跡を描くゆにすち!準備編です!

今回は、Visual Studio Code(以下、「VS Code」といいます)の入力支援機能を阻害している要因を排除して、「C#」のインテリセンスを有効にします。

ゆにすち!シリーズとは

このシリーズではunityでSTEAM販売を目指す!略してゆにすち!と銘打ち、モデリングもプログラミングも企画も販売も何から何までぜ~んぶド素人のととが、PCゲームを考え、制作して、販売するまでの風景を履歴として残していくものです。

この準備編では、3Dゲーム開発プラットフォームであるunityの導入など、ゲーム制作の開発環境を整えていきます。

この記事のポイント!

  • インテリセンスとは、VS Codeでの入力支援機能のこと!
  • .NET Framework v4.7.1 Developer Packsがないと、「C#」のインテリセンスは有効にならない!
  • 設定項目「Omnisharp: Use Global Mono」をalwaysにしないとダメな場合も!

インテリセンスとは?

インテリセンス(IntelliSense)とは、VS Codeの入力支援機能のことです。具体的には「オートコンプリート」*と「後続要素の候補表示」があります。

オートコンプリートは自動補完のことで、プログラム領域だけでなく幅広く採用されている技術です。検索エンジンなどで文字を打ち始めると、自動的に候補一覧が表示されるアレですね。

インテリセンスが使えない?!

オートコンプリートが効かない

前回作成した「NewBehaviourScript.cs」を開きます。

ゆにすち(「debug」と入力しますが。。。) オートコンプリートで候補が表示されない

17行目に「debug」と入力してみてください。オートコンプリートにより候補リストが表示され、、、るはずなんですが。

「候補はありません。」と表示されてしまいました。

何も表示されない場合は、「debug」にカーソルが当たっている状態でctrl + spaceを押してみてください。

警告の確認

ゆにすち(警告を確認します) 「プロジェクトの読み込みに問題」警告

エディターの右下を確認すると、警告が発現しています。

Some projects have trouble loading. Please review the output for more details.

ソース: C# (拡張機能)

一部のプロジェクトでは読み込みに問題があります。詳細については、出力を確認してください。

少し調べてわかったのですが、この警告が「C#」のインテリセンスを阻害している原因のようです。

Show Outputをクリックして、詳細を確認してみます。

ゆにすち(OmniSharpの出力にFailが出ています) 出力ウィンドウのエラー表示

出力ウィンドウに警告の詳細が表示されます。上の図の下線部がエラー内容です。

Error: The reference assemblies for .NETFramework, Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application.
You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks


エラー:.NET Framework v4.7.1の参照アセンブリが見つかりません。該当バージョンのDeveloper Pack(SDK / Targeting Pack)をインストールするか、アプリケーションを再ターゲットしてください。 .NET Framework Developer Packは、https://aka.ms/msbuild/developerpacksからダウンロードできます。

.NET Framework 4.7.1 Developer Packsが見つからないことで警告が出ていて、そのせいでインテリセンスがうまく動いていない、ということがわかりました。

.NET Framework 4.7.1 Developer Packsのダウンロード

先に注意点を言っておくと、.NET Framework 4.8 Developer Packsではダメでした。「.NET Framework」自体は下位互換があるらしいのですが、「Developer Packs」はどうやら下位互換がないようです。

「4.7.1以上」ではなく、「4.7.1」そのものが必要のようです。

ゆにすち(リンクをクリックします) 外部リンクをクリック

上の図のように下線が引かれたURLがあるので、ctrlを押した状態で左クリックします。または下記リンクをクリックします。

ゆにすち(Webページ 「開発者向けの .NET Framework のインストール」が開きます) 「開発者向けの .NET Framework のインストール」ページ

Microsoft 「開発者向けの .NET Framework のインストール」のウェブページが開きます。

ゆにすち(「.NET Framework 4.7.1」をクリックします) 「.NET Framework 4.7.1」

下にスクロールすると.NET Framework 4.7.1があるので、クリックします。

ゆにすち(「Developer Pack」の方をクリックします) 「Developer Pack」のダウンロード

Microsoft「Download .NET Framework 4.7.1」のウェブページが開くので、Download .NET Framework 4.7.1 Developer Packをクリックします。

「Runtime」の方ではないので、ご注意ください。
ゆにすち(ダウンロードされました) ダウンロード完了

ダウンロードが完了しました。

.NET Framework 4.7.1 Developer Packsのインストール

先ほど保存されたNDP471-DevPack-ENU.exeを開きます。

時期や環境により数字は異なる場合があります。
ゆにすち(チェックを入れて「インストール」をクリックします) Microsoft .NET Frameworkウィザード

Microsoft .NET Frameworkウィザードが開いて「追加ライセンス条項」が表示されるので、ライセンス条項および使用条件に同意するにチェックを入れて、インストールをクリックします。

ゆにすち(「閉じる」をクリックします) Microsoft .NET Frameworkウィザード

インストールが完了したら閉じるをクリックします。

VS Codeの再起動

VS Codeを再起動します。

ゆにすち(警告がなくなりました) 通知がなくなりました

警告がでなくなりました。

VS Codeの設定

調べていく中で、拡張機能「C#」の設定が、インテリセンスに影響する場合があるという内容も目にしたので、設定する項目とその変更方法を説明しておきます。

ゆにすち(拡張機能をクリックします) 「拡張機能」を開く

画面左のアクティビティバーのwindow(拡張機能)をクリックします。

ゆにすち(歯車マークから「拡張機能の設定」をクリックします) 「拡張機能の設定」を開く

適用されている拡張機能一覧から「C#」の settings > 拡張機能の設定をクリックします。

ゆにすち(〔use global mono〕を追記します) 「C#」の設定画面

エディター領域に設定画面が開きます。上部の検索バーに「@ext:ms-dotnettools.csharp」と入力されているので、半角スペースを挟んでuse global monoと追記します。

ゆにすち(プルダウンから〔always〕を選択します) 「C#」の設定画面

上の図のように「Omnisharp: Use Global Mono」項がヒットするので、プルダウンからalwaysを選択します。

ゆにすち(「Restart OmniSharp」をクリックします) 「OmniSharp」の再起動

変更すると、右下にポップアップで「OmniSharp」を再起動するか聞かれるので、Restart OmniSharpをクリックします。

これで阻害要因がすべて除去できたはずです。インテリセンスが有効になったか確認してみましょう。

インテリセンスの有効確認

ゆにすち(インテリセンスが有効になりました) 予測機能が有効になった

「NewBehaviourScript.cs」を開いて、「debug」と追記した17行目を一度削除します。そのうえで、再度「debug」と入力してみてください。

インテリセンスが働いて、予測結果が表示されたと思います。

何も表示されない場合は、「debug」にカーソルが当たっている状態でctrl + spaceを押してみてください。

おまけ

OmniSharpとは?

今回、ちょこちょこ出てきていた「OmniSharp」についてです。実は「OmniSharp」は、インテリセンスを動かしているシステムです。言ってしまえばインテリセンスそのものだった、ということになります。冒頭の警告の詳細の中でも「OmniSharp」に不具合があるという記述がありました。

.NET Framework Developer Packについて

今回導入した.NET Framework Developer Pack.NET Frameworkそのものとは別物です。

.NET Frameworkについては、v4.Xは各バージョンは共存できず、下位互換を持っています。なので現時点で最新のv4.8が入っていれば、それ以下はインストールすることもできないですし、入れる必要もないということになります。

今回導入した.NET Framework Developer Pack v4.7.1ですが、.NET Framework v4.8が入っていてもインストールすることができますし、入れたことで全体がv4.7.1まで落ちるわけではありません。

ゆにすち(.NET Frameworkのバージョンを確認します) Windowsの機能ダイアログ

コントロールパネルの「Windowsの機能の有効化および無効化」から確認できる.NET Frameworkのバージョン情報からも、v4.8が維持されていることがわかります。

まとめ

今回は、VS Codeの入力支援機能であるインテリセンス( 「C#」)を有効にする作業をしました。.NET Framework Developer Pack v4.7.1を導入することで、阻害要因であった警告を消し去り、無事インテリセンスを稼働させることができました。

次回予告

Next time on... Visual Studio Code のおすすめ設定24選!

次回はVS Codeの設定を変更する方法と個人的におすすめ設定を紹介したいと思います。
では、今回はこの辺で。

コメント