从Assets
下找到目录DragonBones\Demos\Scenes
,里面有14个场景,都是官方给的例子,一个个来看,先看场景1。
那就HelloDragonBones开始吧!!!
说实话,看到这几字有点恐慌,恍惚是学程序语言第一课:hello world!瑟瑟发抖!!!
点击play看看动画效果。
嗯,场景本来只有一个机器人,现在多复制了一个(右边那个),看
hierarchy
视图,Demo
下有个脚本HelloDragonBones.cs
,就是这个脚本多复制出一个GameObjectdynamic_mecha_1002_101d
。而且和左边那个有最大的区别,那就是它能动,对,有动画的。
那来分析一下HelloDragonBones.cs
这个脚本,详细解析都写在注释了,嗯嗯,能看懂……吧。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DragonBones;
/*首先是在引用命名空间多了个`using DragonBones`,
* 这个东东在`DragonBones\Scripts\unity`里面,
* 定义了很多东西,反正我是还没看,估计看了会头大,
* 但是如果有需要还是需要去头大一下的。
*
**/
public class HelloDragonBones : BaseDemo
{
//声明了一个UnityDragonBonesData的数据类型
public UnityDragonBonesData dragonBoneData;
protected override void OnStart()
{
// 1.Load and parse data
// 1.加载Dragonbones的资源,有两种方法
if (true)
{
// Scheme 1: Load UnityDragonBonesData
/*第一种方法:加载UnityDragonBonesData。
* UnityFactory.factory.LoadData()方法在UnityFactory.cs文件里,有需求可以看哦。
* DragonBonesData,这个是什么呢,这个是一个.assets的unity资源,
* 里面包含了纹理材质等数据,总之就是必须有的
* 没有的话,这种方式肯定是创建不出东西的
* 这时候就需要第二种方法了
**/
UnityFactory.factory.LoadData(this.dragonBoneData);
}
else
{
// Scheme 2: Load JsonData in Resources
/*第二种方法:加载json格式的数据。
* 数据有两个,一个是骨骼数据,一个是纹理数据,需要一次加载。
* 注意资源必须在Resources目录下,才能找到。
* */
// UnityFactory.factory.LoadDragonBonesData("mecha_1002_101d_show/mecha_1002_101d_show_ske");
// UnityFactory.factory.LoadTextureAtlasData("mecha_1002_101d_show/mecha_1002_101d_show_tex");
}
// 2.Build armature
/*2.创建armature
* 这里面有两个参数:1.Armature名称;2.动作数据_data的名称
* 一定注意到自己的命名哦,不然就是,咦,怎么没效果,咦,怎么没动作,咦咦咦!!!
* 然后头大。
* */
var armatureComponent = UnityFactory.factory.BuildArmatureComponent("mecha_1002_101d", "mecha_1002_101d_show");
// 3.Play animation
//3.播放默认动画
armatureComponent.animation.Play("idle");//动画名称
// Set name
/*给孩儿取个名字吧,
* 不给它名字会怎么样呢。
* 嘿嘿,你猜。
* */
armatureComponent.name = "";
// Set position.
//最后设置一个它出现的位置
armatureComponent.transform.localPosition = new Vector3(3.0f, -1.5f, 1.0f);
}
}
图一:dragonBoneData
好,我们再来理一下顺序:
- 引用
Dragonbones
命名空间 - 加载资源
- 创建Armature对象组件,并设置它的一些属性
好了,怎么用脚本创建对象就到此为止了。
网友评论