Автозаполнение не работает в Visual studio

У меня небольшая проблема со скриптами. Когда я пишу сценарии C# для Unity с Visual studio, кажется, что я работаю в блокноте, нет автодополнение (правильно? и я должен писать очень медленно.

пожалуйста, посмотрите видео. На старте нормальная ситуация (из учебника), вторая часть показывает мою проблему.

видео с проблемой

например,transform класс не показывают предложение или автозаполнение.

Изображение с проблемой:

enter image description here

версия Unity: 5.5.2f1
Visual studio 2015
Установлены средства Visual Studio для Unity

13 ответов


нет автоматического завершения, потому что скрипт говорит"Разное Файлы " вместо названия проекта. Взгляните на изображение ниже, которое пришло из видео в вашем вопросе:

enter image description here

в "Разное Файлы" сообщение может произойти по многим причинам:

1.Это может произойти, когда вы открываете файл Unity C# из другой папки, а не из Unity Редактор.

2.Это также может произойти из-за того, что Unity разбился, когда Visual Studio все еще открыта, поэтому повреждает некоторые файлы.

3.Это может произойти, потому что Unity был закрыт, а затем снова открыт, но больше не подключен к Visual Studio. При открытии Visual Studio вы получаете"Разное Файлы " и нет автоматического завершения.

4.Это может произойти, когда инструменты Visual Studio для unity is не установить.

5.Когда вы создаете сценарий из Unity, быстро откройте его до завершения обработки Unity или до завершения анимации круглых значков.


в большинстве случаев перезапуск Unity и Visual Studio должен исправить это.

Я не могу сказать, какой из них вызывает проблему, но я рассмотрю наиболее вероятное решение для исправления этого.

Исправить Часть 1:

1.Скачать и установить инструменты Visual Studio для unity С этой ссылка. Сделайте это, пока Unity и Visual Studio закрыты.

2.Из редактора Unity перейдите в редактировать --> предпочтения... --> Внешние Инструменты. На Внешний Редактор Скриптов выпадающее меню, измените это на Visual Studio 2015.

enter image description here


Исправить Часть 2:

Если вновь созданные файлы c# появляются как разное затем следуйте инструкции ниже:

1.Из Visual Studio, перейдите к инструменты --> параметры... --> инструменты для Unity --> разное. Под показать значок подключения, установить true затем перезапустите Visual Studio.

enter image description here

2.При повторном запуске значок подключения теперь должен быть доступен в Visual Studio. Щелкните его, затем выберите экземпляр Unity для подключения. Красный значок " x " теперь должен превратиться в коричневый значок галочки. Теперь, когда вы создаете новый файл C# в Unity, он должен открыться без слов разное.

enter image description here


Исправить Часть 3:

все еще не исправлено?

повторно импортировать проект, затем откройте Проект C#.

1.Закройте Visual Studio.

2.Из Unity повторно импортируйте проект, перейдя в активы --> реимпорт Все!--3-->.

enter image description here

3.Теперь откройте проект в Visual Studio, перейдя в активы --> Открыть Проект C#. Это перезагрузит проект и исправит возможные проблемы с файлами решений.

enter image description here


Исправить Часть 4:

все еще не исправлено?

исправить каждый файл c# индивидуально.

1.Нажмите на Показать Все Файлы.

enter image description here

2.Выберите сценарий, который не выполняет автозаполнение, затем щелкните правой кнопкой мыши и выберите Включить В Проект.

enter image description here


Исправить Часть 5:

еще не исправлена?

заслуга chrisvarnz для этого конкретного решения, которое, похоже, сработало для нескольких людей.

1.Закройте Visual Studio

2.Перейдите в каталог проекта и удалите все созданные файлы Visual Studio.

Это расширения файлов для исключить:

  • .csproj файл
  • .
  • .sln

пример:

предположим, что имя вашего проекта называется "Target Shoot", вот как должны выглядеть файлы для удаления:

  • Цель Стрелять.csproj файл
  • Цель Стрелять.Редактор.csproj файл
  • Цель Стрелять.Редактор.csproj файл.
  • цель Стрелять.Игрок.csproj файл
  • Цель Стрелять.Игрок.csproj файл.
  • Цель Стрелять.sln

больше ничего не удалять.

3.Дважды щелкните по скрипту еще раз из Unity который должен создать новый файл Visual Studio, а затем открыть Visual Studio. Это может решить вашу проблему.


Исправить Часть 6:

если не работает, проверьте если у вас возникли этой ошибка:

задача "GetReferenceNearestTargetFrameworktask" не найдена

1.Установить Диспетчер Пакетов NuGet Для С здесь.

2.Перезапустите Visual Visual.

