spine 二進制 動態(tài)加載 播放第一個動畫

async loadRemoteSpine ( ) { const remoteUrl = 'http://your-server.com/spine/hero' ; try { // 加載 .skel 二進制文件 const skelData = await this . loadRemoteAsset ( ${ remoteUrl } .skel , sp . SkeletonData ) ; // 加載 .atlas 文本 const atlasText = await this . loadRemoteAsset ( ${ remoteUrl } .atlas , null , 'text' ) ; // 加載紋理圖片 const texture = await this . loadRemoteAsset ( ${ remoteUrl } .png , Texture2D ) ; // 創(chuàng)建 SkeletonData const skeletonData = new sp . SkeletonData ( ) ; skeletonData . atlasText = atlasText ; skeletonData . textures = [ texture ] ; skeletonData . textureNames = [ 'hero' ] ; skeletonData . _nativeAsset = skelData ; // 創(chuàng)建并播放 Spine 動畫(同上) // ... } catch ( error ) { console . error ( '遠程加載失敗:' , error ) ; } } private loadRemoteAsset < T > ( url : string , assetType ? : any , responseType ? : string ) : Promise < T > { return new Promise ( ( resolve , reject ) => { assetManager . loadRemote ( url , { ext : '.skel' } , ( err , asset ) => { if ( err ) { reject ( err ) ; return ; } // 根據類型返回數據 if ( responseType === 'text' ) { resolve ( asset . text ) ; } else { resolve ( asset as T ) ; } } ) ; } ) ; }

let spData = new sp.SkeletonData();
let spr = assetPng.asset as SpriteFrame;
// spData.skeletonJson = (assetJsonOrSkel['json'] || assetJsonOrSkel);
if(assetJsonOrSkel['json']){
spData.skeletonJson = (assetJsonOrSkel as Asset)['json'];
}
else if(assetJsonOrSkel._nativeAsset){
spData._nativeAsset = (assetJsonOrSkel as sp.SkeletonData)._nativeAsset;
}
spData.atlasText = (assetAtlas['text'] || assetAtlas);
spData.textures = [spr.texture as Texture2D];
spData.textureNames = [assetPng.fileName];
spData._uuid = assetJsonOrSkel.uuid

let json = this.upLoadSpine.spine.skeletonData.skeletonJson;
if(json){
let nameList: string[] = Object.keys(json["animations"]);
event.SpineName = nameList[0];
}else{
event.SpineName = this.upLoadSpine.spine.skeletonData["_skeletonCache"]["animations"][0].name;
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容