NPC をコーディングして領地経営するゲーム開発(luac を外部プロセスとして実行する)
私の体験版のリリースに向けて開発していきます。
こう、実際にリリースしようとすると「あぁ、こんなに後回しにしてたんだな」というのに気付きます。
外部プロセスの実行に失敗したのをどうにかする
これは、luac という lua スクリプトをコンパイルするコマンドを使って「この Lua スクリプトの何行目が構文エラーです」という仕組みを実装して動作していたつもりだったのですが、リリースビルドでは動作しない問題です。
で、調べたところ
Postpone due to IL2CPP currently doesn't support external process creation.
超訳: IL2CPP は外部プロセスの作成に対応してないっす。
という記事↓が見つかりました。
https://issuetracker.unity3d.com/issues/il2cpp-system-dot-diagnostics-dot-process-dot-start-fails-to-launch-application
今使っている Unity Editor まで対応してないかは確認してないですが、ここまでの状況は一致しています。
で、さっきの記事に「外部プロセス実行できるアセットあるよ」という書き込みがあったので、買って試してみました。
System.Diagnostics.Process for IL2CPP
試したところ、付属サンプルはコルーチンの中でプロセスを開始していました。
とりあえず動作したのですが、希望通りの動作ではないのでどうするか考え中。
まとめと今後の予定
実装が複雑なだけなら着手すれば開発は進むのですが、技術的な問題だと悩ましいです。
IL2CPP でなく Mono でビルドするとか、Update() で呼び出している処理をコルーチンにしてしまえば外部プロセスを待つこともできるのですが、どうするのかもう少し考えてからどうにかします。
どうするかは決まっていませんが、問題の理解が進んだのは大変よいです。がんばります。