UnityはLibraryディレクトリがないプロジェクトをPCビルド設定で開きます。
あまつさえアセットのインポートまでしてしまうため、「Android用のプロジェクトなのにー!」とハンカチーフを噛みながらプログレスバーをじっと見つめるという状況がたまにあります。
これはGitなどで複数人でプロジェクトを共有して、Libraryディレクトリを管理から外した場合に、割とイラつく部分です。
コマンドラインでbuildTargetを指定して開くという方法もありますが、実はプロジェクト内にスクリプトを一つ置いておくだけで回避できたりします。
Unity5.5まで
Assetsディレクトリの下にEditorディレクトリを作成し、下のスクリプトを置きます。
using UnityEngine; using UnityEditor; [InitializeOnLoad] public class Startup { static Startup() { EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTarget.Android); } }
これだけで、Gitからチェックアウトしたプロジェクトは最初からAndroid設定で開きます。
iOSの場合はBuildTarget.iOSを指定するだけ。
Unity5.6の場合
文法が変わり、BuildTargetGroupの設定が必要になっています。
EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.iOS, BuildTarget.iOS);
仕掛け
まずInitializeOnLoad属性がついたクラスのstaticコンストラクタは、Unity起動直後に真っ先に実行されます。
さらにエディター用のEditorUserBuildSettings.SwitchActiveBuildTarget関数を使うと、ビルドターゲットを切り替えることができます。
つまりプロジェクト起動後に真っ先にビルドターゲットが切り替わるため、アセットは切り替え後のターゲット用にインポートされるというからくりです。
*手元でAndroidに切り替えたら、Build設定でColor SpaceをGammaにする必要がありました。
Unityの設定で回避できるようになりませんかね。(ボソッ