Как человек, который тратит более 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.