Unity 游戏中的战斗系统的架构与设计

105 篇文章 25 订阅
45 篇文章 12 订阅
本文介绍了Unity游戏开发中战斗系统的三层架构设计:功能组件层、行为策略层和操作决策层。功能组件层包括角色移动、动画状态机等组件,提供基础功能;行为策略层关注角色的战斗策略,如攻击、寻路;操作决策层负责判断何时执行何种策略。通过这样的设计,战斗系统的复杂性得以简化,便于重用和扩展。
摘要由CSDN通过智能技术生成

很多刚开始做游戏的小伙伴感觉战斗系统是一个比较麻烦的部分,不知道如何设计,角色很多,职业很多,技能有好几种,还有装备相关的东西。今天这篇文章详细的讲解一个战斗系统应该如何架构与设计,你看完并搞懂它,战斗系统的架构与设计对你来说再也没有难度了。首先我们先来上一张架构图:

这里有个unity学习交流小组 大家可以一起来学习交流

如图,我们把整个的战斗系统分成了3个层次,分别为功能组件层, 策略层, 行为决策层。

我们的战斗系统将围绕这这3个层次参考设计,接下来我们具体的分析每一层是做什么的,哪些代码应该放到哪一层,如何实现。

1: 功能组件层

功能组件层顾名思义就是实现某个具体功能的组件,如

角色移动组件: 控制角色的移动与行走;

动画状态机组件: 控制角色的状态与动画切换;

攻击伤害计算组件: 提供机制,按照技能的特性来提供计算伤害的时机与结束状态重置的时机,不提供具体的伤害计算的方法,只提供计算的机制;

寻路导航组件: 控制角色的寻路与行走;

……

这个层次的组件代码在不同游戏里面大部分都可以重用。总结一个点就是凡是战斗中属于角色的功能组件的就实现在这个层次,同时这个层次只提供机制,不提供具体的策略。什么叫提供机制不提供策略,举个具体的例子,比如导航组件,设计的时候就只要按照路径去走就可以了,具体路径是哪些,怎么来。它不关心。又如动画状态机组件,只提供功能,根据用户给的状态来播放正确的动画就可以了,不大去关心什么时候用什么状态,这个就是功能层的只提供机制不提供具体策略。

2: 行为策略层

看战斗的行为策略层如何设计之前先看下战斗单元,常见的战斗单元有:玩家, Boss, NPC,小怪等。每个战斗单元都会有自己的战斗策略,比如,攻击,行走等。在这一层,我们主要实现怪物角色的具体的一个战斗的策略,比如玩家具体实现攻击,技能的具体策略。比如敌人小怪,提供搜索玩家的策略(具体如何搜索),提供发起攻击的策略(具体如何攻击,每种攻击一种策略,并封装成接口),提供发起追击的策略(具体如何追击,封装成接口)。

我们可以把战斗单元做成一个基类,实现一些通用的策略,比如HP生命值, Attack攻击力, Define防御力, 数据配置表加载,防御力攻击力计算等。然后具体的战斗单元我们继承自这个基类,比如玩家Player, 怪物Boss, 小怪Monest等。这些战斗单元实现具体的各个策略,每个策略的数据就来自策划提供的数据配置表。

3 操作决策层

什么时候要追击,什么时候要攻击,什么时候放技能,这个就属于行为操作决策。一般常用的操作决策有玩家UI操作(单机), 网络事件操作, AI操作决策(单机或服务端上的AI决策),固定操作序列等。我们把决定用哪些策略来战斗放到到操作决策层。比如玩家有一个UI攻击操作,UI操作层就会调用玩家决策层接口来实现这个攻击,决策层,就会去找对应的目标,调用功能组件发起攻击。AI操作决策层,根据环境决定做什么,得到具体的操作,然后调用策略层的接口来实行具体的功能。

今天给大家分享了战斗的三层设计,我结合这个设计也做了一个视频教程《Unity如何架构设计战斗系统》与战斗代码demo,可以进小组领取 方便大家具体学习与实践。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值