Ubuntu 18.04(Zorin OS 15.2)にUnity+C#の開発環境を構築するメモ

はじめに

最近自宅のPCにLinuxを導入しました。仕事でMacを触るようになってから、Windowsコマンドライン関連を含めた使いづらさが目立つようになり、その他の細かい不満点を含めて脱Windowsを目指そうと思ったからです。

LinuxディストリビューションはZorin OS 15.2を選びました。Zorinは以前にも触ったことがあるのですが、特に水色を貴重としたUIのデザインが自分の好みで、Ubuntu 18.04ベースになって安定性が増したらしいということもあり、改めて使ってみることにしてみました。今の所大きな不具合もなく、動作の軽量さも含めてとても快適に使えています。

zorinos.com

もちろんWindowsデュアルブートできる環境にしているので、当初はIntelliJVS CodeでまかなえるコーディングはZorinで行い、UnityはWindowsで触ればいいかと思っていたのですが、LinuxでもUnityが動くらしいことを知り、早速インストールして使ってみました。以下はその導入メモです。

環境構築

1. Linux向けUnity Hubをダウンロードする

公式サイトからダウンロードします。ここでダウンロードされるのはAppImageというもので、異なるLinuxディストリビューション間でもインストール不要で使える形式らしいです。

unity3d.com

ダウンロードしたら権限を与えてコマンドラインから実行します。ダウンロードしたAppImageをクリックすると実行できるかと思いきやそうでもなかったので、コマンドで実行します。

chmod +x UnityHub.AppImage
./UnityHub.AppImage

初回起動時はUnityのライセンスが求められると思うのでログインしてライセンスを更新します。Unity Hubから最新のUnityをダウンロードし、起動できることを確かめます。

2. VS Codeをインストールする

Windowsだと大体の人はVisual Studioを使っていると思いますが、残念なことにLinuxでは使えません。代わりにVS CodeLinux版が公開されているので、それを使います。

Visual Studio Code – コード エディター | Microsoft Azure

また開発に必要な拡張機能をインストールします。必要な拡張機能は以下の通りです。

C#

必須です。

f:id:Kanchi0914:20200713235822p:plain

Debugger for Unity

デバッグに必要です。

f:id:Kanchi0914:20200713235837p:plain

MonoBehaviour Snipetts

MonoBehaviour関連の入力補助を行えるようになります。

f:id:Kanchi0914:20200713235852p:plain

C# FixFormat Fixed

必須ではありませんが、あると良さげです。導入する場合は下記記事の下のほうにある括弧位置の修正を行うといいと思います。
Visual Studio CodeでC#プログラミング - Qiita

f:id:Kanchi0914:20200713235910p:plain

あと個人的な好みですが、Ctrl + ホイールスクロールで文字サイズを変更できるようにするのがおすすめです。
Is it possible to configure control + scroll-wheel to increase/decrease zoom in VS Code? - Stack Overflow
最後にUnityエディタの Edit > preferences > External Tools > External Script Editor をVS Codeに設定します。

f:id:Kanchi0914:20200713235554p:plain

3. .Net Core SDK をインストール

公式ページのUbuntu 18.04の部分に従いインストールします。

Ubuntu に .NET Core をインストールする - .NET Core | Microsoft Docs

wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-3.1

4. Monoのインストール

そのままだと.Net Frameworkの参照が足りない的なエラーが出ます。

The reference assemblies for framework ".NETFramework,Version=v4.7.1" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your Assembly may not be correctly targeted for the framework you intend.

(参照:) c# - Reference assemblies for framework ".NETFramework,Version=v4.7.1" were not found - Stack Overflow

ので、Monoという.Net Framework互換の環境を利用可能にするオープンソースプロジェクトを導入します。公式サイトのUbuntu 18.04の項目を参考にインストールします。

Download - Stable | Mono

sudo apt install gnupg ca-certificates
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 update
sudo apt install mono-devel

5. VS Codeを開き、デバッグができるか確認

4まででC#スクリプトの実行はできるようになっていると思うので、最後にデバッグができるか確認します。Unityエディターを開き適当にスクリプトを追加し、それをVS Codeで開きます。
VS Codeの左のメニューでDebugを選び、 青色になっている「Create a launch.json file」をクリックするとデバッガーの一覧が出るので、 「Unity Debugger」を選択します。

f:id:Kanchi0914:20200714000634p:plain

生成されるlaunch.jsonが以下のようになっていれば大丈夫だと思います。

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Unity Editor",
            "type": "unity",
            "path": "/home/shun/works/Unity/New Unity Project (1)/Library/EditorInstance.json",
            "request": "launch"
        },
        .............

適当にブレークポイントを設定し、デバッグできるか確かめます。

f:id:Kanchi0914:20200714000935p:plain

おわりに

WindowsでのUnity開発環境が100点とすると、UbutnuでのUnityは80点くらいな感じですが、それでもLinux環境でUnityが動くという事実が嬉しいです。LinuxでのUnityはまだほとんど触っていませんが、特に問題がないようなら本格的にWindowsを触る機会が減りそうだなと思いました。

参考にさせていただいたサイト

LinuxにUnity Editorをインストールする方法 | My note

c# - How do I use Visual Studio Code to develop Unity3D projects in Ubuntu - Stack Overflow