vaguely

和歌山に戻りました。ふらふらと色々なものに手を出す毎日。

UbuntuのUnity上でUnity3Dを動かす

はじめに

以前Ubuntu向けのUnity3D(デスクトップ環境と混ざってややこしいので今回はゲームエンジンの方はUnity 3D表記とします)のEditorが開発されている、
という話は聞いていたのですが、その後どうなったのかなぁ〜と思ったらちゃんと開発が続いていました。

というわけで、Unity 3Dと、スクリプトを書くためのJetBrains Riderをインストールした話をまとめます。

※2017年4月現在、Ubuntu用のUnity 3Dはあくまで開発版であるため、予期せぬバグなどが存在する恐れがあります。

準備

gdebi

後述しますが、Ubuntu用のUnity 3Dは.debファイルとして入手できます。

この.debファイルをインストールするときに、依存するパッケージが不足している場合に自動でインストールしてくれる「gdebi」をインストールします。

sudo apt install gdebi

【参考】

Angularなどの開発のため、新しいバージョンのものを使いたかったのでNodebrewをインストールし、
ver.7.9.0をインストールしました。 (Node.jsのインストールは延々ログが出力されるのと、ちょっと時間がかかったため不安になりましたが、無事一発でインストールできました)

インストールが終わったら、使用するNode.jsとして、インストールしたver.7.9.0を指定しておきます。

nodebrew use v7.9.0

【参考】

その他

後述しますが、Riderを使うためにはMono ver.4.4以上が必要なためインストールするのですが、
Unity 3Dをインストールする前に入れておくと、古いパッケージをインストールするのを防げるかもしれません。

Unity 3Dのインストール

Ubuntu用のUnity 3Dの.debファイルのリンクはここにまとめられているようです。

(2017年4月現在の)最新版はなぜか下から2番目にある5.6.0f3だと思いますので、
これをダウンロードし、下記のコマンドでインストールします。

sudo gdebi ダウンロードしてきた.debファイル

エラーが無くインストールが終われば完了です。

WindowsMac用と同じように、ログインやライセンスの選択を行います。

起動後もWindowsMac用と同じように使用可能ですが、何故かScene上でカメラを回転させる操作が、
左クリックではなく右クリックなのはちょっと違和感が。。。

Riderをインストールする

RiderはJetBrainsのサイトからEAP版をダウンロードして任意の場所に展開します。

Linux版はインストーラーが付属しているのではなく、binフォルダ内にあるrider.shというファイルをターミナルで実行することでRiderが起動します。

あとは以前と同じようにプラグインをインストールしました。

よ〜し、じゃあ試しに何か作ってみるかぁ〜、と思ったところ。。。

エラーでRiderが起動しませんでしたorz

Riderでプロジェクトを作成した場合も、下記のようなエラーが出てソリューションファイルの読み込みができませんでした。

Solution 'New Unity Project' load failed: MsBuild not found on this machine

Monoのインストール

エラーでググったところ、どうやらバージョン4.4以上のMonoがインストールされていないのが原因とのこと。

ただ、そのまま「apt install mono-runtime」としてしまうとそれより古いバージョンがインストールされてしまうため、
公式を参考にリポジトリを追加してインストールします。

インストールするのは、「mono-runtime」「mono-devel」「mono-complete」の3つです。

sudo apt install mono-runtime mono-devel mono-complete

【参考】

これで勝ったな、ガハハ

おわりに

Monoのあたりでちょっと手間取ったものの、割とすんなりインストールできてよかったです。
これでいよいよどのOSを選んでも不便なく開発できるようになってきましたね(๑•̀ㅂ•́)و✧

ちなみにタイトルにまでしたUbuntuのUnity上でUnity 3Dを動かす、というのは、
何故かデスクトップ環境をUnity8にしたところ、ウインドウが謎の点滅を起こしたためわずか数分で終了しましたorz

まぁGnome3上では快適ですので。。。^^;