UnityでPC用のゲームをビルドし実行した際
最初はフレームレートが安定しているんですが、10分くらい経過したあたりから徐々に重くなってしまいます。
UnityのプロファイラーのCPUのメーターは60FPSを上回っているのですが、ゲーム自体は明らかに30FPSを下回って最終的にはゲームにならないほどにカクカクしてしまいます。
Total Memory Usage : 1.15GB
SetPass calls : 22
Draw Calls : 33
Total Batches : 24
生成した弾などのインスタンスはDestroyせずPoolして再利用してます。
何らかのメモリーリークが起きているのでしょうか?
よろしくお願いします。
まず気になるものを生成しないで10分経過させてみてはいかがでしょうか。例えば弾を生成せずに10分経過させてパフォーマンスが落ちないならそこかそこの派生に問題があるとわかります。それを突き止めたら、そのコードを提示すると解決も早いと思います。
シーンに敵などのGameObjectを数十ほど生成してから重くなります。そのGameObjectにはコンポーネントとして「Script、2DCollider、SpriteRenderer(その子オブジェクトも含め)」が複数付いてます。RigidBodyは重そうなのでアクティブ状態をScriptで管理してます。ご指摘通り、各コンポーネントを非アクティブなどして原因を特定してみます。
回答1件
あなたの回答
tips
プレビュー