技能系统(Unity 3D)——学习笔记(三)
前言
前几个月都在忙着秋招和提前批找工作,没有精力更新博客的内容。现在,秋招逐渐正式开始了,有了足够的精力来更新博客的内容了。
由于,之前用unity3D做游戏demo的时候,发现技能系统属于一大难点,因此,单独针对该系统进行学习,主要基于各位大大的视频和资源。
附上大佬的视频:https://www.bilibili.com/video/BV1WJ411T7YQ?p=6
笔记
整体流程:攻击方对象挂载技能管理组件、角色状态类(脚本)。技能管理组件管理技能数据对象,准备需要释放的技能的状态,动态创建技能预制体对象。技能预制体对象上挂载技能释放器组件,完成以下工作:播放相应的攻击动画,执行攻方消耗,选择攻击目标,生成技能攻击特效对象,执行伤害算法,播放受击方动画。
1. 框架
整个技能系统分为攻击者,技能,被攻击者三个对象。
攻击者:技能管理器(脚本),角色状态数据(类),技能数据(类)。
被攻击者:角色状态数据(类)。
技能(预制体):技能数据(类),技能释放器(脚本),角色状态(类)。
2.功能
技能管理器:负责管理技能列表,并且生成技能。
技能释放器:创建技能对应的算法,执行对应算法,实现对攻击者和被攻击者角色状态类
3.技能数据类
包含技能所需的所有数据,比如:1.技能ID;2.技能名称;3.技能描述;4.冷却时间;5.冷却剩余;6.魔法消耗;7.攻击距离;8.攻击角度;9.攻击目标Tags(所属);10.攻击目标数组;11.技能影响类型;12.连击编号;13.伤害比率;14.持续时间;15.伤害间隔;16.技能释放者;17.技能预制体名称;18.技能预制体对象;19.动画名称;20.攻击特效名称;21.攻击特效预制体;22.技能等级;23.攻击类型(单个目标,多个目标);24.选择类型(扇形,矩形)。