посмотреть этой ответа для получения дополнительной информации.


Я нашел другой способ исправить эту проблему более удобным способом:

  1. выберите сломанный файл в обозревателе решений.
  2. открыть его свойства.
  3. переключить поле " Build Action "с" Compile "на"None".
  4. затем переключите его обратно на "Compile".

Это каким-то образом убьет синхронизацию между Unity и Visual Studio.

в следующий раз, когда Visual Studio перезагрузит проект, он предложит предупреждающий. Просто нажмите "отбросить".


выгрузить и перезагрузить проект в Visual Studio:

  • щелкните правой кнопкой мыши проект в Обозреватель
  • выберите Выгрузить Проект
  • выберите Перезагрузить Проект

исправлено!

Я нашел это решение, чтобы работать лучше (проще всего), столкнувшись с проблемой несколько раз.

источник: https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-android-projects/


  1. выберите проект в Visual Studio
  2. нажать кнопку "Обновить"

enter image description here


сегодня я столкнулся с теми же проблемами, используя Visual Studio 2017 15.4.5 с Unity 2017.

Я смог устранить проблему, щелкнув правой кнопкой мыши по проекту в Visual Studio и изменив целевую платформу с 3.5 на 4.5.

надеюсь, что это поможет кому-то еще в аналогичном сценарии.


Два Альтернативных Варианта:

исправить 1

@singleton указал мне в этом направлении. Вместо изменения целевого объекта в Visual Studio следует изменить его в Unity, так как проект создается автоматически.

Сначала удалите автоматически созданные файлы Visual Studio: .csproj файл .пользователь .sln

затем из Unity перейдите в PlayerSettings и в разделе "Другие настройки" измените "версию среды выполнения сценариев" со стабильной 3.5 на экспериментальную 4.6.

однако, это не исправило это для меня.

исправить 2

Я заметил, что все ссылки на код, связанный с Unity, были отмечены желтым предупреждением. Проверьте свои журналы ошибок и посмотрите, так ли это. В частности, см., Если вы получаете следующую ошибку: getreferenceNearestTargetframeworktask

Если так попробовать: Снова запустите установщик Visual Studio.

в инструментах сборки 2017 нажмите кнопку Изменить,

обеспечить "Цели Nuget и задачи сборки" отмечены галочкой. Это должно стать галочкой, если вы нажмете на универсальную разработку платформы Windows.


Я нашел свое решение, создав .cs-файл из самой visual studio вместо редактора unity

  • правой кнопкой мыши на папке проекта в обозревателе решений
  • добавить > новый элемент
  • введите "unity" в поле поиска в правом верхнем углу
  • выберите "CSharp MonoBehaviour"
  • назовите свой скрипт внизу и нажмите Add

в моем случае правильная версия .net не была установлена на моем компьютере. Я устанавливаю .net 3.5 на свой компьютер, и это сработало для меня.


для Windows или macOS:

скачать/установить Visual Studio IDE (с инструментами Unity)

при установке, убедитесь, что вы включили установку

разработка игр с Unity

enter image description here

затем, используя Unity (вы можете дважды щелкнуть один из ваших файлов c#), откройте новый проект C#, и среда IDE Visual Studio должна открыться с вашим новым проектом структура.

enter image description here

оттуда, вы должны быть в состоянии видеть то, что вы ищете.

например:

enter image description here

enter image description here

для Linux (предложение):

попробовать MonoDevelop выступает - Дополнительная Информация, он обеспечивает завершение кода / подсказки.


Я решил установить ту же версию .NET на WIN, которая была настроена в моем проекте Unity. (Настройки Плеера)


мой автозаполнение также не работает, потому что инструменты Visual Studio для Unity не был установлен. После установки удалите автоматически созданные файлы Visual Studio. Другие сказали, что вы снова открываете файл, и проблема решена, но это не так.

фокус в том, что вместо обычного двойного щелчка по файлу вам нужно открыть файл C# из Unity правой кнопкой мыши, а затем "открыть проект C#".


ни одно из вышеперечисленных решений не сработало для меня. Однако я открыл имя проекта.Файл CSPROJ и вручную добавил новый файл, и он работал как charm


проблема, с которой я столкнулся, заключалась в том, что проект C# был нацелен на другую .NET Framework (4.7.2), тогда как проект Unity имел другую цель (.NET 3.5).

я исправил это, изменив цель в Unity как -

файл - > настройки сборки - > настройки проигрывателя - > другие настройки - > API Уровень совместимости : устанавливаем его .Net версии у вас уже есть установлено (проверьте версию .NET здесь). В моем случае это было 4.x

после этого Visual Studio работала отлично, и автозамена тоже была исправлена.