web-dev-qa-db-ja.com

Visual Studioで自動補完が機能しない

スクリプトに関して少し問題があります。私がメモ帳で作業しているように、Visual StudioでUnity用のC#スクリプトを書いているときは、自動補完(正しい?)がないので、ゆっくり書く必要があります。

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

問題のある動画

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

問題のある画像:

enter image description here

ユニティバージョン:5.5.2f1
ビジュアルスタジオ2015
Unity用のVisual Studio Toolsがインストールされています

67
CorbenDalas

スクリプトには、プロジェクトの名前ではなく「Miscellaneous Files」と表示されるため、オートコンプリートはありません。あなたの質問のビデオから来た以下の画像を見てください:

enter image description here

Miscellaneous Files」メッセージは、さまざまな理由で発生する可能性があります。

1。Unity C#ファイルをUnity Editorから開くのではなく、別のフォルダーから開くと発生する可能性があります。

2。これは、Visual Studioがまだ開いている間にUnityがクラッシュしたために発生し、そのため一部のファイルが破損する可能性があります。

。Unityが閉じられてから再度開かれたが、Visual Studioに接続されなくなったために発生する可能性があります。 Visual Studioを開くと、「Miscellaneous Files」が表示され、自動補完は行われません。

4。これは、Visual Studio Tools for unityがインストールされていない場合に発生する可能性があります。

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


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

どちらが問題を引き起こしているのかわかりませんが、これを解決するための最も可能性の高い解決策をカバーします。

パート1を修正

1。Download and InstallVisual Studio Tools for unityfrom this link。 UnityとVisual Studioが両方とも閉じている間にこれを行います。

2。Unity Editorから、Editに移動します->Preferences... ->外部ツールExternal Script Editorドロップダウンメニューで、Visual Studio 2015に変更します。

enter image description here


修正2

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

1。Visual StudioからTools->Options ...->Tools for Unity->その他接続アイコンの表示で、trueに設定し、Visual Studioを再起動します。

enter image description here

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

enter image description here


修正

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

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

1。Visual Studioを閉じます。

2。Unityから、Assets->Reimportに移動してプロジェクトを再インポートします。すべて

enter image description here

。今、Assets->に移動して、Visual Studioでプロジェクトを開きます。 C#プロジェクトを開きます。これにより、プロジェクトがリロードされ、ソリューションファイルの問題が修正されます。

enter image description here


修正4

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

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

1Show All Filesアイコンをクリックします。

enter image description here

2。オートコンプリートを実行しないスクリプトを選択し、右クリックしてInclude In Projectを選択します。

enter image description here


パート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

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

。再度スクリプトをダブルクリックしますfrom Unity新しいVisual Studioファイルを生成し、Visual Studioを開きます。これで問題が解決する場合があります。


修正6

動作しない場合は、 this エラーがあるかどうかを確認します。

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

1。InstallNuget PackageManagerfrom here .

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

詳細については、 this answerを参照してください。

179
Programmer

私はもっ​​と便利な方法でこの問題を解決する別の方法を見つけました:

  1. ソリューションエクスプローラーで壊れたファイルを選択してください。
  2. そのプロパティを開きます。
  3. フィールド "Build Action"を "Compile"から "None"に切り替えます。
  4. それから「コンパイル」に戻します。

これはUnityとVisual Studioの間の同期をどうにかして殺すでしょう。

次回Visual Studioがプロジェクトをリロードするときには、警告が表示されます。 「破棄」をクリックするだけです。

14
Michaël Nguyen

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

  • ソリューションエクスプローラーでプロジェクトを右クリック
  • プロジェクトのアンロードを選択
  • プロジェクトの再読み込みを選択

一定!

私はこの解決策が、問題に何度も遭遇した上で、最もよく(最も簡単に)機能することを発見しました。

出典: https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-Android-projects/

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

enter image description here

4
GLeBaTi

私はUnity 2017でVisual Studio 2017 15.4.5を使用して本日同じ問題にぶつかりました。

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

これが同じようなシナリオで他の誰かに役立つことを願っています。

2
singleton

2つの選択肢

修正1

@シングルトンは私をこの方向に向けました。プロジェクトは自動生成されるので、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インストーラをもう一度起動します。

Build Tools 2017で、[修正]をクリックし、

「ターゲットの作成とタスクの作成」にチェックマークが付いていることを確認してください。 Universal Windows Platform開発をクリックすると、これにチェックが入ります。

2
ickydime

私は統一エディタの代わりにビジュアルスタジオ自体から.csファイルを作成することによって私のソリューションを見つけました

  • ソリューションエクスプローラーでプロジェクトフォルダーを右クリック
  • 追加>新しいアイテム
  • 右上の検索フィールドに「unity」と入力します。
  • "CSharp MonoBehaviour"を選択してください
  • 下部にスクリプトに名前を付けて[追加]をクリックします。
  • [ツール]メニューの[オプション]に移動し、[環境]ノードで[ドキュメント]を選択します。 (ドキュメントが一覧に表示されない場合は、[オプション]ダイアログボックスの[すべての設定を表示]を選択します。)
  • [ソリューションエクスプローラのその他のファイル]にチェックを入れて[OK]をクリックします。 (このオプションは、ソリューションエクスプローラに[その他のファイル]ノードを表示します。その他のファイルは、プロジェクトまたはソリューションに関連付けられていないファイルですが、このオプションにチェックマークを付けると、ソリューションエクスプローラに表示されます。)
  • ソリューションエクスプローラで、[その他のファイル]の下にあるファイルを見つけます。それからそれが属するべき場所にあなたのファイルをドラッグ&ドロップしてください。ファイルをドロップした場所にコピーします。削除したい場合は、Miscellaneous Filesフォルダの下の古いファイルを安全に削除できます。

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


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

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

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

トリックは:通常ファイルをダブルクリックする代わりに、あなたは右クリックしそれから「Open C#Project」によってUnityからC#ファイルを開く必要があります。

これを試して、

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

メニューバーで、[編集]-> [プロジェクト設定]-> [プレーヤー設定]-> [その他の設定]-> [設定]-> [API互換性レベルの確認]->インストール済みの.Netバージョンに変更します。私の場合、.Net 4.xに設定します

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

0

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

結果:美しい構文のハイライトが戻ってきました。

0
Eray Alparslan

私のUnityプロジェクトで設定されていたものと同じバージョンの.NETをWINにインストールすることにしました。 (プレーヤー設定)

0
Bruno Araujo

WindowsまたはmacOSの場合:

Visual Studio IDE(Unity Toolsあり) をダウンロード/インストールします

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

Unityでのゲーム開発

enter image description here

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

enter image description here

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

例えば:

enter image description here

enter image description here

Linuxの場合(提案):

Monodevelop - 追加情報 を試してください。コード補完/ヒントが表示されます。

0
Brien Foss

上記の解決策のどれも私のために働きませんでした。しかし、私はProjectName.CSPROJファイルを開いて手動で新しいファイルを追加しました、そしてそれは魅力のように働きました

0

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

Unityのターゲットを変更することでこれを修正しました。

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

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

0
rkbroach

私の場合は、正しい.netバージョンが私のPCにインストールされていませんでした。私は私のPCに。net3.5をインストールし、それは私のために働いた。

0