俺だってLinuxでゲーム開発したいんだよ! Linux版UnityEditorを実務で使ってみた

#TL;DR
Unity2020以降ならLinux版Editor、アリですよ

# 君はLinux版UnityEditorを知っているか
UnityにはWindows版、Mac版以外にもLinux版が結構前から提供されています。
https://blog.unity.com/ja/technology/announcing-the-unity-editor-for-linux
2019年から公開はされており、2019.3で一応完全サポートという事になっています。

が、**私の周りに使っている人が一切居ない。**仕事で使ってるよという人も一切居ませんし聞いたこともありません。Linux版UnityEditor、架空の存在とかなのでしょうか？

半年ほど前、なんかWindows使うの嫌になってきたので（？？？）全部の仕事をLinuxでやりたい欲求が出てきました。幸か不幸かリモートワーク時代なので~~リモートなのを利用して~~Linux版Unityで仕事をしてみました。　これは実際に人柱してきたレポートみたいな記事です。(**Linux版Editor使わねぇよｗｗって人は明日のアドカレに期待しようね！**)


#環境
- Ubuntu18（PCは自作）
- UnityHub3
- Unity 2020.3(LinuxEditor)

# インストール手順
https://unity.com/download#how-get-started
にアクセスし下部のDownload for LinuxからDLしましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159111/9440dfed-8f40-a190-1ec9-11dd2ada93c8.png)

適当に解凍しINSTALL.shを叩きます(一応UnityHub.AppImageからの起動もできます。README曰く「最大限にUnityHubを使いたいならシェル叩け」とのこと）

```console
Unity Hub$ sh INSTALL.sh 

This script will only run if the UnityHub.AppImage is at the same location as this script
This will wipe any existing Unity Hub installations, are you willing to proceed? [N|y]: y

Integrating Unity Hub into system
Updating AppImage permissions
Moving AppImage to the Applications folder
Adding the necessary .desktop file
Adding the unity hub icon
Registering the required unityhub URL scheme with XDG
Installation complete.
```



ちなみに**Ubuntuでシェルにdashを使用している場合、このシェルはちゃんと動きません。**
シェルを修正するかbashに切り替えてから叩きましょう。。(readコマンドの使い方がよくない）
ていうかUbuntuを公式サポートって言ってるのにインストールシェルがdashで動かないのはまぁまぁ罠では。。



インストール完了するとUnityHubが起動できるようになります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159111/d0dacc2a-6036-b9da-41b0-374f2d09e77d.png)

![Screenshot from 2021-12-17 01-20-19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159111/c4767c57-6e5f-cf59-7688-0775f3285bc4.png)


プロジェクト作成もバッチリです
![Screenshot from 2021-12-17 01-20-35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159111/baa40b86-d472-eaf6-50d9-0d69343a0981.png)

特にトラブルなく立ち上がりました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159111/b5224851-de95-7cd1-916f-a38afd063c08.png)


#バージョンによる不具合
2019系のUnityEditorをLinuxで使用するのを検討されている方は正直オススメできません。
というのも、仕事にならないレベルでEditorがプチフリーズしてしまいました。
どうもEditor内のウィンドウ位置を変更したりする際に例外が発生しているらしく、結構頻発してしまい一度利用を断念しました…。

Unity2020以降で修正はされたので仕事で使うプロジェクトのUnityバージョンアップした後、また利用を再開しました。
2020では特に何の問題も無く開発は出来てました。


#Win/Macでも同一プロジェクトを使う場合の注意点

チーム開発などでWin/Mac版のEditorも使うことが想定される場合、**ファイルシステムの違いによるトラブル**が起きることがあります
主に**Editor拡張などでファイルパスを指定してなにか読み込んだりする場合**、
Linuxでext3などのファイルシステムを使っていると、完全に大文字小文字を識別するのに対して、Macはデフォルトだと識別しない、Winだと場合によっては識別しない　といった感じになるため、Editor拡張には注意が必要です。

**特にこの問題はgitの大文字小文字を識別しない仕様ともぶつかって悲惨な事になりがちなので気をつけましょう。。（１敗**

最初からLinux版Editorを意識せずに開発していたプロジェクトではかなり苦戦を強いられる恐れがあります。快適Linux開発ライフのために覚悟しましょう。必要経費です。 (上司に相談しよう！　上司な人は俺がルールだ！）


#IDEについて
私はRiderのLinux版を使っています。
Linuxで開発する場合だとRiderかVSCodeあたりが選択肢として出てくるかなと思います。
https://www.jetbrains.com/ja-jp/rider/
もちろんデバッグも出来ます。

#感想・所感
正直Win版、Mac版と同じ感覚で扱えます。
１ヶ月仕事で使ってみましたが特に環境依存なトラブルもなく開発できました(個人的に mac > win な人なので自作PC上のLinuxでサクサク開発できて嬉しかった）
また、会社のCI/CD環境や借りるインスタンスにLinuxを使うことが出来るのでこれもメリットになるかなと思います。win/macインスタンスって安くないしね。

AndroidビルドジョブなどをLinuxで回せるのはメリットですね。もちろんちゃんとIL2CPP使えますよ。
とはいえまだ利用者は少ないと思いますし正式版になってから日も浅いので、今後もLinuxEditor固有のバグは出てくると思います。完全に安定を求めている人は素直にWinかMacで開発したほうが幸せかもしれないです。


おわり。
アドカレはまだまだ続きますよ〜