creator 多语言图集资源替换


creator 多语言图集资源替换

  • 一般预制体和scense文件里绑定的资源都是图集里每个spriteFrame的uuid

只有替换除了_uuid的其他非方法的属性才可以达到使用新图集的效果

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
let assetArr = ["CommonText_EN", "CommonText_CN"];
let assetUrl = "texture/" + assetArr[0];
// 加载预制体等UI上绑定的默认图集资源
cc.loader.loadRes(assetUrl, cc.SpriteAtlas, (err, lastAsset)=> {
let newAssetUrl = "texture/" + assetArr[1];
// 加载替换的新语言图集资源
cc.loader.loadRes(newAssetUrl,cc.SpriteAtlas, (err, newAsset)=> {
for(let key in lastAsset._spriteFrames){
let lastSP = lastAsset._spriteFrames[key];
let newSP = newAsset._spriteFrames[key];
for(let i in lastSP){
if(!(lastSP[i] instanceof Function) && i != "isValid" && i != "nativeUrl" && i != "_uuid"){
// 替换全部spriteFrames为新图集的spriteFrames
lastSP[i] = newSP[i];
}
}
}
// 重新加载Scene
cc.director.loadScene('Home');
});
});