github库上的说明不是很清楚,所以梳理下。
- 下载github上的Dragbones的Unity的运行库
- 解压后有3个文件夹:
/3rdParty
/DragonBones
/Unity
- 新建unity工程后,把
解压目录/DragonBones/src/DragonBones
这个文件夹整个的方法项目的Assets/Scripts/
目录下。 - 把
解压目录/Unity/src/DragonBones/unity
这个文件夹放到Assets/Scripts/
目录下 - 把
解压目录/3rdParty
里的MiniJSON
脚本放到Assets/Scripts/
目录下,这3步目录都一样。
然后编写脚本构建动画角色:
- 从DragBones软件里做好了动画后导出文件,目前包含3个文件:
xxx_ske.json,xxx_tex.json,xxx_tex.png
,我的理解是这三个分别是骨骼的数据,纹理数据和纹理的资源图。这3个文件放在同一个文件夹里,然后把这个文件夹导入到unity的Resources文件夹下。 - 新建一个场景,如sceneA.场景初始只有一个主摄像机,这时建立一个空物体,即
Create->Create Empty
,在这个空物体上绑定一个脚本,在这个脚本的start()
方法里构建动画角色,这样在游戏开始时,这个空物体被加载时就会调用start()
方法,从而把动画角色构建出来。
这个是我从他们给的Demo例子看出来的,我是新手,猜想应该还有更好的方式,特别是同一时刻有众多角色的时候。
3.脚本的内容就参考如下:
using UnityEngine;
using DragonBones;
public class Bones :MonoBehaviour
{
void Start()
{
//这两步先加载数据,一个骨骼、一个纹理;Dragon/Dragon_ske替换成你的动画文件名
UnityFactory.factory.LoadDragonBonesData("Dragon/Dragon_ske"); // DragonBones file path (without suffix)
UnityFactory.factory.LoadTextureAtlasData("Dragon/Dragon_tex"); //Texture atlas file path (without suffix)
//这里构建动画,Dragon替换成你要构建的动画角色名
var armatureComponent =UnityFactory.factory.BuildArmatureComponent("Dragon"); // Input armature name
// 播放动画,walk替换成你需要的动画名
armatureComponent.animation.Play("walk");
// Change armatureposition.
armatureComponent.transform.localPosition = new Vector3(0.0f, 0.0f,0.0f);
}
}
4.运行游戏,角色就构建出来了。
11/24更新
-
BuildArmatureComponent
这句代码里的名字不是随便取的,要根据你在DragonBones里面创建的动画角色来决定。默认是Armature
,所以导出文件取成自己想要的名字后,后面用这个名字构建角色出错。如果是多个角色嵌套的,使用xxx/yyy
类似文件路径这种写法。
2.除了使用代码,还可以在gameObject里面选择DragonBones来构建,和其他的游戏类型构建是一样的。在菜单里的gameObject
选择或者在hierarchy
里创建。