您的位置:首页 > 移动开发 > Unity3D

【Unity&DragonBones】DB中的Demon分析(一)CoreElement场景代码分析

2016-12-12 16:50 459 查看
DragonBones C#运行库支持Unity 5.x
GitHub - DragonBones/DragonBonesCSharp: DragonBones C# Runtime
DragonBones C#库 支持Unity示例展示—在线播放—优酷网,视频高清在线观看http://v.youku.com/v_show/id_XMTc2NjUwNTU2NA==.html

下载DragonBones:DragonBones 官方网站

打开DragonBones为Unity创建的Demon工程文件,里面就有一个名字为CoreElement的场景



可以看到该.CS文件的结构如下所示



为什么要定义一个名字为coreElement命名空间namespace

因为命名空间把复杂并且在整个工程文件内有相同名字类似功能的函数规范在这一个.CS文件内。

命名空间namespace作用:局部作用域,避免重复调用

参考资料:

C++中的namespace

------------------------------------------------------------------------------------------------------------------------------------------------

[RequireComponent(typeof(UnityArmatureComponent))]

这句话的意思:如果脚本A上加了[RequireComponent(typeof(B))],则当AddComponent<A>()时,如果当前没有添加组件B,则组件B会被自动添加。

参考资料:


unity,[RequireComponent(typeof(Camera))]

Unity编辑器扩展之RequireComponent等详解_台式机_百度经验

------------------------------------------------------------------------------------------------------------------------------------------------

点开 class CoreElement : MonoBehaviour ,首先就是一大段声明



------------------------------------------------------------------------------------------------------------------------------------------------

private为私有对象,仅该名字为CoreElement的class类内部调用

constant意思是不可改变的变量,一旦初始化赋值,再也不能改变这个变量的值

第1段代码定义了动画的三种类型为“正常”、“瞄准”、“攻击”,

        private const string NORMAL_ANIMATION_GROUP = "normal";

        private const string AIM_ANIMATION_GROUP = "aim";

        private const string ATTACK_ANIMATION_GROUP = "attack";

***------------------------------------------------------------------------------------------------------------------------------------------------***

readonly只读

第2段代码定义了相关参数

        private const float G = -0.005f;   //下落时候的加速度

        private const float GROUND = 0.0f;   //地面的速度。在此处添加底边的下落速度,可以重置“下落速度”为最初始的状态

        private const float JUMP_SPEED = -0.2f;   //起跳的速度

        private const float NORMALIZE_MOVE_SPEED = 0.03f;   //“正常状态”下的移动速度

        private const float MAX_MOVE_SPEED_FRONT = NORMALIZE_MOVE_SPEED * 1.4f;   //最大前进移动速度

        private const float MAX_MOVE_SPEED_BACK = NORMALIZE_MOVE_SPEED * 1.0f;   //最大后退移动速度

   //左(或者右)武器可能替换的精灵的名字   存放入一个静态只读字符串数组内。也就是说无论有几个“机甲”对象,都公用一套武器对象属性为(私有的、静态的、只读的字符串数组)

        private static readonly string[] WEAPON_LEFT_LIST = { "weapon_1502b_l", "weapon_1005", "weapon_1005b", "weapon_1005c", "weapon_1005d" };

        private static readonly string[] WEAPON_RIGHT_LIST = { "weapon_1502b_r", "weapon_1005", "weapon_1005b", "weapon_1005c", "weapon_1005d", "weapon_1005e" };

参考资料:

c语言中static的作用(精辟分析)

C#中static关键字的作用

***------------------------------------------------------------------------------------------------------------------------------------------------***

------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