Интеграция Visual Studio C#
Более профессиональную среду разработки C#. Интеллектуальное автодополнение, автоматизированное изменение исходных файлов, умная подсветка синтаксиса и многое другое.
Какое различие между Express и Pro?
VisualStudio C# 2010 это продукт компании Microsoft. Он выпускается в двух версиях — Express и Professional. Редакция Express бесплатна и вы можете скачать её отсюда: http://www.microsoft.com/express/vcsharp/ Редакция Professional не бесплатная, вы можете более подробнее узнать здесь: http://www.microsoft.com/visualstudio/en-us/products/professional/default.mspx
Интеграция Unity с VisualStudio позволит вам создавать и поддерживать файлы VisualStudio проекта автоматически. Кроме того, VisualStudio будет открыт после двойного щелчка по скрипту или по сообщению об ошибке в сонсоли Unity.
У меня есть Visual Studio Express, как я могу её использовать?
- В Unity выберите меню Assets->Sync MonoDevelop Project
- Найдите новый файл .sln в дирректории Unity проекта (на одну папку выше папки Assets)
- Откройте этот файл в Visual Studio Express.
- Теперь вы можете редактировать ваши файлы скриптов, и переходить назад в Unity чтобы их использовать.
У меня Visual Studio Profesional, как мне использовать её?
- В Unity, перейдите в Edit->Preferences, и убедитесь, что Visual Studio выбран как предпочтительный внешний редактор.
- Дважды кликните по C# файлу в вашем проекте. Visual Studio автоматически откроет этот файл для вас.
- Вы можете редактировать файл, сохранить и перейти обратно в Unity.
Важные пункты:
- Не смотря на то, что Visual Studio поставляется со своим собственным компилятором C#, и вы можете использовать его для проверки ваших скриптов на ошибки, Unity по прежнему использует собственный компилятор C# для компиляции ваших скриптов. Однако использование компилятора Visual Studio все равно очень эффективно, потому что вам не нужно постоянно переключаться в Unity чтобы проверить свои скрипты на наличие ошибок.
- Компилятор C# в Visual Studio обладает большим количеством возможностей чем C# компилятор в Unity. Это означает, что код (содержащий новейшие возможности C#) не вызовет ошибок в Visual Studio, но может вызвать ошибки в Unity.
- Unity автоматически создает и поддерживает файлы .sln и .csproj для Visual Studio. Когда кто-либо добавляет/переименовывает/перемещает/удаляет файлы из под Unity, Unity восстанавливает .sln и .csproj файлы. Так же вы можете добавить файлы в ваш проект Visual Studio. Unity импортирует эти файлы и в следующий раз создаст файлы проекта снова, включив в них добавленные вами файлы.
- Unity не обновит файлы проекта Visual Studio после обновления AssetServer или SVN. Вы можете вручную заставить Unity обновить файлы проекта Visual Studio через меню: Assets->Sync MonoDevelop Project
#2 – Установка и настройка редактора

