用Unity制作一个极具扩展性的顶视角射击游戏战斗系统

如题所述

在这个Unity顶视角射击游戏的战斗系统中,我们打造了一套强大的可扩展框架,灵感源自经典游戏如《英雄联盟》的英雄技能设计。【代码地址:https://github.com/kierstone/Buff-In-TopDownShooter】,我们的开发基于Unity 2020.3.15f2c1,无需第三方插件,且美术资源全部免费。游戏设计的核心在于构建灵活的系统,让策划能够轻松添加新内容,如英雄技能和各种动态效果。


顶视角射击游戏的扩展性需求十分关键,我们通过回顾12年前的“Buff机制”,解决了这一挑战,提供了一套实用的游戏设计指南。这个机制的核心在于角色的技能和buff,它们通过Model(静态数据)和GameObject(如BulletObj)的区分,让数据和游戏行为紧密结合。


Unity中的设计模式虽然与ECS类似,但更注重现实世界的理解,便于玩家和策划人员进行设计。游戏逻辑中的Update与FixedUpdate函数,分别对应渲染和逻辑世界,理解它们的差异对于优化游戏性能至关重要。


战斗系统由地图、角色、子弹、区域效果(AoE)等组成,角色拥有技能和可应用的buff。例如,角色的技能等级是动态的GameObject属性,而非Model,这体现了游戏玩法的多样性。Info则作为业务逻辑的载体,如DamageInfo,确保伤害处理的正确性和一致性。


在设计中,我们特别强调了DamageInfo的角色,它按顺序执行伤害处理流程,解决暴击与命中的设计难题。通过attacker、defender和tags,清晰地定义了伤害类型和可能的反弹伤害逻辑。通过策划脚本控制的AddBuffInfo,可以在特定事件(如Hit事件)中添加buff,确保逻辑的灵活性。


角色GameObject(CharacterObj)作为预制件,包含模型容器和血条,以及Unity特有的GameObject管理机制,如CharacterObj的UnitBindManager和UnitMove,分别负责角色绑定和移动逻辑。其中,UnitMove的逻辑与ARPG和Moba游戏有所不同,而UnitRotate则影响背刺判定。


战斗的核心逻辑集中在ChaState,它是CharacterObj的命令中心,管理角色状态、buff和动作。ChaState接口由策划脚本控制,允许他们定义buff的添加规则,如在特定事件时添加新的Buff效果。


通过一系列简化后的关键元素,如分身技能、AI控制、对象移除和时间轴系统,我们展示了如何利用这些机制来构建动态的游戏体验。特别是技能的管理,比如火球术的释放流程,通过Timeline来控制,既保留了复杂性,又易于扩展。


在顶视射击游戏的buff系统中,策划的创新和游戏逻辑的清晰度至关重要。从《魔兽世界》的早期尝试,到如今的复杂多变,buff机制已经成为游戏设计中的核心工具。它不仅提升了游戏的可玩性,也锻炼了策划的思维和设计能力。


在游戏设计过程中,我们遵循的原则是:易于扩展、鼓励创新、逻辑与设计分离。看似简单的火球术,背后隐藏着深思熟虑的逻辑设计,这就是游戏开发的魅力所在。

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