diff --git a/thermion_dart/native/src/c_api/TSceneAsset.cpp b/thermion_dart/native/src/c_api/TSceneAsset.cpp index f4992dbf..c35b25e2 100644 --- a/thermion_dart/native/src/c_api/TSceneAsset.cpp +++ b/thermion_dart/native/src/c_api/TSceneAsset.cpp @@ -112,7 +112,11 @@ extern "C" EMSCRIPTEN_KEEPALIVE void SceneAsset_destroy(TSceneAsset *tSceneAsset) { auto *asset = reinterpret_cast(tSceneAsset); - delete asset; + if(asset->isInstance()) { + asset->getInstanceOwner()->destroyInstance(asset); + } else { + delete asset; + } } EMSCRIPTEN_KEEPALIVE void SceneAsset_addToScene(TSceneAsset *tSceneAsset, TScene *tScene) {