Visual Studioでオートコンプリートが機能しない


151

スクリプトに少し問題があります。Visual StudioでUnity用のC#スクリプトを書いているとき、メモ帳で作業しているように見えますが、オートコンプリートはありませんます(正しいですか)、非常にゆっくりと書く必要があります。

ビデオを見てください。最初は通常の状況です(チュートリアルから)。2番目の部分は私の問題を示しています。

問題のあるビデオ

たとえば、transformクラスは提案やオートコンプリートを表示しません。

問題のある画像:

ここに画像の説明を入力してください

Unityバージョン:5.5.2f1
Visual
Studio 2015 Visual Studio Tools for Unityがインストールされています


1
translate.google.com :)動画を作成してYouTubeにアップロードし、エラー+1 xdについて説明します
Timon Post

OK、ll try... I have a Little problem with scripts. When IVisual StudioでUnity用のC#スクリプトを作成しているようです。メモ帳で作業しているようです。「ヒント」はなく(正しいですか)、非常にゆっくりと作成する必要があります。ビデオを見てください。最初は通常の状況です(チュートリアルから)。2番目の部分は私の問題です。
CorbenDalas 2017年

1
ツールチップではなく、「オートコンプリート」について質問していると思います。
Martijn Pieters

Visual StudioのバージョンとUnityのバージョンは何ですか?
プログラマ

Unityバージョン:5.5.2f1 / Visual studio 2015 / Visual Studio Tools for Unityがインストールされています
CorbenDalas

回答:


341

スクリプトはプロジェクト名の代わりに「その他のファイル」と表示するため、オートコンプリートはありません。あなたの質問のビデオから来た以下の画像を見てください:

ここに画像の説明を入力してください

その他のファイル」メッセージは、さまざまな理由で発生します。

1あなたはユニティ・エディタから、それを開くのではなく、別のフォルダからユニティC#ファイルを開くと.ITが発生する可能性があります。

2。これは、Visual Studioがまだ開いているときにUnityがクラッシュし、一部のファイルが破損した場合にも発生します。

3 Unityが開かれた再もはやのVisual Studioに接続されていない閉じたので.ITが発生する可能性があります。Visual Studioを開くと、「その他のファイル」が表示され、自動補完は行われません。

4。これは、Visual Studio Tools for unityがインストールされていないがあります。

5 .Unityからスクリプトを作成したら、Unityがスクリプトを処理する前、または丸いアイコンのアニメーションがアニメーションを終了する前に、スクリプトをすばやく開きます。


ほとんどの場合、UnityとVisual Studioを再起動するとこれが修正されます。

どちらが問題の原因かはわかりませんが、これを修正するための最も可能性の高い解決策について説明します。

パート1を修正

1。このリンクからUnityのVisual Studio Toolsをダウンロードしてインストールします。UnityとVisual Studioの両方が閉じている間にこれを行います。

