メインコンテンツへスキップ
< すべてのトピックに戻る

「A Native Collection has not been disposed, resulting in a memory leak.」が出た場合は?

Job System等で作成した NativeArray などの特殊なメモリを、片付け(Dispose)せずに放置したため、メモリリーク(ゴミの残留)が発生しました。

通常のC#の変数は自動でゴミ掃除(GC)されますが、Native系のメモリはC++のような手動管理であり、明示的に「使い終わった」と宣言しないと永遠にメモリを圧迫し続けるからです。

NativeArrayを作成(Allocator.Temp 等で確保)したら、使い終わったメソッドの最後、または On Destroy() 等で必ず myNativeArray.Dispose();を呼び出して手動で破棄する構造を徹底してください。

目次

9周年キャンペーン実施中 早い申込みほど受講料がお得に