LoginSignup
2
5

PowerShellからUnityを起動する そしてログを標準出力stdoutに出力する

Last updated at Posted at 2017-07-15

そして~のほうが本題です

20203/05/26 追記

Unity2023から以下のようなCLI向けのバイナリが追加されました。(Unity.com)こちらを使えば -logFile -オプションがちゃんと動作します。

C:\Program Files\Unity\Hub\Editor\2023.1.0b18\Editor\Unity.com

初めに

諸事情でpowershellからunityを起動したくなった。
(つまりshはクソだしpythonやrubyはそこそこ面倒くさい)

で標準出力にUnityのログを出したい。
なぜかWindowsだと頑張らないと出せない…何故ログを標準出力に出すオプションをUnityちゃんは与えなかったのか…
というわけで1日くらい格闘の末安定してログを出せるようになったので記事にします。

AppleOSだとこんな感じで出せる
/Applications/Unity/Unity.app/Contents/MacOS/Unity -logFile /dev/stdout
きっとリンゴがなんかあくどいことしたに違いない

結論

最終的にこんな感じになった。



仕組み

材料1
unityのログファイルが出力されるまで待機して
ファイルができたらcat -tail 10 -waitで垂れ流すプロセス

材料2
unity起動するプロセス

材料1と2をそれぞれうごかしておしまい

試したこと

New-Itemでファイル作ってから監視する

while(!(Test-Path $logPath)){ Sleep -s 3 };
をやる前に普通にniでファイル作ってから監視すればいいじゃん?
と思って試したけどなんか監視が終わることが時々よくあったのでNG

ちなみにechoかなんかで適当なこと書いてからやろうとしたら文字コードの関係でログが大変なことになって爆死しました。

unityは&で起動する

unityの引数がうまく渡らずNG
(できると思うんだけど…)

問題点

Ctrl+C強制終了してもプロセスが残る
finallyが一切finallyじゃないの何とかしてほしいですはい

trapも使えないし…
なんなん・・・

簡単に解決方法あれば教えてほしいです。

とりあえずbegin proecssに書き換えてある程度改善しました

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5