2 .FromユニティEditorは、に行く編集 - > [ 環境設定 ... - > 外部ツール。[ 外部スクリプトエディター ]ドロップダウンメニューで、それをVisual Studio 2015に変更します。

ここに画像の説明を入力してください


パート2を修正

新しく作成されたC#ファイルがその他として表示される場合は、以下の手順に従ってください。

1 .From Visual Studioは、に行く[ツール ] - > [ オプション... - > Unityのためのツール - > その他。[ 接続アイコンを表示する]でtrueVisual Studioを再起動するように設定します

ここに画像の説明を入力してください

2。再起動すると、接続アイコンがVisual Studioで使用できるようになります。それをクリックして、接続するUnityインスタンスを選択します。赤い「x」アイコンが茶色のチェックマークアイコンに変わります。これで、Unityで新しいC#ファイルを作成すると、Miscellaneousと表示されずにファイルが開くはずです。

ここに画像の説明を入力してください


パート3を修正

まだ修正されていませんか?

プロジェクトを再インポートしてから、C#プロジェクトを開きます。

1 .Visual Studioを閉じます。

2 .Fromユニティ、に行くことによって再インポートプロジェクト資産 - > 再インポートすべて

ここに画像の説明を入力してください

3.次に、[ アセット] -> [C#プロジェクトを開く]に移動して、Visual Studioでプロジェクトを開きます。これにより、プロジェクトがリロードされ、考えられるソリューションファイルの問題が修正されます。

ここに画像の説明を入力してください


パート4を修正

まだ修正されていませんか?

各C#ファイルを個別に修正します。

1。「すべてのファイル表示」アイコンをクリックします。

ここに画像の説明を入力してください

2。オートコンプリートを実行しないスクリプトを選択し、右クリックして[ プロジェクトに含める ]を選択します

ここに画像の説明を入力してください


パート5を修正

まだ修正されていませんか?

クレジットは、複数の人に効果があると思われるこの特定のソリューションのchrisvarnzに提供されます。

1 .Visual Studioを閉じる

2プロジェクトのディレクトリに移動し、生成されたすべてのVisual Studioファイルを削除します。

これらは削除するファイル拡張子です:

  • .csproj
  • 。ユーザー
  • .sln

例:

プロジェクトの名前が"Target Shoot"であるとしましょう。これらは、削除するファイルが次のようになるはずです。

  • ターゲットShoot.csproj
  • ターゲットShoot.Editor.csproj
  • ターゲットShoot.Editor.csproj.user
  • ターゲットShoot.Player.csproj
  • ターゲットShoot.Player.csproj.user
  • ターゲットShoot.sln

他のものは削除しないでください。

3 .Unity からもう一度スクリプトをダブルクリックすると、新しいVisual Studioファイルが生成され、Visual Studioが開きます。これで問題が解決する場合があります。


パート6を修正

機能しない場合は、このエラーが発生しているかどうかを確認しください。

「GetReferenceNearestTargetFrameworkTask」タスクが見つかりませんでした

1な.install Nuget PackageManagerからここに

2 .Visual Visualを再起動します。

詳細については、この回答を参照してください。


4
その他のファイルポインターをありがとう!VSを閉じ、VSプロジェクトとslnを削除してから、Unityでスクリプトをダブルクリック(したがって、プロジェクトファイルを再生成してVSを再度開く)すると、修正されました。「すべてを再インポート」ボタンの前に試してみることをお勧めします。
chrisvarnz

2
それは良いアドバイスです。これを読んでいる人なら誰でもこのコメントを見ることができるといいのですが
プログラマー、

これはほとんどの場合、新しいスクリプトを作成するか、Unity内の別のフォルダーにスクリプトを移動したことが原因です。UnityとVSを再起動しても解決しない場合は、*.csproj*.slnファイルも削除してUnityを起動します。これは通常機能します
derHugo

1
@chrisvarnzソリューションは、これらすべての他の提案を試した後、私にとってはうまくいきました。
gollumullog

1
@gollumullogいいね。それが複数の人に有効だったので、それも含めるように私の回答を更新しました。
プログラマ

38

これを試して、

Unityエディターでメニューに移動し、編集->設定->外部ツール->外部スクリプトエディターをクリックします。Visual Studio(インストールされているバージョンのVS)に設定します。

メニューバーで、編集->プロジェクト設定->プレーヤー設定->その他の設定->構成-> API互換性レベルの確認->インストールされている.Netバージョンに変更します。私の場合、それを.Net 4.xに設定しました

Visual Studioが既に実行されている場合は、Visual Studioに移動すると、プロジェクトの再読み込みを求められます。プロジェクトをリロードします。機能するかどうかを確認し、そうでない場合はVisual Studioを閉じます。Unityエディターからcsファイルを開くと、動作するはずです。


私も同じです、ありがとう!すべてを試してみましたが、これだけで修正されました。
Shadowmak

1
これが本当の答えです。これは一番上にある必要があります!
マークパーネル

これも私にとってはうまくいきました。また、Unity 2020.2.0a13で行ったもう1つのことは、[編集] / [プロジェクトの設定] / [プレーヤー] / [その他の設定:自動グラフィックAPI]のマークをオフにしてから再度オンにすることです。Visual Studioの再起動後、オートコンプリートが戻ってきました:D
Ant100

14

この問題をより便利な方法で修正する別の方法を見つけました。

  1. ソリューションエクスプローラーで壊れたファイルを選択します。
  2. プロパティを開きます。
  3. フィールド「ビルドアクション」を「コンパイル」から「なし」に切り替えます。
  4. 次に、「コンパイル」に切り替えます。

これにより、UnityとVisual Studioの間の同期が何らかの形で終了します。

次にVisual Studioがプロジェクトを再読み込みするときに、警告が表示されます。「破棄」をクリックしてください。


7

Visual Studioで、プロジェクトをアンロードして再ロードします。

  • ソリューションエクスプローラーでプロジェクトを右クリック
  • Unload Projectを選択します
  • Reload Projectを選択します

修繕!

この解決策は、問題に何度も遭遇した場合に、最良(最も簡単)に機能することがわかりました。

ソース:https : //alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-android-projects/


助けてくれてありがとう!これは働いていたが、私たちは90年代に戻って、我々はWindowsを再起動する必要があることを感じて、これだけの時間、それはVS 2017年だ
user3053247

4
  1. Visual Studioでプロジェクトを選択する
  2. 「更新」ボタンをクリック

ここに画像の説明を入力してください


1
うわあ!他には何も助けになりませんでした。VSを再インストールし、Unityを再インストールしてVSを再インストールし、.slnファイルと.cjsprojファイルを削除して再生成しました。何も
役に立た

3

上記のすべてを実行しても機能しない場合は、次のことを試してください。注:VSを更新しておく必要があります。 ビジュアルスタジオのスクリーンショット

Unityに移動>編集>設定>外部ツール>外部スクリプトエディター。 Unityスクリーンショット どういうわけか、私は外部スクリプトエディターに「ビジュアルスタジオ」を選択していなかったため、機能しませんでした。私がこれを選択し、Unityからc#ファイルをダブルクリックするとすぐに、機能し始めました。

参考になれば幸いです。


2

今日、Unity 2017でVisual Studio 2017 15.4.5を使用して同じ問題に遭遇しました。

Visual Studioでプロジェクトを右クリックし、ターゲットフレームワークを3.5から4.5に変更することで、問題を解決できました。

これが同様のシナリオで他の人を助けることを願っています。


2

2つの代替オプション:

修正1

@singletonは私をこの方向に向けました。プロジェクトは自動生成されるため、Visual Studioでターゲットを変更する代わりに、Unityでターゲットを変更する必要があります。

最初に自動生成されたVisual Studioファイルを削除します:.csproj .user .sln

次に、Unity内からPlayerSettingsに移動し、[Other Settings]で[Scripting Runtime Version]をStable 3.5からExperimental 4.6に変更します。

しかし、それでも問題は解決しませんでした。

修正2

Unity関連コードへのすべての参照に黄色の警告が付いていることに気づきました。エラーログを確認し、これに該当するかどうかを確認してください。特に、次のエラーが発生するかどうかを確認します。getreferenceNearestTargetframeworkTask

その場合:Visual Studio Installerをもう一度起動してください。

Build Tools 2017で、[Modify]をクリックします。

「Nugetターゲットとビルドタスク」がチェックされていることを確認します。ユニバーサルWindowsプラットフォーム開発をクリックすると、これがチェックされます。


1

UnityエディターではなくVisual Studio自体から.csファイルを作成することで解決策を見つけました

  • ソリューションエクスプローラーでプロジェクトフォルダーを右クリック
  • 追加>新しいアイテム
  • 右上の検索フィールドに「unity」と入力します
  • 「CSharp MonoBehaviour」を選択します
  • 下部にスクリプトの名前を付け、[追加]をクリックします

1
スクリプトを既に作成しているが、突然この問題が発生した場合は、すべてのスクリプトを削除してVisual Studioから再度作成しますか?
プログラマ

@Programmerよくパート4ソリューションを使用して既にエラースクリプトを修正しますが、Visual Studioからファイルを作成しない限り、どのソリューションも新しいスクリプトのエラーを停止しないため、常にVisual Studioを使用して新しいスクリプトを作成します
Fredy Rommy Sianturi

1

私の場合、正しい.netバージョンがPCにインストールされていません。私のPCに.net 3.5をインストールしましたが、それでうまくいきました。


あなたの答えは、Unity Player設定のAPI互換性レベルを.Net 2.0から.Net 4.xに変更するというアイデアを私に与えてくれました。次に、Visual Studioでプロジェクトを再読み込みします。これですべてが正常に動作します。
Juned Khan Momin

1

私が直面した問題は、C#プロジェクトが別の.NET Framework(4.7.2)をターゲットにしているのに対し、Unityプロジェクトは別のターゲット(.NET 3.5)を持っていることでした。

Unityでターゲットを変更してこれを修正しました

[ファイル]-> [ビルド設定]-> [プレーヤー設定]-> [その他の設定]-> [API互換性レベル]:既にインストールされている.NETバージョンに設定します(ここで .NETバージョンを確認してください)。私の場合、それは4.xでした

この後、Visual Studioは完全に機能し、オートコレクトも修正されました。


これでうまくいきました。API互換性レベルを.Net 4.xに変更すると、Visual Studioはプロジェクトの再読み込みを要求しました。プロジェクトをリロードしました。次に、Visual Studioを閉じ、Unity Editorからcsファイルを開いたところ、すべて正常に動作しました。
Juned Khan Momin

1

押してみてくださいCtrl + Alt + Space(提案モードと標準補完モードが切り替わります)


0

WindowsまたはmacOSの場合:

ダウンロード/インストール Visual Studio IDE(Unityツールを使用)

インストールするときは、

Unityによるゲーム開発

ここに画像の説明を入力してください

次に、Unityを使用して(C#ファイルの1つをダブルクリックできます)、新しいC#プロジェクトを開くと、Visual Studio IDEが新しいプロジェクト構造で開きます。

ここに画像の説明を入力してください

そこから、あなたが探しているものを見ることができるはずです。

例えば:

ここに画像の説明を入力してください

ここに画像の説明を入力してください

Linuxの場合(推奨):

試しにMonoDevelopを - 追加情報は、それがコード補完/ヒントを提供します。


0

Unityプロジェクトで構成された同じバージョンの.NETをWINにインストールするように解決しました。(プレイヤー設定)


0

Visual Studio Tools for Unityが原因で、オートコンプリートも機能しませんでしたがインストールされて。したがって、それをインストールした後、自動生成されたVisual Studioファイルを削除します。他の人はあなたが再びファイルを開いて問題が解決されたと言いましたが、それはされません。

コツは、通常ファイルをダブルクリックする代わりに、右クリックして「C#プロジェクトを開く」でUnityからC#ファイルを開く必要があることです。


0

上記の解決策のどれも私にとってうまくいきませんでした。しかし、ProjectName.CSPROJファイルを開いて手動で新しいファイルを追加すると、魅力的に機能しました


0
  • [ツール]メニューの[オプション]に移動し、[環境]ノードで[ドキュメント]を選択します。(ドキュメントがリストに表示されない場合は、[オプション]ダイアログボックスで[すべての設定を表示]を選択します。)
  • 「ソリューションエクスプローラーのその他のファイル」にチェックを入れ、[OK]をクリックします。(このオプションでは、ソリューションエクスプローラーに[その他のファイル]ノードが表示されます。その他のファイルとは、プロジェクトまたはソリューションに関連付けられていないファイルですが、このオプションをオンにすると、ソリューションエクスプローラーに表示されます。)
  • ソリューションエクスプローラーの[その他のファイル]でファイルを見つけます。次に、ファイルを所属する場所にドラッグアンドドロップしてください。これにより、ファイルをドロップした場所にコピーされます。必要に応じて、Miscellaneous Filesフォルダーの下の古いファイルを安全に削除できます。

クレジット:https : //stackoverflow.com/a/47662523/10471480


Scriptsフォルダーが表示されない場合:

  • ソリューションエクスプローラーで[すべてのファイルを表示]をクリックします
  • Scriptsフォルダーを見つけます。
  • スクリプトを右クリックし、「プロジェクトに含める」を選択します

0

うまくいったのは、壊れたクラス内のすべてのコードをコピーして、そのファイルを削除したことです。次に、空のファイルを開いて貼り付けました。

結果:美しい構文のハイライトが復活しました!


0

ReSharperツールを使用している場合は、IntelliSenseをオーバーライドして独自のものであることに注意してください。これを変更するには、VSで、[拡張機能]-> [ReSharper]-> [オプション]-> [IntelliSense]-> [全般]に移動し、ReSharperではなくVisual Studioを選択します。


0

VSを再起動または再インストールする前に、まず他のプロジェクトを開いて、Intellisenceが機能するかどうかを確認します。機能する場合、問題はおそらく現在のプロジェクトにあります。最初に、最も可能性の高い犠牲者は、保留中の更新があるNUGETパッケージです。これを修正するには、

  1. 参照を右クリック
  2. NUGETパッケージの下のNUGETパッケージの管理に進みます
  3. アップデートに進み、アップデートをインストールして、Intellisenceを再確認します。

0

これらすべてを試しましたが、ソリューションエクスプローラーでソリューションを右クリックして既存のアイテムを追加し、ウィンドウズエクスプローラーでC#アセンブリファイルを見つける必要があることに気づきました。このエラーが発生する原因はさまざまですが、これが最も簡単な解決策です。Unityからスクリプトをダブルクリックしても、アセンブリがドラッグされないようです。


0

上記の方法の1つが私のために働いており、私はこの問題の解決策を見つけました
。1。最初に、プロジェクトディレクトリに移動して.slnファイルを削除します
。次に、Visual Studioがエラーで開きます。 ここに画像の説明を入力してください

  1. 次に、[OK]をクリックしてVisual Studioエディターを閉じます。
  2. 最後に、Windows Defenderをオフにして、プロジェクトディレクトリに移動すると、.csprojファイルが作成されます。これをダブルクリックしてVisual Studioエディターから開き、assetsフォルダー内のscriptsフォルダーを開いて、スクリプトを開くだけで、オートコンプリートが完全に機能します。

0

Visual Studio Community 2019およびUnity 2019.3で2020を更新します。

1)管理者としてVisual Studio Installerを開き、現在のインストールを変更して「Unity用のゲーム開発」を追加することを選択します

2)今すぐUnityで新しいc#スクリプトを追加し、それをVisual Studioで(自動的に)開くと、ウィンドウの上部に「その他」と表示されず、「Assembly-CSharp」と表示され、オートコンプリートが機能します。


0

別の可能な修正:

  1. プロジェクトウィンドウで、Assetsフォルダーをクリックします。
  2. 右クリックして、作成-> C#スクリプト
  3. それをダブルクリックして、待ちます。

どういうわけか、この作品。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.