Перед изучением C# для Unity необходимо установить саму программу и текстовый редактор. В ходе урока мы установим Unity и Visual Studio Code. Дополнительно мы пропишем все настройки для комфортной дальнейшей работы.
Видеоурок
Процесс установки Unity разделяется на несколько этапов:
- Скачивание программы Unity Hub с официального сайта ;
- Установка Unity через программу Unity Hub;
- Установка компонентов для Unity (поддержка Андроид, iOS и прочего).
Помимо установки Unity вам также потребуется текстовый редактор. Можно использовать любой текстовый редактор, что поддерживает язык C#. В ходе курса мы будем использовать Visual Studio Code .
Задание к уроку
Установка и настройка
Выполните установку программы Unity.
Дополнительно установите текстовый редактор по работе со скриптами.
Как включить подсказки для Unity в Visual studio?
Так как в версии 18 года любимую MonoDevelop больше не поддерживают, придется пользоваться VS. Все будет ничего, но подсказок как в моно нет, вернее есть но команд юнити там нет (Time, touch, PlayerPrefs и все остальное), как их включить? В VS code тоже их нет
Отслеживать
задан 11 мая 2018 в 3:42
103 1 1 золотой знак 2 2 серебряных знака 7 7 бронзовых знаков
Хороший вопрос! Поддержу
11 мая 2018 в 3:50
Странно, у меня с установки, когда я пишу код с подключённым автоматом Unity неймспейсом UnityEngine, все подсказки отображаются.
11 мая 2018 в 4:08
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Всё до банальности просто, достаточно установить расширения для Visual Studio для этого прожмите:
- Средства -> Расширения и обновления.(Tools -> Extentions and Updates..)
- В появившемся окне вбить в поисковике Unity.
- Установить расширение. (Visual Studio 2017 Tools for Unity) Но по идее без него должно было всё работать, вроде бы.
Отслеживать
ответ дан 11 мая 2018 в 5:38
521 2 2 серебряных знака 8 8 бронзовых знаков
В Unity надо открыть: Edit -> Preferences, вкладка External Tools, в External Script Editor выбирать: Visual Studio 2017 Community.
Отслеживать
51.6k 201 201 золотой знак 63 63 серебряных знака 245 245 бронзовых знаков
ответ дан 11 мая 2020 в 20:57
41 1 1 бронзовый знак
Была такая же проблема при использовании VSCode в юнити 2019.2.11f, т.е. не отображались контекстные подсказки при вводе для классов, методов и т.д.
Как решил: 1) Делаем все в точности как описано в официальном мануале по интеграции VSCode с Unity https://code.visualstudio.com/docs/other/unity
2) Если все сделали по мануалу, у вас должен быть установлен VSCode с плагинами C# и Debugger for Unity, при этом в юнити в Edit\Preferences\External tools у вас выставлен VSCode(с установленными параметрами ProjectPath, File, Line, Column) как редактор скриптов и установлен флажок Editor Attaching. Далее, открываем любой скрипт из юнити — он должен открыться в VSCode и в окне Explorer-а должна отображаться вся структура вашего проекта( а не только файл открытого скрипта).
3)Плагин C# внутри VSCode должен выдать предупреждение в лог (консоль можно открыть в самом нижнем поле редактора VSCode слева внизу два значка — ошибка и предупреждение), что файл проекта подгружен некорректно из-за отсутствия необходимого пакета .Net Framework какой-либо версии (в моем случае это была версия 4.7.1, в вашем случае может быть другая)! Устанавливаем требуемый пакет .NET Framework с оф. сайта майкрософта (https://dotnet.microsoft.com/download/dotnet-framework) или откуда угодно, ДАЖЕ ЕСЛИ УСТАНОВЛЕНА БОЛЕЕ ПОЗДНЯЯ ВЕРСИЯ (это никак не повредит ей).
После установки .Net Framework закройте на всякий случай Unity(если изменяли состояние флажка Editor attaching) и VSCode. Откройте юнити заново и откройте любой скрипт. В этот раз при открытии файла плагин C# в VSCode больше не должен выдавать ошибок загрузки проекта и контекстные подсказки будут работать.
P.S. дополнение VSCode integration для Unity из Asset Store можно не устанавливать, т.к. если все сделано правильно, то все работает и без него.
Программирование в Unity для опытных программистов
В Unity скрипты можно использовать для разработки практически любого элемента игры или интерактивного контента с графикой реального времени. Unity поддерживает скрипты на C#, созданные в соответствии с одним из двух основных подходов: традиционным и широко использующимся объектно-ориентированным подходом и информационно-ориентированным подходом, который теперь тоже поддерживается в Unity в отдельных случаях благодаря нашему высокопроизводительному многопоточному стеку информационно-ориентированных технологий (DOTS).
На этой странице
- Если у вас есть опыт программирования на C++
- Объекты GameObject и компоненты
- Программирование компонентов в Unity
- Преимущества информационно-ориентированного подхода
- Современное оборудование
- Отладка в Unity
- Системы программирования в Unity
- Настройка редактора Unity
Знакомитесь с Unity, имея знания C++?
Unity поддерживает C#, стандартный в отрасли язык программирования, в некоторой степени похожий на Java или C++.
По сравнению с C++, C# легче в изучении. Кроме того, он относится к категории языков «с управлением памятью», то есть он автоматически распределяет память, устраняет утечки и так далее.
Как правило C# удобнее C++, если вам нужно в первую очередь разработать игру, а потом уже работать над различными сложными аспектами программирования.

