远程加载Spine动画的Bug

let comp = this.getComponent('sp.Skeleton') as sp.Skeleton;

let image = "http://localhost/download/spineres/1/1.png";
let ske = "http://localhost/download/spineres/1/1.json";
let atlas = "http://localhost/download/spineres/1/1.atlas";
assetManager.loadAny([{ url: atlas, ext: '.txt' }, { url: ske, ext: '.txt' }], (error, assets) => {
    assetManager.loadRemote(image, (error, texture: Texture2D) => {
        let asset = new sp.SkeletonData();
        asset.skeletonJson = assets[1];
        asset.atlasText = assets[0];
        asset.textures = [texture];
        asset.textureNames = ['1.png'];
        skeleton.skeletonData = asset;
    });
});

按照文档中的写法加载远程Spine动画一直报错,经研究是图片加载时的返回的类型错误,脚本编译后返回的资源不是Texture2D类型的,而是ImageAsset类型的,这里需要转换一下。修改后能正常运行的代码如下

let comp = this.getComponent('sp.Skeleton') as sp.Skeleton;

let image = "http://localhost/download/spineres/1/1.png";
let ske = "http://localhost/download/spineres/1/1.json";
let atlas = "http://localhost/download/spineres/1/1.atlas";
assetManager.loadAny([{ url: atlas, ext: '.txt' }, { url: ske, ext: '.txt' }], (error, assets) => {
    assetManager.loadRemote(image, (error, texture: ImageAsset) => {
        let asset = new sp.SkeletonData();
        asset.skeletonJson = assets[1];
        asset.atlasText = assets[0];
        let texture2d = new Texture2D();
        texture2d.image = texture;
        asset.textures = [texture2d];
        asset.textureNames = ['1.png'];
        skeleton.skeletonData = asset;
    });
});

救救我!!!救救我!!!

我很好奇为啥已经设置texutre了,为啥还必须要设置textureNames

texture是个ary类型 必须判断使用哪张纹理 好做换肤的吧

感谢反馈,已告知相关人员进行修改

引擎3.7.2 有人救救么

我现在也是用的这套 我有多个动画需要显示 每个动画都会执行一套这加载操作 奇怪的是只要第一次用这套加载才能正常显示 后面的就会异常。 这个loder每次调用不是独立的吗 还会互相影响的