Как человек, который тратит более 50 часов каждую неделю на написание кода C # для Unity, мне жаль, что я не нашел время, чтобы понять это год назад. Улучшенная интерполяция строк и оператор нулевого распространения (среди других новых функций) уже сделали мою жизнь намного проще.
Для тех, кто не знает, это означает следующее:
private void StopLoadingTween () { if ( _activeTweens != null ) { var loadingTween = _activeTweens.GetTween("loading"); if ( loadingTween != null ) { loadingTween.Kill (); } } }
может стать таким:
private void StopLoadingTween () { _activeTweens?.GetTween("loading")?.Kill (); }
Это может сделать написание кода быстрее, чище и увлекательнее, особенно при работе с MonoBehaviours.
Я уверен, что, используя Visual Studio, вы, вероятно, уже какое-то время смогли воспользоваться преимуществами C # 6 в Unity, но как человек, чей рабочий процесс настолько основан на скорости и простоте Sublime, мне не удалось перейти на VS при нескольких попытках. Для других, вроде меня, которые не могут покинуть Sublime, но хотят использовать более новую версию C #, вот как мне это удалось.
Заявление об ограничении ответственности: я понятия не имею, как работает OmniSharp, и это было достигнуто всего за несколько часов копания и грубой силы. Если вы знаете что-то, чего я не знаю, что можно улучшить, не стесняйтесь оставлять предложения в ответе. И все это на ваш страх и риск. Если вы можете, пожалуйста, сначала попробуйте это где-нибудь, кроме вашей основной среды разработки. Кроме того, я делаю все это в macOS, поэтому все команды терминала для этого предназначены.
Шаг 0а: как использовать SublimeText 3 с Unity
Если вы в настоящее время не используете SublimeText 3 с Unity, это инструкции по установке, которые я использовал несколько лет назад для начала: http://www.radjor.com/blog/p/65. Мне нравится Sublime, но, если вы еще не используете его, вероятно, не лучше сразу вмешиваться: мне постоянно приходится пользоваться системой жизнеобеспечения, чтобы продолжать его использовать.
Шаг 0b: включение поддержки C # 6 в Unity
Чтобы даже использовать эти функции C # в своем проекте Unity, независимо от того, в какой среде вы пишете свои сценарии, вам необходимо включить среду выполнения .NET 4.x для своего проекта. «Редактировать› Настройки проекта ›Плеер» откроет настройки плеера в инспекторе. Затем в разделе «Другие настройки» измените «Версия выполнения сценария» на Эквивалент .NET 4.x и убедитесь, что «Уровень совместимости API» также установлен на .NET 4.x .
Шаг 0c: удалите OmniSharp-Sublime (если установлен)
Честно говоря, я не уверен, нужно ли это. По какой-то причине моя версия OmniSharp-sublime отличалась от последней версии на github. Если у вас есть собственные настройки в каком-либо из файлов конфигурации, вы можете сами их перенести. Однако, если вы в основном используете vanilla omnisharp-sublime, вероятно нет недостатков в удалении.
Шаг 1. Перейдите в каталог возвышенных пакетов.
Откройте терминал и введите следующую команду:
cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages
Шаг 2. Клонируйте новую копию omnisharp-sublime
Эта команда загрузит новую копию основной ветки omnisharp-sublime в папку ваших пакетов в виде папки с именем «OmniSharp».
git clone --recursive https://github.com/OmniSharp/omnisharp-sublime.git OmniSharp
Шаг 3. Создайте OmniSharp
Следующие две команды изменяют каталог на новую папку OmniSharp, созданную на последнем шаге, а затем запускают сценарий сборки. Хотя, честно говоря, я не уверен, нужен ли этот шаг.
cd OmniSharp ./build.sh
Шаг 4. Измените настройки OmniSharp
Внутри той же папки «/ Packages / OmniSharp» откройте файл «OmniSharpSublime.sublime-settings». Найдите там строчку:
“omnisharp_server_active”:”roslyn”
Измените это на:
“omnisharp_server_active”:”prebuilt-roslyn”
Шаг 5: Запустите Sublime
Если Sublime уже был открыт, закройте его и перезапустите. Когда он откроется, он должен загрузить ваш проект. Иногда все становится не так, и вам может потребоваться вручную использовать палитру команд (cmd + shift + P), чтобы использовать команду «OmniSharpSublime: Reload Solution» или команду «OmniSharpSublime: Restart Server».
Следующие шаги
Я не совсем уверен в долгосрочной жизнеспособности этого решения. Вроде бы все в порядке, но иногда при открытии sublime у меня возникают странные проблемы с запуском сервера omnisharp. Я также стараюсь сохранить Visual Studio в качестве редактора сценариев по умолчанию в Unity, чтобы я мог использовать «Assets› Open C # Project »для восстановления и обновления моих файлов .sln и .csproj. Надеюсь, по крайней мере, этот пост поможет последним нескольким противникам Sublime, таким как я, найти друг друга и обменяться мнениями о том, как сохранить жизнеспособное место для редактирования текста в Unity.