TowerDefense-GameFramework-Demo解析

一,目录

Assets
    - GameFramework(游戏框架)  
    - GameMain(游戏目录)  
        - Configs(配置)
        - DataTables(数据表,自动生成数据类)  
        - Entity(实体数据)
        - Item(项数据)
        - Localization(本地化资源)  
        - Plugins(插件)
        - Res(资源)
        - Sounds(声音)  
        - Scenes(场景文件) 
        - Scripts(脚本代码)  
            - Base  (初始化GF组件和游戏自定义组件)
                + GameEntry  (游戏入口)
            - BuiltinData  (自定义数据组件)
                + BuiltinDataComponent
            - Camera(摄像机)
            - Data(数据)
            - DataTable(数据表)
            - Definition(定义的版本数据)
            - Editor(编辑器相关生成数据工具)
            - Entity(实体)
            - Enum(由工具根据配置文件自动生成)
            - Event(事件类)
            - Extension(扩展)
            - FSM(有限状态机)
            - Item(塔防里的一项)
            - Level(关卡)
            - Localization(本地化)
            - Menu(菜单)
            - PlacementArea(可放区域)
            - Procedure(流程)
            - Sound(声音)
            - Tower(塔)
            - UI(UI)
            - Utility(工具类)
        - UI(UI预制件)  

二,自动生成相关

在目录 DataTable 下可以看到挺多 txt格式的文件,这些文件可以用excel打开,然后在上面编辑后保存。
目录 Editor 下的脚本文件,可以生成能够解析对应 txt的的数据类。
在工具栏可以看到有相关按钮


image.png

三,游戏初始化

Base 目录下的 GameEntry(挂在Unity编辑上GameFramework节点) 就是游戏的入口,在这会初始化所有的GF组件和游戏自动逸的组件。GameFrameworkComponent 里的 Awake 方法会注册这个组件到GF。

四,游戏流程

image.png

在编辑器里Procedure节点,可以看到所有的流程。这里第一个流程是ProcedureLaunch。这个流程主要是初始化版本信息,本地语言等。
处理完后就到了ProcedureSplash这个流程,就是播放logo动画这些。然后根据运行环境来选择下面的流程:
编辑器:ProcedurePreload
单机:ProcedureInitResources 初始化单机游戏相关资源后到ProcedurePreload
更新:ProcedureCheckVersion 检测是否有新的资源,有则下载,完成再到ProcedurePreload

ProcedurePreload

在ProcedurePreload流程,把所有的数据实例化,可以在GameEntry.Data获取。可以看编辑器Data节点上有哪些数据。
image.png

获取到的后,可以根据数据设置一些开始需要设置的。

ProcedureLoadingScene

接着到ProcedureLoadingScene这个流程,首先会关闭之前场景的弹框等;接着加载下一个场景的相关数据和资源。
这个之后就到ProcedureMenu。

ProcedureMenu

在这个流程会弹Menu UI界面,选择游戏关卡选择界面。点击第一关,就会进入ProcedureLevel

ProcedureLevel

根据关卡数据初始化场景,及实体;注册相关事件等。

五 塔防游戏

数据和实体都准备好了,下面就是让每个实体按自己的规则行为来移动,攻击等。
LevelControl 实例是管理输入,实体的更新等。
塔防主要有二类实体:
1,EntityEnemy(敌人):初始化完数据后,会根据当前状态来更新,使用了状态机;
NavMeshAgent使得敌人有自动寻路的行为。
2,Tower(塔):
Targetter,获取目标的逻辑
Attack,攻击的逻辑
HealthBar,自己的生命
Attack通过每帧更新来判断是否可以发送子弹来实现Tower的行为。
最后通过CommonLauncher里的方法,发送创建实体的事件。
ProcedureLevel接收到这个事件之后就会创建并展示这个实体实例。


image.png

EntityProjectileHitscan,只是播放一个动画0.1秒的动画,动画结束后就会对敌人造成伤害
EntityProjectileBallistic,根据添加物理相关,让实体一直指向目标,物理里面会更新位置,达到很不错的效果
EntityMissileArray ,多个导弹一起发射,效果很不错,原理跟上面一致
EntityEnergyPylon,让周围敌人减速

当敌人实例都死亡,也就胜利了,可以进行下一关
当玩家死亡,也就是失败了

游戏的大致流程如上面描述那样,至于更具体的需要看代码的具体实现了。从流程入手,一步一步的往底层看。运行游戏看节点的变化。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容