morto
@morto
вечный ученик

Почему Visual studio code не видит unity?

Здравствуйте, возникла проблема. Изначально в VSC в логах omnisharp, который как я понял отвечает за то, что VSC не выдает подсказки по Unity ( такие как tranform, rigidbody и т.д.), была ошибка по поводу того, что ему нужен именно 4.7.1 net fraemwork. Проблема решилась удалением обновлений net fraemwork т.е. отката до примерно 3 версии и установкой сначала 4.7.1, а после и 4.8.1 т.к. VSC ругалась на его отсутствие. Ошибки больше не выдавало, но VSC все равно не хочет видеть файлы unity ( или что-то другое, что он должен видеть ). Расширения для VSC все установлены а именно: C#, unity tools, unity snippets, unity debbuger. В unity так же выбран VSC для открытия скриптов.

Логи из omnisharp в VSC:

Starting OmniSharp server at 05.09.2020, 00:49:10
    Target: d:\games\unityProjects\ddddddd\ddddddd.sln

OmniSharp server started.
    Path: c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\OmniSharp.exe
    PID: 3720

[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 2 MSBuild instance(s)
            1: Visual Studio Community 2019 16.5.30002.166 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin"
            2: StandAlone 16.8.0 - "c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild\Current\Bin"
[warn]: OmniSharp.CompositionHostBuilder
        It looks like you have Visual Studio 2019 installed without .NET Core SDK support which is required by OmniSharp.
 Try updating Visual Studio 2019 installation with .NET Core SDK to enable better MSBuild support.
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        MSBUILD_EXE_PATH environment variable set to 'c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild\Current\Bin\MSBuild.exe'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: StandAlone 16.8.0 - "c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild\Current\Bin"
            CscToolExe = csc.exe
            CscToolPath = c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild\Current\Bin\Roslyn
            MSBuildExtensionsPath = c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild
            MSBuildToolsPath = c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild\Current\Bin
[info]: OmniSharp.Cake.CakeProjectSystem
        Detecting Cake files in 'd:\games\unityProjects\ddddddd'.
[info]: OmniSharp.Cake.CakeProjectSystem
        Could not find any Cake files
[info]: OmniSharp.MSBuild.ProjectSystem
        Detecting projects in 'd:\games\unityProjects\ddddddd\ddddddd.sln'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in 'd:\games\unityProjects\ddddddd'.
[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.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.Completion.CompletionOptionsProvider, Order: 0
[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.ImplementTypeWorkspaceOptionsProvider, Order: 110
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, Order: 140
[info]: OmniSharp.WorkspaceInitializer
        Configuration finished.
[info]: OmniSharp.Stdio.Host
        Omnisharp server running using Stdio at location 'd:\games\unityProjects\ddddddd' on host 5008.
[info]: OmniSharp.OmniSharpWorkspace
        Miscellaneous file: d:\games\unityProjects\ddddddd\Assets\scri.cs added to workspace
  • Вопрос задан
  • 3740 просмотров
Решения вопроса 1
morto
@morto Автор вопроса
вечный ученик
Решил проблему, возможно кому-то в будущем пригодится. Так же сгодится и для установки VSC для Unity. Решение взято отсюда. Ниже я расписал по пунктикам.

Некоторые шаги могут быть бесполезны, но все равно лучше придерживаться написанному ниже, если, конечно, не знаете лучше меня.

1.
Удалить из VSC расширение C# for Visual Studio Code (powered by OmniSharp) и все unity расширения для VSC.
Удалить проекты с этим костылем VSCode (из папки юнити).
Удалить все .net fraemwork, .net CORE, .net SDK. Удаляем как в программах и компонентах ( панель управления -> программы и компоненты ), так и в просмотре установленных обновлений ( панель управления -> программы и компоненты -> просмотр установленных обновлений ( кнопка слева ) ) путем прокликивания каждого обновления вбивания его названия ( например KB4054566 ) в поисковике, чтобы посмотреть, что это, а именно нам нужны любые .net fraemwork.

ПЕРЕЗАГРУЖАЕМ СИСТЕМУ.

2.
Устанавливаем все, что удалили в таком порядке ( если не хотите переходить по ссылкам ниже и скачать сами, то скачивать нужно именно DevPack, иначе не заработает ):

1. .net fraework 4.7.1
2. .net fraemwork 4.7.2
3. .net core

ПЕРЕЗАГРУЖАЕМ СИСТЕМУ.

3.
Устанавливаем расширения в VSC, а именно: C#, Unity tools. Закрываем VSC.

4.
Создаем новый проект в Unity. Переходим в Edit -> Preferences -> External Tools, указываем путь до VSC если еще не указывали и включаем все галочки в " Generate .csproj files for: ".
Должно получиться вот так:
5f538c1274ced962994049.jpeg

5.
Открываем наш скрипт из юнити и в VSC нажмите ctrl + shift + u, появится консоль и справа в выпадающем меню выберете c# omisharp log, и там должна идти индексация csproj файлов. После индексации он начнет выводить обьекты и методы классов для всяких там обьектов, компонентов и так далее.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы