Unityをターミナルから起動してみたい!
かずまです。
今回はUnityをMacのターミナルから起動してみます!
一応その方法は公式には書いてありますね。
/Applications/Unity/Unity.app/Contents/MacOS/Unity
これで起動できるのか。なるほど。
ってかGUIでいいだろ
いやいや、GUIだと自動でgitの設定できないじゃん!
しかも毎回gitignoreを作るのだるいし!
毎回打つの面倒だし、オプションも覚えられないので、自分なりにこうだったらいいな〜
ってのを作って見ました。
目標
作る時
# unity new <project_name>
- プロジェクトの生成
- .git & .gitignoreの生成
/usr/local/bin以下にはコマンドを作らない
このQiitaの記事のコメントに
おーシンボリックリンクで作ればいいんじゃんってことが書かれてました。
納得!
なので、その方向でいきますね。
なんだかんだshellScript書くのは初めて。
とりあえず起動してみる
# cd ~/.local/ # vim unity /Applications/Unity/Unity.app/Contents/MacOS/Unity
これであとは権限を変更してシンボリックリンクを/usr/local/bin/へ張る。
# sudo chmod a+x unity # sudo ln -si ~/.local/unity /usr/local/bin
とりあえずこれで
# unity
って打てばとりあえず起動できる!
新規プロジェクトを立ち上げたい
これできればめっちゃいいと思うんですよね。
UnityをMacでやるようになってからずっと思ってました。
ということで、以下のようなコードを書いて見る・・・。
if [ -n "$1" ] then if [ "$1" = "new" -a -n "$2" ] then /Applications/Unity/Unity.app/Contents/MacOS/Unity -createProject ~/Documents/"$2" cd ~/Documents/"$2" git init curl https://raw.githubusercontent.com/github/gitignore/master/Unity.gitignore >> .gitignore elif [ "$1" = "open" -a -n "$2" ] then /Applications/Unity/Unity.app/Contents/MacOS/Unity -projectPath ~/Documents/"$2" else /Applications/Unity/Unity.app/Contents/MacOS/Unity fi else /Applications/Unity/Unity.app/Contents/MacOS/Unity fi
$1 = 第一引数 では new または open を指定
$2 = 第二引数 では プロジェクト名を指定
gitignoreはここのrowファイルをcurlでファイルを生成しています。
github.com
もちろん新規プロジェクトはクリエイトされるし、成功する。
だけどUnityも開いてgitの設定もしてくれるだろうということで書いてみたけど、Unityのプロセスが走りっぱなしでUnityを終了するまで実行されなかった。
うーん、これだとUnityを起動して、一度止めないといけないので面倒だ〜。
で、途方に暮れてさーっとブラウジングしてると。。。
お、なんかこれで新規Windowのターミナル立ち上げてそこから起動すればいいっぽいな〜って感じでこう書いて見た。
if [ -n "$1" ] then if [ "$1" = "new" -a -n "$2" ] then osascript -e 'tell application "Terminal" to do script "/Applications/Unity/Unity.app/Contents/MacOS/Unity -createProject ~/Documents/\"$2\""' cd ~/Documents/"$2" git init curl https://raw.githubusercontent.com/github/gitignore/master/Unity.gitignore >> .gitignore elif [ "$1" = "open" -a -n "$2" ] then /Applications/Unity/Unity.app/Contents/MacOS/Unity -projectPath ~/Documents/"$2" else /Applications/Unity/Unity.app/Contents/MacOS/Unity fi else /Applications/Unity/Unity.app/Contents/MacOS/Unity fi
一応これでいけたっぽい?
いや、だめ、引数2つめをto do scriptで渡してるけどうまく渡せてないらしい。
これだとプロジェクト名が$2になってしまう。なので振りだしに。。。
もし、to do scriptでvalueを渡す方法があればどうか、教えてください。(切実)
さらにこれだとDocuments直下にしか作れないのでそれは便利とは言えないので、移動した直下にプロジェクトをつくる仕様に変更します。
移動した先でプロジェクトを作成する
if [ -n "$1" ] then if [ "$1" = "new" -a -n "$2" -a ! -e ./"$2" ] then mkdir $2 cd $2 git init curl https://raw.githubusercontent.com/github/gitignore/master/Unity.gitignore >> .gitignore cd .. /Applications/Unity/Unity.app/Contents/MacOS/Unity -createProject ./$2 elif [ "$1" = "new" -a -n "$2" -a -e ./"$2" ] then echo "$2" project exist, so use option "\"open <project name>\"" elif [ "$1" = "open" -a -n "$2" ] then if [ ! -e ./"$2"/.git ] then cd ./"$2" git init curl https://raw.githubusercontent.com/github/gitignore/master/Unity.gitignore >> .gitignore fi /Applications/Unity/Unity.app/Contents/MacOS/Unity -projectPath ./"$2" else /Applications/Unity/Unity.app/Contents/MacOS/Unity fi else /Applications/Unity/Unity.app/Contents/MacOS/Unity fi
一度ディレクトリを作って、gitの設定を先にしておいてその中にプロジェクトを作るという形。
すっごく頭悪そう。笑
でも今の所動いているのでこれで一旦終了ですね。
毎回gitignoreを書くの面倒だし、ここまでプロジェクト作ってやってくれるのは結構楽でした。
一応、既存のプロジェクトがある場合はError Logを出したりしてるので実用的に使えるはずです。
将来的なところとまとめ
ここのgitignoreはできてるので、それ以外のUnity上で設定しなければいけない部分を自動でできるとめっちゃいいのだが。。。
まぁ今回は自分がとりあえずやりたい!ってのをやったのでコードは汚いのでお許しください。