Автозаполнение не работает в Visual Studio
У меня Маленькая проблема со скриптами. Когда я пишу скрипты на С# для Unity с Visual Studio, мне кажется, что я работаю в блокноте, там нет автозаполнения (верно?), И я должен писать это очень медленно.
Пожалуйста, посмотрите видео. На старте нормальная ситуация (из учебника), вторая часть показывает мою проблему.
Например, класс transform не показывает предложение или автозаполнение.
Изображение с проблемой:
Версия Unity: 5.5.2f1
Визуальная студия 2015
Visual Studio Tools для Unity установлен
16 ответов
Нет автоматического завершения, потому что script говорит «Разное файлы» вместо названия проекта. Взгляните на изображение ниже, которое появилось в видео в вашем вопросе:
Сообщение «Разное файлы» может появиться по многим причинам:
1. Это может произойти, когда вы открываете свой файл Unity С# из другой папки, а не открываете его из Unity Editor.
2. Это может произойти и потому, что Unity потерпел крах, пока Visual Studio все еще открыта, поэтому развращает некоторые файлы.
3. Это может произойти, потому что Unity был закрыт, а затем снова открыт, но больше не связан с Visual Studio. Когда Visual Studio открывается, вы получаете «Разное файлы» и автоматическое завершение.
4. Это может произойти, если Visual Studio Tools для единства не установлен.
5. Когда вы создаете script из Unity, быстро откройте его, прежде чем Unity закончит его обработку или до того, как анимация анимации раунда закончит анимацию.
В большинстве случаев перезапуск Unity и Visual Studio должен исправить это.
Я не могу сказать, какой из них вызывает проблему, но я расскажу о наиболее вероятном решении, чтобы исправить это.
Исправить часть 1:
1. Загрузите и установите инструменты Visual Studio для объединения из этой ссылки. Сделайте это, пока Unity и Visual Studio закрыты.
2. Из редактора Unity перейдите в Edit → Настройки. → Внешние инструменты. В раскрывающемся меню External script Editor измените это на Visual Studio 2015.
Исправить часть 2:
Если вновь созданные файлы С# подходят как «Разное», выполните следующие инструкции:
1. Из Visual Studio перейдите в Инструменты → Параметры. → Инструменты для Unity — → Разное. В разделе «Показывать значок подключения» установите его на true , затем перезапустите Visual Studio.
2. При повторном запуске в Visual Studio теперь будет доступен значок подключения. Щелкните по нему, затем выберите экземпляр Unity для подключения. Красный значок «x» теперь должен превратиться в коричневый значок галочки. Теперь, когда вы создаете новый файл С# в Unity, он должен открываться без разговора.
Исправить часть 3:
Все еще не исправлено?
Повторно импортируйте проект, затем откройте проект С#.
1. Закройте Visual Studio.
2. Из Unity повторно импортируйте проект, перейдя в Assets → Reimport Все.
3. Теперь откройте проект в Visual Studio, перейдя в Assets → Open С# Project. Это перезагрузит проект и устранит возможные проблемы с файлами решения.
Исправить часть 4:
Все еще не исправлено?
Исправить каждый файл С# индивидуально.
1.Нажмите значок «Показать все файлы».
2. Выберите script, который не выполняет автоматическое заполнение, затем щелкните правой кнопкой мыши и выберите «Включить в проект».
Исправить часть 5:
Не исправлено еще?
Кредит идет chrisvarnz для этого конкретного решения, которое, похоже, работает для нескольких людей.
1. Закройте Visual Studio
2. Создайте каталог проекта и удалите все созданные файлы Visual Studio.
Это расширения файлов для удаления:
Скажем, что название вашего проекта называется «Target Shoot», это то, что должны удалить файлы:
- Target Shoot.csproj
- Target Shoot.Editor.csproj
- Target Shoot.Editor.csproj.user
- Target Shoot.Player.csproj
- Target Shoot.Player.csproj.user
- Target Shoot.sln
Не удаляйте ничего.
3. Дважды щелкните по script снова из Unity, который должен сгенерировать новый файл Visual Studio, затем откройте Visual Studio. Это может решить вашу проблему.
Исправить часть 6:
Если вы не работаете, проверьте, есть ли у вас ошибка this:
Задача «GetReferenceNearestTargetFrameworkTask» не найдена
1.Установите Nuget PackageManager из здесь.
Источник
Скрипты Unity, редактируемые в Visual Studio, не поддерживают автозаполнение
Когда я хочу отредактировать скрипты C # Unity, они открываются в Visual Studio. Предполагается, что он обеспечивает автозаполнение для всего кода, связанного с Unity, но это не работает.
Здесь вы можете увидеть недостающий функционал:
Как видно, объект transform не открывает меню автозаполнения.
Версия Unity: 5.5.2f1
Visual Studio 2015
Установлены инструменты Visual Studio для Unity
20 ответов
Для Windows или macOS:
При установке обязательно включите установку
Затем, используя Unity (вы можете дважды щелкнуть один из ваших файлов C #), откройте новый проект C #, и Visual Studio IDE должна открыться с вашей новой структурой проекта.
Оттуда вы сможете увидеть, что вы ищете.
Для Linux (предложение):
Попробуйте Monodevelop — Дополнительная информация, она предоставляет завершение кода / подсказки.
Ни одно из вышеперечисленных решений не помогло мне. Однако я открыл файл ProjectName.CSPROJ и вручную добавил новый файл, и он работал как шарм
Я нашел другой способ исправить эту проблему более удобным способом:
- Выберите поврежденный файл в обозревателе решений.
- Откройте его свойства.
- Переключите поле «Build Action» с «Compile» на «None».
- Затем переключите его обратно на «Компиляция».
Это как-то убьет синхронизацию между Unity и Visual Studio.
В следующий раз, когда Visual Studio перезагрузит проект, он выдаст предупреждение. Просто нажмите «Отменить».
Два альтернативных варианта:
Исправить 1
@Singleton указал мне в этом направлении. Вместо изменения цели в Visual Studio вы должны изменить ее в Unity, поскольку проект генерируется автоматически.
Сначала удалите автоматически сгенерированные файлы Visual Studio: .csproj .user .sln
Затем изнутри Unity перейдите в PlayerSettings и в разделе «Другие настройки» измените «Версия сценариев времени выполнения» со Стабильной 3.5 на Экспериментальную 4.6.
Однако, это не исправило это для меня.
Исправление 2
Я заметил, что все ссылки на связанный с Unity код помечены желтым предупреждением. Проверьте ваши журналы ошибок и посмотрите, так ли это. В частности, посмотрите, если вы получите следующую ошибку: getreferenceNearestTargetframeworkTask
Если это так, попробуйте: Запустите Visual Studio Installer снова.
На Build Tools 2017, нажмите Modify,
Убедитесь, что «Nuget цели и задачи сборки» отмечены. Это должно быть отмечено, если вы нажмете на разработку универсальной платформы Windows.
Имейте в виду, что если вы используете инструмент ReSharper, он переопределит IntelliSense и покажет его собственный. Чтобы изменить это, на VS перейдите в Расширения -> ReSharper -> Параметры -> IntelliSense -> Общие, затем выберите Visual Studio, а не ReSharper.
Один из вышеперечисленных методов работает для меня, и я только что нашел решение этой проблемы,
1. Сначала перейдите в каталог проекта и удалите файл .sln
2. Во-вторых, перейдите к единице и дважды щелкните ваш сценарий. Тогда Visual Studio будет открыт с ошибкой,
- Затем нажмите кнопку ОК и закройте редактор Visual Studio.
- Наконец, выключите Защитника Windows, а затем перейдите в каталог проекта, и там будет .csproj файл. Просто дважды щелкните и откройте его в редакторе Visual Studio, откройте папку сценариев внутри папки ресурсов и откройте сценарии, и автозаполнение будет работать отлично.
Обновление 2020 с Visual Studio Community 2019 и Unity 2019.3:
Откройте установщик Visual Studio от имени администратора, выберите изменение текущей установки и добавьте «Разработка игр для Unity».
Если вы сейчас добавите новый скрипт C # в Unity и откроете его (автоматически) с помощью Visual Studio, он будет описан не как «Разное» в верхней части окна, а как «Assembly-CSharp», и автозаполнение будет работать.
Прежде чем перезапускать и / или переустанавливать VS, сначала попробуйте открыть любой из ваших проектов, чтобы посмотреть, работает ли Intellisence, если он работает, то проблема, вероятно, связана с вашим текущим проектом. Во-первых, наиболее вероятной жертвой будут пакеты NUGET с ожидающими обновлениями. Чтобы исправить это,
- Щелкните правой кнопкой мыши по ссылкам
- Перейти к управлению пакетами NUGET в пакетах NUGET
- перейти к обновлениям Установить обновления и перепроверить Intellisense
Меня сработало то, что я скопировал весь код внутри сломанного класса и удалил этот файл. Затем я открыл пустой файл и вставил.
Результат : прекрасные синтаксические блики вернулись!
Я нашел свое решение, создав файл .cs из самой Visual Studio вместо редактора Unity.
- щелкните правой кнопкой мыши на папке проекта в обозревателе решений.
- добавить> новый предмет
- введите «единство» в поле поиска в правом верхнем углу
- выберите «CSharp MonoBehaviour»
- назовите свой скрипт внизу и нажмите кнопку Добавить
Я столкнулся с теми же проблемами сегодня, используя Visual Studio 2017 15.4.5 с Unity 2017.
Мне удалось решить эту проблему, щелкнув правой кнопкой мыши проект в Visual Studio и изменив целевой фреймворк с 3.5 на 4.5.
Надеюсь, это поможет кому-то еще в подобном сценарии.
- Перейдите к пункту «Параметры» в меню «Сервис» и выберите «Документы» в узле «Среда». (Если документы не отображаются в списке, выберите «Показать все настройки» в диалоговом окне «Параметры».)
- Установите флажок «Разные файлы в обозревателе решений» и нажмите «ОК». (Этот параметр отображает узел «Разные файлы» в обозревателе решений. Разные файлы — это файлы, которые не связаны с проектом или решением, но могут отображаться в Обозревателе решений для вашего удобства, если вы отметите эту опцию.)
- Найдите свой файл в обозревателе решений в разделе «Разные файлы». Затем перетащите файл туда, где он должен находиться и вуаля! Это скопирует файл туда, куда вы его бросили. Теперь вы можете безопасно удалить старый файл из папки «Разные файлы», если хотите.
Если папка Scripts не видна:
- Нажмите «Показать все файлы» в обозревателе решений.
- Найдите папку «Сценарии».
- Щелкните правой кнопкой мыши по сценариям и выберите «Включить в проект».
Еще одно возможное исправление:
- В окне проекта нажмите на папку Активы
- Щелкните правой кнопкой мыши и выберите «Создать» -> C # Script.
- Дважды щелкните по нему и подождите.
По какой-то причине эта работа.
Я попробовал все это, но в итоге обнаружил, что мне нужно щелкнуть правой кнопкой мыши решение в обозревателе решений, добавить существующие элементы и найти файл сборки C # в проводнике Windows. Кажется, существует несколько разных проблем, которые дают вам эту ошибку, это, вероятно, самое простое решение. Если вы дважды щелкнете по своему сценарию от единицы, он не будет тянуть сборку.
Мое автозаполнение также не работало, потому что Visual Studio Tools for Unity не был установлен. Итак, после установки удалите автоматически сгенерированные файлы Visual Studio. Другие говорили, что вы снова открываете файл, и проблема решена, но это не так.
Хитрость в том, что вместо обычного двойного щелчка по файлу, вам нужно открыть файл C # из Unity, щелкнув правой кнопкой мыши, а затем «Открыть C # Project».
Источник
Скрипты Unity, редактируемые в Visual Studio, не поддерживают автозаполнение
Когда я хочу отредактировать скрипты C # Unity, они открываются в Visual Studio. Предполагается, что он обеспечивает автозаполнение для всего кода, связанного с Unity, но это не работает.
Здесь вы можете увидеть недостающий функционал:
Как видно, у transform объекта не открывается меню автозаполнения.
Версия Unity: 5.5.2f1
Visual Studio 2015
Visual Studio Tools for Unity установлен
Автоматического завершения нет, потому что в сценарии вместо имени проекта написано « Разные файлы ». Взгляните на изображение ниже, которое было взято из видео по вашему вопросу:
Сообщение « Прочие файлы » может появиться по многим причинам:
Это может произойти, если вы откроете файл Unity C # из другой папки вместо того, чтобы открывать его в редакторе Unity.
Это также может произойти из-за того, что Unity аварийно завершила работу, пока Visual Studio все еще открыта, что привело к повреждению некоторых файлов.
Это может произойти из-за того, что Unity был закрыт, а затем снова открыт, но больше не подключен к Visual Studio. При открытии Visual Studio вы получаете « Разные файлы » без автозаполнения.
Это может произойти, если Visual Studio Tools for unity не установлен.
Когда вы создаете скрипт из Unity, быстро откройте его до того, как Unity завершит его обработку или до того, как анимация круглых значков завершится.
В большинстве случаев это должно исправить перезапуск Unity и Visual Studio.
Я не могу сказать, какой из них вызывает проблему, но я расскажу о наиболее вероятном решении, чтобы исправить это.
Исправить Часть 1 :
Загрузите и установите Visual Studio Tools for unity по этой ссылке. Сделайте это, пока Unity и Visual Studio закрыты.
В редакторе Unity перейдите в Edit → Preferences . → External Tools . В раскрывающемся меню редактора внешних сценариев измените его на Visual Studio 2015 .
Исправить Часть 2 :
Если вновь созданные файлы C # появляются как Разное, следуйте инструкциям ниже:
В Visual Studio перейдите в Инструменты → Параметры . → Инструменты для Unity → Разное . В разделе Показать значок подключения установите для него true перезапуск Visual Studio.
При перезапуске значок подключения теперь должен быть доступен в Visual Studio. Щелкните его, затем выберите экземпляр Unity для подключения. Красный значок «x» теперь должен превратиться в значок коричневой галочки. Теперь, когда вы создаете новый файл C # в Unity, он должен открываться без надписи « Разное» .
Исправить Часть 3 :
Все еще не исправлено?
Повторно импортируйте проект, затем откройте C # Project.
Закройте Visual Studio.
Из Unity повторно импортируйте проект, выбрав Assets → Reimport All .
Теперь откройте проект в Visual Studio, выбрав Assets → Open C # Project . Это перезагрузит проект и устранит возможные проблемы с файлом решения.
Исправить Часть 4 :
Все еще не исправлено?
Исправьте каждый файл C # по отдельности.
Щелкните значок Показать все файлы .
Выберите сценарий, который не выполняет автозаполнение, затем щелкните правой кнопкой мыши и выберите « Включить в проект» .
Исправить Часть 5 :
Еще не исправлено?
Заслуга chrisvarnz для этого конкретного решения , которое , кажется, работает для нескольких людей.
Закройте Visual Studio
Перейдите в каталог своего проекта и удалите все сгенерированные файлы Visual Studio.
Это расширения файлов, которые нужно удалить:
Допустим, имя вашего проекта называется Target_Shoot , вот как должны выглядеть удаляемые файлы:
- Target_Shoot.csproj
- Target_Shoot.Editor.csproj
- Target_Shoot.Editor.csproj.user
- Target_Shoot.Player.csproj
- Target_Shoot.Player.csproj.user
- Target_Shoot.sln
Больше ничего не удаляйте.
- Снова дважды щелкните сценарий в Unity, который должен создать новый файл Visual Studio, затем откройте Visual Studio. Это может решить вашу проблему.
Исправить Часть 6 :
Если не работает, проверьте, не возникает ли у вас эта ошибка:
Задача GetReferenceNearestTargetFrameworkTask не найдена.
Установите NuGet PackageManager из здесь .
Перезапустите Visual Visual.
См. Этот ответ для получения дополнительной информации.
В редакторе Unity перейдите в Меню, нажмите Правка -> Настройки -> Внешние инструменты -> Редактор внешних сценариев. Установите его в Visual Studio (ваша установленная версия VS).
Теперь в строке меню перейдите в Edit -> Project Settings -> Player Settings -> Other Settings -> Under Configuration -> Check API Compatibility Level -> Измените его на установленную версию .Net. В моем случае я установил его на .Net 4.x
Теперь, если Visual Studio уже запущена, перейдите в Visual Studio, он попросит перезагрузить проект. Перезагрузите проект. Проверьте, работает ли он, если не закройте Visual Studio. Теперь откройте файл cs из редактора Unity, и теперь он должен работать.
Я нашел другой способ решить эту проблему более удобным способом:
- Выберите поврежденный файл в обозревателе решений.
- Откройте его свойства.
- Переключите поле «Build Action» с «Compile» на «None».
- Затем переключите его обратно на «Компилировать».
Это каким-то образом убьет синхронизацию между Unity и Visual Studio.
В следующий раз, когда Visual Studio перезагрузит проект, появится предупреждение. Просто нажмите «Отменить».
Выгрузите и перезагрузите проект в Visual Studio:
- щелкните правой кнопкой мыши свой проект в обозревателе решений
- выберите » Выгрузить проект»
- выберите Reload Project
Я обнаружил, что это решение работает лучше всего (проще всего), столкнувшись с проблемой несколько раз.
- Выбрать проект в Visual Studio
- Нажмите кнопку «Обновить».
Если вы выполнили все вышеперечисленное, но по-прежнему не работает, просто попробуйте следующее: Примечание: вы должны были обновить VS.
Перейдите в Unity> редактировать> настройки> Внешние инструменты> внешний редактор скриптов.
Надеюсь, тебе это тоже поможет.
Сегодня я столкнулся с теми же проблемами, используя Visual Studio 2017 15.4.5 с Unity 2017.
Мне удалось решить эту проблему, щелкнув правой кнопкой мыши проект в Visual Studio и изменив целевую структуру с 3.5 на 4.5.
Надеюсь, это поможет кому-нибудь еще в подобном сценарии.
Два альтернативных варианта:
Исправить 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.
В Build Tools 2017 нажмите Modify,
Убедитесь, что отмечены флажки «Цели Nuget и задачи сборки». Это должно быть отмечено, если вы нажмете на разработку универсальной платформы Windows.
Источник