VRM10ObjectFirstPersonにより生成された一人称用Meshが破棄されずメモリーリークしている
tsgcpp opened this issue · comments
tsgcpp commented
環境情報
- UniVRM version:
v0.116.0
- Unity version:
Unity-2021.3.27f1
- OS:
Windows 10
バグについて
- バグの内容
- VRM10ObjectFirstPersonにより生成された一人称用Meshが破棄されずメモリーリークしている
- BoneMeshEraser.CreateErasedMeshAsync で生成された一人称用の
Mesh
インスタンス (_headless_のprefixがあるもの) が破棄されていないと思われます
- ConsoleLog
- 特になし
- スクリーンショット
- 再現方法
- https://github.com/tsgcpp/UniVRM/releases/tag/report_20240106 をcheckout
Assets/Report/Scenes/Report_MemoryLeak_VRM10ObjectFirstPerson.unity
を開いてPlayモードに移行- アバターが複数回ロードと破棄されるまで待機 (100回ロード後に
Vrm10LoadMemoryLeakCheck.LoadLoopAsync finished
とコンソールに出すようにしています) - その後Memory Profilerを確認すると一人称用のMesh群が破棄されていないことを確認できます
- エラーの発生するファイル(ここに貼り付けても差し支えの無いもの)
- 特になし
ousttrue commented
TODO: RuntimeGltfInstance の管理リストに追加する
ousttrue commented
vrm-0.x の方は、
VRM.VRMFirstPerson.OnDestroy で素直に Destroy していた。
ousttrue commented
v0.120
で修正されます。