- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?
?
Unity实现动作游戏的技能系统(Ability System)设计原型
?
?
前言
尝试写一个技能系统,希望其尽量完善。目前能想到的元素包括控制、模型、动画、音效、特效、碰撞检测、事件响应、伤害判断、Buff控制。集所有元素为一个编辑器,方便策划和美术进行操作。
输入控制
使用Input System作为跨平台接收输入响应,然后整合到Character脚本中,然后由Character的OnCharacterEvent事件节点,监听对应的操作。
public void AddActionStarted(string actionName,ActionInputAction.CallbackContext callback)
{
GetInputAction(actionName).started += callback;
}
public void AddActionPerformed(string actionName, ActionInputAction.CallbackContext callback)
{
GetInputAction(actionName).performed += callback;
}
public void AddActionCanceled(string actionName, ActionInputAction.CallbackContext callback)
{
GetInputAction(actionName).canceled += callback;
}
private InputAction GetInputAction(string actionName)
{
var action = _inputCharacterGamePlay.FindAction(actionName, throwIfNotFound: true);
return action;
}
技能编辑
使用Timeline作为一个整合工具,可以添加动画、特效、音效、物体控制、扩展脚本集成为一个技能,并可以在Scene中随时进行预览。具体操作可以参考官方教程。扩展了一个PlayableAsset作为Combo触发条件,为连击动画的衔接尽量合理而规定了一定的触发范围。
角色编辑器
在编辑了多个技能后,肯定需要一个角色编辑器来统筹所有的技能。规范技能播放的规则,进行碰撞检测等一系列操作,打通角色的操作的逻辑。这里的Character是通过继承ScriptableObject实现的,方便保存角色的系列信息,并扩展了一个CharacterEditor,用来编辑保存角色的一些属性、技能、以及控制逻辑。
技能触发
在角色编辑器中创建OnCharacterEvent节点,然后创建一个Skill节点,连接即可触发技能播放。事件支持Input System触发,直接输入Input Action的名称,就可以获取当前的输入返回的参数。
若当前技能需要技能效果,则利用Timeline创建多个技能,通过OnCombo进行连击即可触发,下面多连击动作的展示。
连击A
连击AA
连击AAA
基础动画
除了技能动画以外, 还有一些Idle、Walk、Jump等常规动画。本来想沿用技能实现使用Timeline一套的解决方案,但是总感觉有点不搭。这里还是使用了默认的Animator让几个基础动画的切换感觉更合理一些。输入在Input System中添加movement的Input Action使用Vector2作为返回值, 键盘WASD、xbox的摇杆、以及移动端的虚拟摇杆都可以映射为一个Vector2的值,方便进行角色的控制。基础动画的展示
碰撞检测
这里我主要在角色的大刀上绑定了一个碰撞盒子,并结合Timeline在技能施放动画的一定区间范围内开启碰撞盒子,方便让攻击的碰撞更为合理。并且在编辑器里面添加了一个创建测试的敌人的快捷按钮Create Enemy在检测的碰撞的同时,可以获取当前角色正在施放的技能信息。即可对敌人进行,伤害判定,播放受击动画,以及添加BUFF或者DEBUFF。因为连击技能也是一个个单独的技能,每个连击动作都有自己的单独属性,都可以根据不同的连击动画,给敌人造成更高的伤害。敌人受击展示
BUFF系统
Buff主要是一个以计时器驱动的角色属性持续修改的状态。它本身包括的东西很多,除了就能修改角色自带的那一部分属性,还可以对角色进行一些其他操作,比如无敌、击飞、击退、沉默、恐惧、嘲讽、禁锢等等。因为Buff的重复使用率非常高,这里会建立一个Buff池,在角色收到一个技能攻击的时候,会从Buff Pool中取出一个Buff并对其进行
您可能关注的文档
- UI之九宫格设计思路与实现技巧要点.docx
- UI必不可少手机计算器界面设计可学习案例.docx
- UI界面设计中的渐变.docx
- UI自动化常用设计模式.docx
- UI设计中的渐变-第1篇.docx
- UI设计师作品准备以及面试攻略.docx
- UI设计师必备的五款界面设计工具.docx
- UI设计灵感-图片分享应用呈现方式.docx
- UI设计灵感-如何将数据摆放得整整齐齐.docx
- UI设计灵感-有声读物APP界面设计.docx
- 重庆新速达物业服务集团股份凯里公司招聘笔试题库2024.pdf
- 浙江杭州千岛湖泰众肉类食品有限公司招聘笔试题库2024.pdf
- 陕西新华出版传媒集团新华书店分公司招聘笔试题库2024.pdf
- 宁夏海原县肉牛产业发展集团有限公司招聘笔试题库2024.pdf
- 浙江温岭市化工轻工建筑材料有限公司招聘笔试题库2024.pdf
- 中航飞机汉中航空零组件制造有限公司招聘笔试题库2024.pdf
- 山东海阳市海昇矿产资源开发有限公司招聘笔试题库2024.pdf
- 山东潍坊寿光市公共交通运输有限公司招聘笔试题库2024.pdf
- 内蒙古察右前旗农业投资开发有限公司招聘笔试题库2024.pdf
- 线上清明祭英烈活动策划.pptx
文档评论(0)