美文网首页
TowerDefense-GameFramework-Demo解

TowerDefense-GameFramework-Demo解

作者: 1点01的n次方 | 来源:发表于2023-09-24 16:22 被阅读0次

一,目录

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,让周围敌人减速

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

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

相关文章

  • 高等数学:不定积分题选(2)

    1. 解: 2. 解: 2. 解: 3. 解: 4. 解: 5. 解: 6. 解: 7. 解: 8. 解: 9. ...

  • 解牛刀目录

    解牛刀(一) 解牛刀(二) 解牛刀(三) 解牛刀(四) 解牛刀(五) 解牛刀(六) 解牛刀(七)

  • "解"与"系"中的诗情

    原诗: 纽扣辞-九八八年 解解系系解,系系解解系。 ...

  • 解解“慎独”

    写给了不起的孩子的第75封信—— 奋进班的孩子们: 晚上好! 今天想和大家解析两个字:慎独。 ...

  • 高等数学:微分中值定理与导数的应用题选(2)

    1. 解: 2. 解: 3. 解: 4. 解: 5. 解: 6. 解: 7.讨论函数在x=0处的连续性 解: 8....

  • 为政第二2.1/2.2/2.3/2.4

    半解《论语》 “一知半解”的“半解”。作者解一半,读者解一半;现在解一半,将来解一半。 为政第二 2.1 子曰:“...

  • 为政第二2.11/2.12/2.13/2.14/2.15/2.1

    半解《论语》 “一知半解”的“半解”。作者解一半,读者解一半;现在解一半,将来解一半。 为政第二 2.11 子曰:...

  • 书决疑论前/李卓吾(安川注)

    经可解,不可解。解则通于意表【此云所以可解】,解则落于言诠。【言诠饰遮本意,故有不欲落,此云所以不可解】解则不执一...

  • 学而第一1.8/1.9/1.10/1.11

    半解《论语》 “一知半解”的“半解”。作者解一半,读者解一半;现在解一半,将来解一半。 学而第一 1.8 子曰:“...

  • 公冶长第五11-20

    半解《论语》 “一知半解”的“半解”。作者解一半,读者解一半;现在解一半,将来解一半。 公冶长第五 5.11 子曰...

网友评论

      本文标题:TowerDefense-GameFramework-Demo解

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