[UNITY]2DRPG開発日誌 #27 Rigidbody2Dを大量にInstantiateして重すぎるときの対処法

物理演算は重い

Rigidbody2Dで物理演算するものを大量に(1000個とか)Instantiateすると、ゲームがメチャクチャ重くなって処理落ちします。

そんな時は、「物理演算をしなくてもいいタイミング」で、Rigidbody2DのBodyTypeをStatic(動かなくなる)にしましょう

private Rigidbody2D r = this.GetComponent<Rigidbody2D>();
r.bodyType = RigidbodyType2D.Static;

これでオブジェクトがいかなる衝撃を加えられても動かなくなる=物理演算がされなくなるため、処理が軽くなります。

再度物理演算を開始したい場合は「.Static」を「.Dynamic」にすればOKです。

ちなみに、KinematicよりもStaticのほうが軽いそうです。