web-dev-qa-db-ja.com

VS Code IntelliSenseがUnity3dで機能しない

問題:IntelliSenseがUnity固有のメソッドと関数(つまり、UpdateFixedUpdateAwakeなど)に対して機能していません。

ただし、Unity固有ではないメソッド(つまり、IEnumeratorvoidpublicfloatintなど)では機能します。)およびUnity固有の変数(つまり、Gameobjecttransformcameraなど)およびUnity固有の名前空間(つまり、UnityEngineUnityEditorUnityなど)。

私が使用しています:Visual Studio Code 1.41、Unity 3d 2018.4.15f1(2019.2.xを使用しているときに同じ問題があります)。

次の解決策を試してみたが結果は出なかった。

  1. 異なるバージョンの.NETの使用
  2. プロジェクト内のvscodeファイルを削除しました。
  3. UnityとVisual Studioの両方をアンインストールして再インストールしました。
  4. _<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>_を<TargetFrameworkVersion>(Currently installed version)</TargetFrameworkVersion>に変更しましたが、団結は自動的にデフォルトでv4.7.1に戻ります

考えられる問題:

  1. プロジェクトが作成するslnファイルは読み取り

    _Microsoft Visual Studio Solution File, Format Version 11.00
    # Visual Studio 2010
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{B2B58FB2-4462-6B0C-A872-40DD957E5FE0}"
    EndProject
    Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
            Debug|Any CPU = Debug|Any CPU
            Release|Any CPU = Release|Any CPU
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
            {B2B58FB2-4462-6B0C-A872-40DD957E5FE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
            {B2B58FB2-4462-6B0C-A872-40DD957E5FE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
            {B2B58FB2-4462-6B0C-A872-40DD957E5FE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
            {B2B58FB2-4462-6B0C-A872-40DD957E5FE0}.Release|Any CPU.Build.0 = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
            HideSolutionNode = FALSE
        EndGlobalSection
        GlobalSection(MonoDevelopProperties) = preSolution
            StartupItem = Assembly-CSharp.csproj
        EndGlobalSection
    EndGlobal
    _

    何らかの理由で、slnファイルがVisual Studio 2010で使用されているようです。これが意図的なものか、これが問題なのかはわかりません。

  2. 上記のように、ソリューション4を試行すると、Unity(または私が知っているすべてのVSコード)は、.NETバージョンを手動で入力したものから4.7.1に自動的に変更します。私はすでに4.7.1をインストールしているので、これは問題ではないかもしれません。

追加情報:

ここにomnisharpログがあります:

_Starting OmniSharp server at 2020. 1. 20. 오후 9:08:43
    Target: c:\Users\stpau\New Unity Project\New Unity Project.sln

OmniSharp server started.
    Path: C:\Users\stpau\.vscode\extensions\ms-vscode.csharp-1.21.9\.omnisharp\1.34.9\OmniSharp.exe
    PID: 2232

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on Windows 6.2.9200.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 1 MSBuild instance(s)
            1: StandAlone 16.3 - "C:\Users\stpau\.vscode\extensions\ms-vscode.csharp-1.21.9\.omnisharp\1.34.9\.msbuild\Current\Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        MSBUILD_EXE_PATH environment variable set to 'C:\Users\stpau\.vscode\extensions\ms-vscode.csharp-1.21.9\.omnisharp\1.34.9\.msbuild\Current\Bin\MSBuild.exe'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: StandAlone 16.3 - "C:\Users\stpau\.vscode\extensions\ms-vscode.csharp-1.21.9\.omnisharp\1.34.9\.msbuild\Current\Bin"
            CscToolExe = csc.exe
            CscToolPath = C:\Users\stpau\.vscode\extensions\ms-vscode.csharp-1.21.9\.omnisharp\1.34.9\.msbuild\Current\Bin\Roslyn
            MSBuildExtensionsPath = C:\Users\stpau\.vscode\extensions\ms-vscode.csharp-1.21.9\.omnisharp\1.34.9\.msbuild
            MSBuildToolsPath = C:\Users\stpau\.vscode\extensions\ms-vscode.csharp-1.21.9\.omnisharp\1.34.9\.msbuild\Current\Bin
[info]: OmniSharp.Cake.CakeProjectSystem
        Detecting Cake files in 'c:\Users\stpau\New Unity Project'.
[info]: OmniSharp.Cake.CakeProjectSystem
        Could not find any Cake files
[info]: OmniSharp.MSBuild.ProjectSystem
        Detecting projects in 'c:\Users\stpau\New Unity Project\New Unity Project.sln'.
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for 'c:\Users\stpau\New Unity Project\Assembly-CSharp.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in 'c:\Users\stpau\New Unity Project'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Could not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: c:\Users\stpau\New Unity Project\Assembly-CSharp.csproj
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.EditorConfigWorkspaceOptionsProvider, Order: 200
[info]: OmniSharp.WorkspaceInitializer
        Configuration finished.
[info]: OmniSharp.Stdio.Host
        Omnisharp server running using Stdio at location 'c:\Users\stpau\New Unity Project' on Host 8980.
[info]: OmniSharp.MSBuild.ProjectManager
        Successfully loaded project file 'c:\Users\stpau\New Unity Project\Assembly-CSharp.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
        Adding project 'c:\Users\stpau\New Unity Project\Assembly-CSharp.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Update project: Assembly-CSharp
_

この問題を解決するにはどうすればよいですか?また、redditとUnityの両方のフォーラムでこの質問をしましたが、成功しませんでした。

2
Paul

VSCode 1.41.1とUnity 2019.4.0f1を使用して同じ問題がありました。

私は次の手順に従ってそれを修正することができました:

  1. .Net Framework 4.7.1 Developer Packをここからダウンロードしてインストールします。

https://dotnet.Microsoft.com/download/dotnet-framework/thank-you/net471-developer-pack-offline-installer

  1. unityで、編集>プロジェクト設定>プレーヤー> API互換性レベルに移動し、.NET 4.xに変更します

  2. vSCodeとUnityを再起動します

IntelliSenseが正常に動作し、VSCodeで.csファイルをロードするときにエラーが発生しなくなりました。

0
friartuck