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

我想把技能做的比较牛逼,所以项目一开始我就在思考,是否需要一个灵活自由的技能系统架构设计,传统的技能设计,做法都是填excel表,技能需要什么,都填表里,很死板,比如有的技能只需要1个特效,有的要10个,那么表格也得预留10个特效的字段.我是这么来抽象一个技能的,技能由一堆触发器组成,比如特效触发器,动作触发器,声音触发器,摄像机震动触发器等等,这些触发器到了某个条件就执行触发,触发条
摘要由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)
        {
        
  • 25
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
Unity的技能系统架构设计可以根据具体需求和游戏类型的不同而有所差异,但一般可以包括以下几个关键组件和设计思路: 1. 技能管理器(Skill Manager):负责管理所有技能的创建、初始化、释放和销毁等操作。它可以是一个单例对象,用于全局管理技能系统。 2. 技能数据表(Skill Data Table):用于存储技能的配置数据,包括技能的名称、图标、描述、冷却时间、消耗资源等信息。可以使用ScriptableObject或者自定义的数据结构来实现。 3. 技能触发器(Skill Trigger):用于检测技能的触发条件,例如按下特定按键、达到一定的角色状态等。可以使用Unity的Input系统或者自定义的触发器组件来实现。 4. 技能效果(Skill Effect):定义技能的具体效果,例如造成伤害、治疗、状态改变等。可以使用脚本组件或者自定义的效果组件来实现。 5. 技能动画(Skill Animation):用于播放技能相关的动画效果,例如释放技能时的特效、角色动作等。可以使用Animator组件或者自定义的动画控制器来实现。 6. 技能UI(Skill UI):用于显示玩家当前可用的技能列表,并提供交互操作。可以使用UGUI或者自定义的UI组件来实现。 7. 技能升级系统(Skill Upgrade System):用于实现技能的升级和进阶功能,例如提升技能的威力、减少冷却时间等。可以使用经验值、技能点或者其他资源来实现。 8. 技能CD管理器(Skill Cooldown Manager):用于管理技能的冷却时间,防止玩家连续使用同一技能。可以使用计时器或者自定义的冷却管理器来实现。 9. 技能触发事件(Skill Event):用于处理技能触发后的逻辑,例如播放音效、触发特殊效果等。可以使用事件系统或者自定义的消息机制来实现。 以上是一个基本的Unity技能系统架构设计,具体实现方式可以根据游戏需求和开发团队的技术栈进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值