そして~のほうが本題です
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に書き換えてある程度改善しました