免責
OS Xのユーザーのみ対象。
http://qiita.com/kyubuns/items/3feb67d4344bc645d0cc
のコードを参考にさせていただきました。
Unity Version Selectorを作るに至る所以
Unityはバージョン互換がない。一度完成させたプロジェクトでもUnityのバージョンを替えると、そのままでは正常に動かなくなったり、コンパイルできなくなったり、挙動が変わったりする。uGuiまわりのレイアウト崩れも激しく起こるが、ARなどに関するプロジェクトは挙動が怪しくなりがちだ。
Unityのマイナーアップデートですら侮れない。
別バージョンで焼いたアセットバンドルとアプリ本体の相性も悪いので焼き直してアップロードし直しだ。
これを新しいバージョンに乗り換える度に各プロジェクトメンテナンスすると、プロジェクトの数に比例して時間的コストがかかる。
全部で一ヶ月くらいかかることもあった。この事態は一社長として見過ごせない。
そこで俺は革新的でないUnityのアップデートを無理して追いかけても革新的な物を産むことに繋がらないと思い、今更ながらただの時間の無駄と気が付いたので、複数のバージョンを取っておき使い分けることにした。しかしどのプロジェクトがどのUnityバージョンで作ったのかをいちいち意識して起動するのが面倒なのでバージョンセレクターを作った。
Unity Version Selectorを使うための準備
複数のUnityを保持するため、/Application/以下にあるUnityを~/Developer/Unity_Versions/以下に5.4.0f1のようなディレクトリ名にして置いておく。
この要領で使う分だけバージョンを置いておく。このディレクトリに退避させたあとならUnity公式のインストーラーを動かしても/Application以下にUnityがなければ上書きされないのでインストーラーでインストール後、Unityを移動していけば良い。
Unity Version Selectorの仕様
このアプリをOS Xにいれた状態でUnityプロジェクトのルートディレクトリに.unityprojという拡張子をつけるだけで、あとはそれをダブルクリックなりで開くとそのプロジェクトが最後に開かれたunityに最も近いバージョンで開く。(ただしパスにスペースを含むと正常に動作しない。)
アプリはunityproj拡張子に関連付けられているのでファイルオープナーとして使う用に作ってあるが、アイコン自体を叩くと最もバージョンが新しいUnityを選んで起動するので新しいプロジェクトを立ち上げる時などに便利だ。
つまりDockからUnityアイコンをとっぱらってこのUnity Version Selectorを置いておけば良い。