diff --git a/cocos/spine/skeleton-data.ts b/cocos/spine/skeleton-data.ts index af9d57ffbe7..f4251103175 100644 --- a/cocos/spine/skeleton-data.ts +++ b/cocos/spine/skeleton-data.ts @@ -280,7 +280,14 @@ export class SkeletonData extends Asset { } private mergedUUID (): string { - return this._uuid + murmurhash2_32_gc(this._atlasText, 668).toString(); + // merge texture's id and atlas content + const hashContent = [ + this._atlasText, + ...this.textures.map((texture) => texture.getId()), + ].join(''); + + // merge asset's uuid & hashContent + return `${this._uuid}${murmurhash2_32_gc(hashContent, 668)}`; } /** diff --git a/cocos/spine/skeleton.ts b/cocos/spine/skeleton.ts index 5d55d03bf3e..41db671dfbf 100644 --- a/cocos/spine/skeleton.ts +++ b/cocos/spine/skeleton.ts @@ -1202,7 +1202,7 @@ export class Skeleton extends UIRenderer { let tex: Texture2D = assetManager.assets.get(textureUUID) as Texture2D; if (!tex) { // read from skeleton's texture map - tex = this.skeletonData?.textures.find((t) => t.getId() === textureUUID) as Texture2D; + tex = this.skeletonData?.textures.find((t) => (t.uuid === textureUUID || t.getId() === textureUUID)) as Texture2D; if (!tex) { // read from setSlotTexture's cache tex = this._slotTextures?.get(textureUUID) as Texture2D;