Egret社区
先说说问题,首先我用的是UNITY 5.X版本的,多年前做了点东西,现在想重新弄弄,就不更新什么版本了,
当时用的龙骨版本应该是5.0下做的。
做了这么个东西,名字是 “armatureName”, 动作名称是"TestAnimation"
noProblemBaiji.jpg



然后按当时的说明把这些导入到UNITY项目中
unityBone.jpg

再把龙骨导出的文件放到Resourses中
bone_ske.jpg


再键入下面的代码


void Start () {
      
        // 龙骨文件的路径
        UnityFactory.factory.LoadDragonBonesData(@"BaiJiAction/BaiJi_ske");
        // 贴图集的路径
        UnityFactory.factory.LoadTextureAtlasData(@"BaiJiAction/BaiJi_tex");
        
        // 取得骨骼动画的骨架
        var armatureComponent = UnityFactory.factory.BuildArmatureComponent("armatureName");


        armatureComponent.animation.Play("TestAnimation"/*"Idle"*/);
        


        armatureComponent.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);

}


此时是能正常运作的
normalPlay.jpg


======================= 然后问题来了================================
多年后的今天 ,我把多年前做的龙骨项目重新导出一份(跟上面所用的龙骨项目不同,是当时做的那一个项目,主要把动作给完善)。
这是这个导出项目的一个概况
haveProbleBaiJi.jpg

名字是 “armatureName”, 动作名称是"Idle"
同样把该导入到UNITY的文件都导入,现在这个龙骨导出的项目名,如图所示
IDLE_ske.jpg


然后还是一样的代码


        void Start () {
        UnityFactory.factory.LoadDragonBonesData(@"BaiJiIdle/Idle_2019_ske");
        UnityFactory.factory.LoadTextureAtlasData(@"BaiJiIdle/Idle_2019_tex");


        var armatureComponent = UnityFactory.factory.BuildArmatureComponent("armatureName");
        armatureComponent.animation.Play("Idle");


        armatureComponent.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
        }



但运行时却出现这样一个错误,
boneRunError.jpg


错误定位在 这行代码上   armatureComponent.animation.Play("Idle");
这到底是什么情况呢?


于是我把能播放的那3个龙骨文件再放进同一个项目试,结果BaiJi_ske的这三个文件的,依旧能播放,
这到底是为什么呢?

分享到 :
0 人收藏

1 个回复

倒序浏览
yxlovemoney  登堂入室 | 6 天前
QQ图片20191106162556.png 终于知道问题原因,原来需要导出的版本为4.5才能用以前旧的方法。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部