Всем привет!
Решил вернуться после долгих лет на Linux и столкнулся с несколькими проблемами при установке Unity3D. Проблемы возникали поочередно: сама установка и первичный запуск, необъяснимые пустые ошибки в редакторе, которые не позволяли запускать проект, некорректная работа OmniSharp в VS Code и т.д. В данной теме поочередно опишу все пункты по установке вышеуказанных программ (а заодно и для себя на будущее останется, и не придется снова гуглить все, а на данном форуме не нашел).
Начнем с главного, скачать инсталлятор Unity Hub можно по ссылке
https://docs.unity3d.com/Manual/GettingStartedInstallingHub.html (устанавливать пока не нужно).
Установим библиотеки, которые нужны для запуска Unity Hub:
sudo apt-get install gconf-service lib32gcc1 lib32stdc++6 libasound2 libc6 libc6-i386 libcairo2 libcap2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libfreetype6 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libgl1-mesa-glx libgl1 libglib2.0-0 libglu1-mesa libglu1 libgtk2.0-0 libnspr4 libnss3 libpango1.0-0 libstdc++6 libx11-6 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxtst6 zlib1g debconf npm p7zip-full
Далее нужно переместить скачанный ранее файл в ту папку, в которой планируете ее оставить (я поместил в ~/.Programs), делать его исполняемым через GUI или chmod и запустить. Будет создана иконка запуска в меню, дальнейшая настройка (Unity ID, папка установки, установка последнее или любой другой версии Unity) не отличается от таковой в Windows (в том числе на последних версиях можно сразу выбрать установку Andoid SDK, NDK и т.д.).
Далее установим VS Code из репозитория Microsoft:
sudo apt-get install curl
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install code
Установка нужных плагинов (у меня С#, Debugger for Unity, Unity Code Snippets и Unity Tools) и настройка ничем не отличается от таковой в Windows и делается в самом VS Code.
Нам также понадобятся .NET Core и Mono (без него не будет корректно работать OmniSharp):
wget -q https://packages.microsoft.com/config/ubuntu/19.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt-get update
sudo apt-get install dotnet-sdk-3.0 mono-complete
И напоследок то, что исправляет некоторые баги в Unity:
Добавить репозиторий (я сделал это через GUI):
deb http://security.ubuntu.com/ubuntu xenial-security mainsudo apt-get update
sudo apt-get install libunwind-dev libssl1.0.0
Теперь можно открыть/создать проект в Unity.
Когда вы перейдете на вкладку Console, скорее всего вы увидите пустые ошибки, что были и у меня. Нужные для исправления этой баги библиотеки мы уже установили в прошлом шаге.
Теперь перейдите в
Edit - Project Settings - Player - Other Settings - Api Compatibility Level и выберите вариант
.NET Standard 2.0.
Так же, как и в Windows, можно указать VSCode для открытия файлов. Запускаемый файл у той версии, что установлена по данной инструкции,
/usr/bin/code (если ставили из магазина приложений Ubuntu Snap версию, то этого файла не будет, ищите где-то тут: /snap/code/current/usr/share/bin/code, этот адрес могу напутать по памяти, но в целом смысл, где искать, думаю, понятен). После установки редактора изменения у меня отобразились только после перезагрузки Unity. Следует удостоверится, что в поле ключей прописалось
"$(ProjectPath)" -g "$(File)":$(Line):$(Column)
После этого все скрипты будут корректно открываться из Unity по дабл-клику в VS Code.
И напоследок, очень меня раздражает папка snap в домашней директории. Чтобы ее скрыть, нужно ввести команду:
echo snap >> $HOME/.hidden
Также можно удалить лишние файлы, которые накачались командами в той папке, с которой работали в терминале: ключи, deb-пакеты и т.д.
Надеюсь, кому-то данная инструкция поможет. Благодарю за внимание!