コンパイルの時間をなくすアセットが登場しました。その名もHotReload。
以下の特徴があります。
- コード修正したときに即座に反映
- 再生中にコードを変更することで即座に反映
使い方
購入後、パッケージマネージャーからインポート。
そして、HotReloadウインドウのStartをクリックするだけです。ウインドウは、Window > HotReloadから表示できます。
ただ、少し使ってみたところ、注意点があることがわかりました。
注意点
visualstadioで、コードの変更を反映させた後、ブレイクポイントで停止されなくなる、という問題が発生しました。
visualstadio2019、2022と試しましたが、どちらもダメでした。
サポートに問い合わせたところ、Issues(課題)として扱ってくれ、返金対応してくれました。
なので、visualstadioを使っている場合は要注意です。
また、現段階で、フィールド(クラス内の変数)の追加、編集、削除、enumなど、HotReloadしてくれません。
一瞬、unsupportedという表示が出て、通常のコンパイルをします。
これはバグではなく、サポートしてないということみたいです。
ドキュメントの特徴を見てみると、ロードマップのところにフィールドの追加、編集、削除、新しいクラス/構造体の追加、列挙体などの記載があります。
つまり将来的にサポートしていきます、ということでしょう。
やや残念ですが、それでも、メソッドの追加やローカル変数などはサポートされているので、小さなコード修正では高速化が期待できそうです。
また、実行中に反映がされるため、キャラクターなどの動作を試すときに使えそうです。
unityアセットストアの詳細で、新機能の追加を続けており、最終的には(すべてではないにせよ)可能な限りのC#の変更をサポートしたいと考えています、とあるので、今後に期待ですね。