読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】CUIで行こう

f:id:tsubaki_t1:20170324005916j:plain

ふと「Unityの操作はGUIがタルい」という話を耳にした。

宜しい、ならばCUI

 

コマンドラインでいこう

まぁCUIといったらコマンドラインでしょう。

マニュアルを見ると、意外とコマンドラインはあります。

docs.unity3d.com

-batchと -quitと -nographicsは友達

全部CUIで頑張ろうと思った時に頼りになるのが、-batchと-quitと-nographicsです。

-batchはUnityエディタのウィンドウを表示せず、

-quitは操作が完了したらUnityエディタ(サービス)を落とし、

-nographicsはグラフィックを起動しない。

フレンズ。

プロジェクトを作ろう

コマンドラインの -createProject でプロジェクトを作ります。

f:id:tsubaki_t1:20170324010013j:plain

ソースコードやアセット群を用意しよう

プロジェクトだけではゲームは作れないので、ソースコードを用意。

勿論コマンドラインで。

置いただけではすぐに使えないので、バッチモードで一瞬だけUnityを起動して、メタデータを作ってもらいます。

 

基本的にアセット群はResourcesもしくはAssetBundleから取得する感じになります。

 

ソースコードを編集しよう

入力補完は甘え

男は黙って…何使うんでしょうね。vim?

 

あ、外部にC#ライブラリプロジェクト作って(unityengine.dll参照して)assets以下にビルドするのは有りだと思います。

 

まぁ、基本的にMonobehaviourは1個で、そこに処理を追加する流れになりそうです。
(自分の場合はMainコンポーネント一つだけ)
画像の表現等はGraphics系命令で何とか。アニメーションはPlayableAPI
 

シーンビューに物を置こう

シーンビューに物を置く系の操作はエディタを操作しないといけませんが、エディタ拡張でやってしまいます。

エディタ拡張のメソッドを定義し、コマンドラインの -executeMethod で呼び出す感じです。

Mainコンポーネントを用意しておき、シーンにMainコンポーネントだけ配置、今後はMainコンポーネントにコードを記述していきます。

gist.github.com

ちなみにCameraは初期設定では無いので、Mainコンポーネントから追加が必要。

ゲームを試そう

Unityエディタのシミュレーターが使えないので、毎回ビルドします。
これで無限ループ起こしても安心。

コマンドは -buildWindows64Player とか使います。

上手く行けば実行ファイルが作られます。

f:id:tsubaki_t1:20170324010654j:plain

 

感想

冗談でやったけど、自分には無理だなぁ

 

大昔にCUI操作を積極的に行っていた時期がありましたが、正直GUIの方が最終的に操作時間が短く済んだという記憶があったりなかったり。
幾つかのコマンドは便利だったという記憶はありますが。

 

その他

そういえば、何時の間にかハンドル渡せるようになったんですね。
お陰でコレが出来ました。