Автозаполнение не работает в Visual Studio
У меня Маленькая проблема со скриптами. Когда я пишу скрипты на С# для Unity с Visual Studio, мне кажется, что я работаю в блокноте, там нет автозаполнения (верно?), И я должен писать это очень медленно.
Пожалуйста, посмотрите видео. На старте нормальная ситуация (из учебника), вторая часть показывает мою проблему.
Видео с проблемой
Например, класс transform
не показывает предложение или автозаполнение.
Изображение с проблемой:
![enter image description here]()
Версия Unity: 5.5.2f1
Визуальная студия 2015
Visual Studio Tools для Unity установлен
Ответы
Ответ 1
Нет автоматического завершения, потому что 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 из здесь.
2.Restart Visual Visual.
Подробнее см. .
Ответ 2
Я нашел другой способ решить эту проблему более удобным способом:
- Выберите сломанный файл в обозревателе решений.
- Откройте его Свойства.
- Переключить поле "Build Action" из "Скомпилировать" в "Нет".
- Затем верните его в "Компиляция".
Это приведет к некорректной синхронизации синхронизации между Unity и Visual Studio.
В следующий раз, когда Visual Studio перезагрузит проект, он выдает предупреждение.
Просто нажмите "Отменить".
Ответ 3
Выгрузите и перезагрузите проект в Visual Studio:
- щелкните правой кнопкой мыши свой проект в обозревателе решений
- выберите выгрузить проект
- выберите Обновить проект
Исправлена!
Я нашел, что это решение работает лучше (легче всего), столкнувшись с проблемой несколько раз.
Источник: https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-android-projects/
Ответ 4
- Выбрать проект в Visual Studio
- Нажмите кнопку "Обновить"
![введите описание изображения здесь]()
Ответ 5
Сегодня я сталкиваюсь с теми же проблемами, используя Visual Studio 2017 15.4.5 с Unity 2017.
Мне удалось исправить проблему, щелкнув правой кнопкой мыши на проекте в Visual Studio и изменив целевую структуру с 3.5 до 4.5.
Надеюсь, это поможет кому-то еще в подобном сценарии.
Ответ 6
Два альтернативных варианта:
Исправить 1
@singleton указал мне в этом направлении. Вместо изменения цели в Visual Studio вы должны изменить ее в Unity, поскольку проект автогенерируется.
Сначала удалите автоматически созданные файлы Visual Studio:
.csproj
.user
.sln
Затем изнутри Unity перейдите в PlayerSettings и в разделе "Другие настройки" измените "Версия исполнения сценариев" от "Стабильный 3.5 до экспериментального 4.6".
Однако это не исправило меня.
Исправить 2
Я заметил, что все ссылки на код, связанный с Unity, были отмечены желтым предупреждением. Проверьте свои журналы ошибок и посмотрите, действительно ли это так. В частности, посмотрите, получится ли следующая ошибка: getreferenceNearestTargetframeworkTask
Если да, попробуйте:
Запустите программу установки Visual Studio еще раз.
В инструменте Build 2017 нажмите "Изменить",
Убедитесь, что "Задачи Nuget и задачи сборки" отмечены галочкой. Это должно стать тикаемым, если вы нажмете на Universal Platform Platform.
Ответ 7
Я нашел свое решение, создав файл .cs из самой visual studio вместо редактора единиц.
- щелкните правой кнопкой мыши папку проекта в проводнике решений
- добавить > новый элемент
- введите "единство" в поле поиска в верхнем правом углу
- выберите "CSharp MonoBehaviour"
- назовите свой script внизу и нажмите "Добавить"
Ответ 8
В моем случае правильная версия .net не была установлена на моем ПК. Я устанавливаю .net 3.5 на свой компьютер, и это сработало для меня.
Ответ 9
Проблема, с которой я столкнулся, заключалась в том, что проект С# был нацелен на другую.NET Framework (4.7.2), тогда как проект Unity имел другую цель (.NET 3.5).
Я исправил это, изменив цель в Unity as-
Файл → Настройки сборки → Настройки плеера → Другие настройки → Уровень совместимости API: Установите для уже установленной версии.NET (проверьте версию.NET здесь). В моем случае это было 4.x
После этого Visual Studio работал отлично и автокоррекция была исправлена.
Ответ 10
Попробуйте нажать Ctrl + Alt + Space
(который переключается между предложением и стандартным режимом завершения)
Ответ 11
Для Windows или macOS:
Загрузите/установите Visual Studio IDE (с инструментами Unity)
При установке убедитесь, что вы включили установку
Разработка игр с Unity
![введите описание изображения здесь]()
Затем, используя Unity (вы можете дважды щелкнуть один из ваших файлов С#), откройте новый проект С#, и среда разработки Visual Studio должна открыть вашу новую структуру проекта.
![введите описание изображения здесь]()
Оттуда вы сможете увидеть, что вы ищете.
Например:
![введите описание изображения здесь]()
![введите описание изображения здесь]()
Для Linux (предложение):
Попробуйте Monodevelop - Дополнительная информация, он обеспечивает завершение/подсказки кода.
Ответ 12
Я решил установить ту же версию.NET на WIN, которая была настроена в моем проекте Unity. (Настройки игрока)
Ответ 13
Мое автозаполнение также не работало, потому что Visual Studio Tools for Unity не был установлен. Поэтому после установки удалите автоматически сгенерированные файлы Visual Studio. Другие говорили, что вы снова открываете файл, и проблема решена, но это не так.
Хитрость в том, что вместо обычного двойного щелчка по файлу, вам нужно открыть файл С# из Unity, щелкнув правой кнопкой мыши, а затем "Открыть проект С#".
Ответ 14
Ни одно из вышеперечисленных решений не помогло мне. Однако я открыл файл ProjectName.CSPROJ и вручную добавил новый файл, и он работал как шарм
Ответ 15
- Перейдите к пункту "Параметры" в меню "Сервис" и выберите "Документы" в узле "Среда". (Если документы не отображаются в списке, выберите "Показать все настройки" в диалоговом окне "Параметры".)
- Установите флажок "Разные файлы в обозревателе решений" и нажмите "ОК". (Этот параметр отображает узел "Разные файлы" в обозревателе решений. Разные файлы - это файлы, которые не связаны с проектом или решением, но могут отображаться в Обозревателе решений для вашего удобства, если вы отметите эту опцию.)
- Найдите свой файл в обозревателе решений в разделе "Разные файлы". Затем перетащите файл туда, где он должен находиться и вуаля! Это скопирует файл туда, куда вы его бросили. Теперь вы можете безопасно удалить старый файл из папки "Разные файлы", если хотите.
Кредиты: fooobar.com/questions/331508/...
Если папка Scripts не видна:
- Нажмите "Показать все файлы" в обозревателе решений.
- Найдите папку Scripts.
- Щелкните правой кнопкой мыши по сценариям и выберите "Включить в проект".
Ответ 16
Проверьте это, вы установили документацию настройки единства? ИЛИ правильный.net Framework установлен на вашей рабочей станции. (обычно.NET 3.5 работает хорошо)
Ответ 17
Меня сработало то, что я скопировал весь код внутри сломанного класса и удалил этот файл. Затем я открыл пустой файл и вставил.
Результат: прекрасные синтаксические блики вернулись!
Ответ 18
Попробуй это,
В Unity Editor перейдите в меню, нажмите "Правка" → "Настройки" → "Внешние инструменты" → "Редактор внешних скриптов". Установите его в Visual Studio (ваша установленная версия VS).
Теперь в Menubar перейдите в "Правка" → "Настройки проекта" → "Настройки игрока" → "Другие настройки" → "Под конфигурацией" → "Проверить уровень совместимости API" → измените его на установленную версию .Net. В моем случае я установил его на .Net 4.x
Теперь, если Visual Studio уже запущена, перейдите в Visual Studio, она попросит перезагрузить проект. Перезагрузите проект. Проверьте, работает ли он, если нет, закройте Visual Studio. Теперь откройте файл CS из редактора Unity, и теперь он должен работать.
Ответ 19
Имейте в виду, что если вы используете инструмент ReSharper, он переопределит IntelliSense и покажет его собственный. Чтобы изменить это, на VS перейдите в Расширения → ReSharper → Параметры → IntelliSense → Общие, затем выберите Visual Studio, а не ReSharper.
Ответ 20
Прежде чем перезапускать и/или переустанавливать VS, сначала попробуйте открыть любой из ваших проектов, чтобы увидеть, работает ли Intellisence, если он работает, то проблема, вероятно, связана с вашим текущим проектом. Во-первых, наиболее вероятной жертвой будут пакеты NUGET с ожидающими обновлениями. Чтобы это исправить,
- Щелкните правой кнопкой мыши по ссылкам
- Перейдите к управлению пакетами NUGET в пакетах NUGET
- перейти к обновлениям Установить обновления и перепроверить Intellisence
Ответ 21
Я попробовал все это, но в итоге обнаружил, что мне нужно щелкнуть правой кнопкой мыши решение в обозревателе решений, добавить существующие элементы и найти файл сборки С# в проводнике. Кажется, существует несколько разных проблем, которые дают вам эту ошибку, это, вероятно, самое простое решение. Если вы дважды щелкнете по своему сценарию от единицы, он не будет тянуть сборку.
Ответ 22
Попробуйте с комбинацией: Ctrl + Alt + Space