美文网首页
Unity&Dragonbons骨骼动画篇(二)——怎么在脚本中

Unity&Dragonbons骨骼动画篇(二)——怎么在脚本中

作者: _夕羊_ | 来源:发表于2018-10-18 16:54 被阅读0次

    Assets下找到目录DragonBones\Demos\Scenes,里面有14个场景,都是官方给的例子,一个个来看,先看场景1。

    那就HelloDragonBones开始吧!!!

    说实话,看到这几字有点恐慌,恍惚是学程序语言第一课:hello world!瑟瑟发抖!!!

    点击play看看动画效果。

    HelloDragonbones
    嗯,场景本来只有一个机器人,现在多复制了一个(右边那个),看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

    好,我们再来理一下顺序:

    1. 引用Dragonbones命名空间
    2. 加载资源
    3. 创建Armature对象组件,并设置它的一些属性

    好了,怎么用脚本创建对象就到此为止了。

    相关文章

      网友评论

          本文标题:Unity&Dragonbons骨骼动画篇(二)——怎么在脚本中

          本文链接:https://www.haomeiwen.com/subject/eifszftx.html