写了一个路径编辑器,需要把资源的路径存起来,原来用的spriteFrame的路径不能用了,现在只有一个name表示它的相对路径。url是编译后的路径。
怎么获取resource/game/logo.png存起来,用于游戏中使用cc.loader.loadRes的加载用
不是的亲,这个方法是把传入的参数拼接到res/raw-asset目录下,并不是想要的,我要的是
比如说文件resources/game/login.png,加载到程序里,spriteFrame.name是login.png,
我怎么从spriteFrame中获取他的完整路径,需要的是resources/game/login.png,当前,不要resoucres也无所谓
源码我都翻了,没找到
问个东西有这么麻烦么
你可以通过储存uuid,在游戏中使用uuid来load资源
我们在做多语言切换时用到这个,解决办法是需要hack一下
SpriteFrame有一个_uuid的属性,根据uuid去loader里面查找路径
public parseUuidToUrl(uuid:string){
let pathToUuid = cc.loader["_resources"]._pathToUuid;
for (let key in pathToUuid){
let entrys = pathToUuid[key];
if (entrys instanceof Array){
for (let entry of entrys){
if (entry.uuid === uuid){
return key;
}
}
}else{
if ( entrys["uuid"] === uuid){
return key;
}
}
}
return "";
}
3赞
uuid在别的项目时,引用会变的。我现在用的一个粒子编辑器。官方的粒子在微信中奇卡无比。所以我自己做了一个。现在效果还是非常不错的,不过在更换图片时,需要手动去填写spriteframe的路径。我就想着,怎么把spriteframe拖动赋值后,在plist中来获取这图片的位置。
这样的话,就算plist换了一个工程,也会引用这个图片。不像uuid,后面你懂的了
谢谢。不过这个东西藏得有点深啊