Unity3D手游开发日记(2) - 技能系统架构设计

本文探讨了如何在Unity3D手游开发中设计一个灵活的技能系统,通过数据驱动的方式替代传统的Excel表格技能设计。技能由各种触发器(如特效、动作、声音)组成,根据条件执行。作者提出自定义技能文件,以更直观的方式来配置技能,提高编辑效率。在代码实现上,利用触发器基类、工厂模式、技能实例管理和技能系统管理实现模块化,确保核心代码的封装和扩展性。
摘要由CSDN通过智能技术生成

我想把技能做的比较牛逼,所以项目一开始我就在思考,是否需要一个灵活自由的技能系统架构设计,传统的技能设计,做法都是填excel表,技能需要什么,都填表里,很死板,比如有的技能只需要1个特效,有的要10个,那么表格也得预留10个特效的字段.在代码里面也是写死一些东西,要增加和修改,就得改核心代码,如果我要把核心部分做成库封装起来,就很麻烦了.

能不能做成数据驱动的方式呢?

改技能文件就行了,即使要增加功能,也只需要扩展外部代码,而不用改核心代码,


我是这么来抽象一个技能的,技能由一堆触发器组成,比如特效触发器,动作触发器,声音触发器,摄像机震动触发器等等,这些触发器到了某个条件就执行触发,触发条件一般是时间,如果有比较复杂的浮空技能,可以增加落地触发等.

自定义一个技能文件,代替excel表格,看起来是这样:

简单的技能:


每一行都是一个触发器,这些触发器,到了某个条件会自动触发.


上面的意思就是,第0秒开始面向目标,第0秒开始播放动作1000


复杂的技能:

这个技能能将目标打到空中,并完成3连击,然后从空中砸向地面,


CurveMove(0, 0.413, 104, 0, 0, 0, 0);的意思就是,第0.413秒,开始做曲线运动,让角色飞到空中,曲线运动的ID是104,


用这样的文件来配置一个技能,很灵活,也很快,

        private bool ParseScript(string filename)
        {
        
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值