Объекты GameObject и компоненты в Unity
Вся интерактивность и игровой процесс в Unity строятся на основе трех фундаментальных блоков: объекты GameObject, компоненты и переменные.
Любой объект в игре является GameObject, будь то персонажи, источники света, спецэффекты, декорации и все остальное.
Компоненты
Игровые объекты сами по себе не имеют никакого поведения. Для того, чтобы объект начал работать, игровому объекту нужны различные атрибуты, добавляемые с помощью компонентов.
Компоненты (Component) определяют поведение игровых объектов, к которым они прикреплены, и управляют ими. Простой пример — создание источника света, включающее прикрепление компонента Light к GameObject (см. ниже). Таким же примером может быть добавление компонента Rigidbody к объекту, чтобы он мог падать.
Компоненты имеют ряд свойств или переменных, которые можно настроить в окне Inspector редактора Unity и/или с помощью скрипта. В примере выше к свойствам источника света относятся дальность, цвет и интенсивность.
Программирование компонентов в Unity
В Unity есть множество самых разнообразных компонентов, но вы вскоре можете столкнуться с необходимостью создать собственный компонент для реализации своих алгоритмов. Это можно сделать с помощью скриптов, в которых описана ваша собственная игровая логика и поведение объектов, и которые затем прикрепляются к игровым объектам как компоненты. Каждый скрипт связывается с внутренними механизмами Unity путем реализации класса, производного от встроенного класса MonoBehaviour.
Компоненты на основе скриптов позволяют запускать игровые события, проверять объект на предмет столкновений, применять физические свойства, программировать реакцию на управление пользователя и многое другое. См. Unity Scripting API для дополнительной информации.

Преимущества информационно-ориентированного подхода с DOTS
Традиционная модель «игровой объект — компонент» хорошо работает и сегодня, поскольку она проста как для программистов, так и других пользователей, а также удобна для создания интуитивных интерфейсов. Добавите компонент Rigidbody к объекту GameObject — он начнет падать, добавите компонент Light — GameObject начнет излучать свет. Все остальное также подчиняется этой простой логике.
При этом система компонентов создана на основе объектно-ориентированной платформы, что создает сложности для разработчиков при работе с кэшем и памятью развивающегося оборудования.
Компоненты и игровые объекты относятся к «тяжелым объектам C++». Все объекты GameObject имеют имя. Их компоненты представляют собой оболочки для C# поверх компонентов на C++. Это упрощает работу с ними, но может влиять на производительность, если они будут храниться в памяти без явной структуры. Объект C# может находиться на любом участке памяти. Объект C++ также может находиться в любом участке памяти. Группировка и последовательное размещение объектов в памяти отсутствуют. При каждой загрузке в центральный процессор для обработки объект приходится собирать по частям из разных участков памяти. Это может сильно замедлить загрузку, а оптимизация потребует много усилий.
Для решения этих проблем мы начали перерабатывать базовые системы Unity на основе высокопроизводительного, многопоточного стека информационно-ориентированных технологий или DOTS (в настоящее время в статусе предварительной версии).
DOTS позволяет вашей игре эффективно использовать все возможности новейших многоядерных процессоров. Стек состоит из следующих компонентов:
- система задач C# для эффективного исполнения кода на многопоточных системах;
- Entity Component System (ECS) для разработки высокопроизводительного кода по умолчанию;
- компилятор Burst для компиляции скриптов в оптимизированный нативный код.
ECS — это новая система компонентов в составе DOTS; все традиционные объектно-ориентированные манипуляции над GameObject отражаются на экземпляре в новой системе. Название «Компонент» никак не изменилось. Важнейшее отличие — в структуре данных. Подробнее об этом можно узнать из статьи «О DOTS: Entity Component System».

Используйте все возможности современного оборудования
Помимо того, что это улучшенный подход к написанию кода игры с точки зрения дизайна, ECS позволяет вам использовать систему задач C# Unity и компилятор Burst и тем самым полностью использовать преимущества современного оборудования.
Многопоточные системы DOTS помогают создавать игры для самых разных устройств и разрабатывать богатые игровые миры с большим числом элементов и сложными симуляциями. Производительный код, в свою очередь, снижает тепловыделение и продлевает время автономной работы мобильных устройств. Переход от объектно-ориентированного к информационно-ориентированному подходу упрощает вам многократное использование кода, а другим позволяет легче понять и дополнить его при необходимости.
Некоторые из технологий DOTS все еще находятся в статусе предварительной версии, поэтому мы советуем разработчикам использовать стек для решения отдельных вопросов производительности проекта, не строить на базе DOTS весь проект. См. раздел «Дополнительные ресурсы» в конце этой страницы, где указаны ссылки на ключевые ресурсы DOTS.

Отладка в Unity
Настройка и отладка в Unity эффективна, потому что все переменные игрового процесса отображаются непосредственно в процессе игры, что позволяет менять их на лету без дополнительного программирования. Игру можно приостановить в любой момент или переходить от одного оператора к другому по очереди.
Вот несколько полезных ресурсов по оптимизации в Unity:
Наилучшие методики для общих случаев (включая подробные советы по оптимизации системы интерфейса Unity)