反馈时请提供以下信息:
- Creator 版本:3.8.3
- 目标平台:火狐浏览器
- 重现方式:远程加载替换spine 的资源文件 png、json、atlas文件,给预设实例对象替换skeletonData文件无效果,在游戏画面里不显示,在编辑器模式下,手动选中当前对象,改对象的skeletonData栏目里为空,要么就是为MIssing Asset
- 首个报错: 没有报错
- 编辑器操作系统: windows 10
- 重现概率:100%-
代码: public static resourceSpine(spine: sp.Skeleton, assetUrl: string, fileName: string, defaultAmin: string) {
if (!assetUrl)
return;
if (this.spineCache.has(assetUrl) && spine) {
spine.skeletonData = this.spineCache[assetUrl];
spine.premultipliedAlpha = false;
if (spine.node)
spine.node.setScale(1, 1, 1);
if (defaultAmin)
spine.setAnimation(0, defaultAmin, true);
return;
}
let imageUrl: string = assetUrl + "/" + fileName + ".png";
let skeUrl: string = assetUrl + "/" + fileName + ".json";
let atlasUrl: string = assetUrl + "/" + fileName + ".atlas";
assetManager.loadAny([{ url: atlasUrl, ext: '.atlas' }, { url: skeUrl, ext: '.json' }], (error, assets) => {
if (error) {
console.error("加载骨骼动画失败,atlasUrl:" + atlasUrl + " skeUrl:" + skeUrl, "错误," + error);
return;
}
assetManager.loadRemote(imageUrl, (error, imageAsset: ImageAsset) => {
if (error) {
console.error("加载骨骼动画图片失败,imageUrl:" + imageUrl);
return;
}
let asset = new sp.SkeletonData();
asset.skeletonJson = assets[1];
asset.atlasText = assets[0];
let texture = new Texture2D();
texture.image = imageAsset;
asset.textures = [texture];
asset.textureNames = [fileName + '.png'];
// asset.uuid = ske; // 可以传入任意字符串,但不能为空
console.log("资源列表:" + asset.uuid, "动画Json:" + asset.skeletonJson, "动画文档:" +
asset.atlasText, "动画图片数据:" + imageAsset.data);
this.spineCache.set(assetUrl, asset);
spine.skeletonData = asset;
spine.premultipliedAlpha = false;
spine.node.setScale(1, 1, 1);
if (defaultAmin)
spine.setAnimation(0, defaultAmin, true);
});
});
}
-------------加载资源代码
private loadSpine(assetUrl: string, fileName: string, defaultAmin: string) {
ResManager.resourceSpine(this.node.getComponent(sp.Skeleton), assetUrl, fileName, defaultAmin);
}
---------------------------------------------以上是当前使用代码--------------------------------------------
这里是一些日志输出: 资源已经加载成功了。
[PreviewInEditor] 资源列表:zWEwojl1oR0 动画Json:[object Object] 动画文档cashier.png
size: 172, 75
format: RGBA8888
filter: Linear, Linear…动画图片数据:[object HTMLImageElement].
但是游戏对象的Skeleton组件skeletonData属性为Missing Asset。
有人遇到这个问题吗?还是说是新版本的BUG?目前没测试过其他版本