Fix error when physicsMaterial used in prefab (#2519)

* fix: error when physicsMaterial used in prefab
This commit is contained in:
luzhuang
2025-01-21 16:45:49 +08:00
committed by GitHub
parent f8d508e7d0
commit 3aa4b82ccf

View File

@@ -33,16 +33,23 @@ export class PrefabResource extends ReferResource {
*/
_addDependenceAsset(resource: ReferResource) {
this._dependenceAssets.add(resource);
// @ts-ignore
resource._associationSuperResource(this);
// @todo: The PhysicsMaterial does not inherit from ReferResource. Currently,
// ReferResource requires the engine to be passed as a parameter, which prevents cross-engine reuse.
// A refactor of ReferResource will be needed in the future.
if (resource instanceof ReferResource) {
// @ts-ignore
resource._associationSuperResource(this);
}
}
protected override _onDestroy(): void {
super._onDestroy();
this._root.destroy();
this._dependenceAssets.forEach((asset) => {
// @ts-ignore
asset._disassociationSuperResource(this);
if (asset instanceof ReferResource) {
// @ts-ignore
asset._disassociationSuperResource(this);
}
});
}
}