Unityで物理演算の実行結果(落下させて積み重なったオブジェクトのトランスフォーム)を保存したかったので、試してみて実際に出来た方法を記事にまとめてみました。
もくじ
目的

これは、Unityのエディターでの実行中に物理演算でボロボロと落としたブロックが積みあがった状態です。
このトランスフォームの配置を保存しておいて、ゲーム内の背景オブジェクトとして使いたいと思っています。
が、エディターでの実行を止めるとブロックは落ちる前の状態に戻ってしまいます…。
実際に出来た方法
実行中に良い感じの配置になったところで一時停止し、ヒエラルキーで新しくゲームオブジェクトを作ります。物理演算のブロックたちをその中に入れます。

それをプロジェクトの方にドラッグしてプレハブを作ります。

実行を停止してプレハブを開いてみると、オブジェクトの位置が良い感じに保存されています!
(マテリアルは今回動的に設定していたので剥がれてしまいました…)
今回はこのまま動かさずに背景オブジェクトとして使いたいので、ブロックを落とすためにつけてあったスクリプトを外してRigidbodyのUse GravityをOff・IsKinematicをOnにします。

まとめ
実行中の結果をプレハブにできるということにふと気づいて、意外と使えると思ったのでメモしました。
物理演算に限らずいろんな場面で便利そうなので活用していきたいです!









