Unity

Unityをターミナルを叩かずに多重起動する拡張(Mac対象)

More than 3 years have passed since last update.


Unityを多重起動する

Macのアプリって普通アイコンやランチャー叩いても多重起動できない。

それは問題ないがUnityで複数プロジェクトを同時起動できないのが問題だと思う。

(マックがそういう仕様である以上は一つのアプリのプロセスで複数プロジェクト開けるようになってて欲しいもんだ。)

Unityで例えばテストプロジェクトと本命プロジェクトを見比べながら作業したりとかよくあると思う。

で、ターミナル使って多重起動するにしても(我々エンジニ〜アは補完がキンキンに効いてる自慢のシェルを使ってるにしても)いちいち

/Applications/Unity/Unity.app/Contents/MacOS/Unity

って打つのも面倒だと思う。


導入

なのでUnity内から更にUnityを開く拡張作った。


RunMoreUnity.cs

using System.Diagnostics;

using UnityEditor;

public class RunMoreUnity {

#if UNITY_EDITOR_OSX

[MenuItem("File/Start One More Unity")]
private static void StartNewUnity() {
var p = new ProcessStartInfo();
p.FileName = "/Applications/Unity/Unity.app/Contents/MacOS/Unity";
p.UseShellExecute = true;
p.CreateNoWindow = true;
Process.Start(p);
}

#endif
}


これをEditor以下に入れとけばメニューからプルダウンで起動できる。

Main.unity - Vuforia AssetBundle Unit Test - PC, Mac & Linux Standalone 2015-06-10 05-37-40.jpg

ショートカットを設定しなかったのはやんちゃな俺が連打してUnity100万個くらい起動して愛機が爆発するのを防ぐためである。

落ち着きのあるユーザーはコレ↓みて設定しても構わない。

http://docs.unity3d.com/ScriptReference/MenuItem.html

Macしか対応しなかったのは俺がMacユーザーだし面倒くさがりで面倒見も悪いからである。


番外編

それでもターミナルから開きたい カッコつけマン ターミネーターは

pipでpercolでも入れて


.zpercol

### search Mac Application

percol_application() {
BUFFER=$(find /Applications ~/Applications -maxdepth 2 -regex '.*.app' | sed 's/ /\\ /g' | percol --query "$LBUFFER")
CURSOR=$#BUFFER
zle -R -c
}
zle -N percol_application
bindkey '^f' percol_application

こんな設定↑書いとけばこんな感じ↓で動いて他のアプリも多重起動しやすいだろ。

2015-06-10 05_58_31.gif