竹林ソフト 2023/06/09 20:00

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() で呼び出している処理をコルーチンにしてしまえば外部プロセスを待つこともできるのですが、どうするのかもう少し考えてからどうにかします。
どうするかは決まっていませんが、問題の理解が進んだのは大変よいです。がんばります。

月別アーカイブ

限定特典から探す

記事を検索