用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机制已经成为游戏设计中的核心工具。它不仅提升了游戏的可玩性,也锻炼了策划的思维和设计能力。


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




学习用Unity制作一个2d游戏,需要深入学习c#吗?
首先,答案并非绝对。制作一款2D游戏并不一定需要深入钻研C#。基础的语法知识就足以满足初学者的需求,尤其是对于侧重于美术设计和游戏逻辑的开发者来说。然而,这并不意味着C#的重要性可以忽视,因为Unity的强大功能和丰富的插件往往依赖于扎实的编程基础。对于零基础开发者:如果你从头开始,没有编程背景,...

unity做一个游戏要多久
一、unity做一个游戏要多久?具体要看是什么体量的游戏,如果是俄罗斯方块,估计两周左右;如果是做游戏demo要根据个人的情况,一般是一两个月左右,要看你对于unity的操作熟练程度以及制作demo的难易程度等方面考虑;如果是体量比较大的游戏,估计至少要半年以上。具体要包含角色设计、场景设计、道具设计、...

5分钟制作Unity过场动画 | Timeline
首先,打开你的Unity工程,Timeline系统默认已安装。如果你使用的是Unity 2019,可以通过菜单栏的“Windows” > “Package Manager”来更新Timeline到最新版本,以享受更多新功能。现在,让我们制作一个过场动画,场景中包含大门打开、角色跑出去并示威的动态效果。打开Scenes文件夹中的“Environment”场景,并创...

如何制作一个Unity2D闯关游戏(三)
上面写完了玩家血量系统,那么我们需要UI来将血量信息反馈给玩家,这时候我们需要再场景中创建一个Canvas,然后将Canvas按图示设置。然后将Game窗口的分辨率设置为Full HD(1920x1080),做一个最初版本的,后期再去适配其他分辨率。我们创建一个名为UIController的脚本,并将其挂载到Canvas上。首先,我们同...

如何制作一个Unity2D闯关游戏(五)
首先,我们添加了两行定义,分别是无敌时间和计数器,还需要一个SpriteRenderer,通过修改透明度来表示是否处于无敌状态。然后在DealDamage函数中,我们将无敌时间赋值给计数器。计数器部分的代码在Update函数中。在资源包"\\2D Platformer Assets\\Graphics\\Collectibles"路径下找到Collect_Effect素材,创建拾取特效...

如何用unity3d制作太阳转动的动画
1、首先打开unity3d 2、我们可以在在网上下载一下太阳、地球和月球的贴图,然后拖进unity3d的Textures文件夹中 3、然后创建一个Sphere物体,并改名为sun 4、然后为太阳创建一个材质命名为sun 5、然后为材质添加贴图,并将背景改为透明的 6、然后将sun材质赋给太阳 7、如果感觉不太真实可以为太阳添加一...

用Unity制作一个极具扩展性的顶视角射击游戏战斗系统
在这个Unity顶视角射击游戏的战斗系统中,我们打造了一套强大的可扩展框架,灵感源自经典游戏如《英雄联盟》的英雄技能设计。【代码地址:https:\/\/github.com\/kierstone\/Buff-In-TopDownShooter】,我们的开发基于Unity 2020.3.15f2c1,无需第三方插件,且美术资源全部免费。游戏设计的核心在于构建灵活的...

Unity怎么制作一个简单的3D场景?Unity制作简单的3D场景的方法_百度知 ...
Unity制作简单的3D场景的方法:创建一个空项目,进行常规设置后生成一个新项目。创建一个平面,点击Project面板中的Create旁的倒三角,选择材质(Material),创建一个材质并在属性框中对其颜色进行赋值。执行Window→AssetsStore命令进入Unity资源商店。登陆资源商店后在窗口右侧选择“3D模型”。在“3D模型”...

如何制作一个Unity2D闯关游戏(四)
在Unity2D闯关游戏制作的第四天,我们着重于提升玩家体验和游戏机制。首先,我们为Player添加了受击动画,通过在Animation窗口创建名为"Player_Hurt"的动画Clip,实现了受伤状态下的动画效果。接着,为了增强受伤反馈,我们在PlayerController.cs中定义了动画触发器,并在Update函数中设置了相应的控制逻辑,让...

如何使用unity3D制作游戏
不考虑Z轴.使用Untiy自身的2D模式,在2d模式中,层级视图中只有一个正交摄像机,场景视图选择的是2D模式。3、到最后到学习Unity3d的地形编辑、摄像机控制、Unity3d物理控制、使用C#编程语言对Unity3d编程、Unity3d粒子开发系统、Unity3d寻路系统、使用NGUI制作界面、跨平台发布作品。

关岭布依族苗族自治县17310127962: Unity3d怎么做创建工程与场景 -
季莉九味: 首先,在电脑中安装好unity引擎.只有安装了untiy引擎,才能进行以下的操作,关于安装步骤,在这里就不详细说了,网上有很多关于unity的安装说明. 安装好unity后,双击桌面上的Unity图标会弹出一个选择界面,如果你之前已经创建过项目...

关岭布依族苗族自治县17310127962: 如何用Unity创建霸气的地形 -
季莉九味: 打开Mudbox 在开始之前,我们需要设置一些变量. 调整FOV视角层的FOV参数来匹配你Unity上面的摄像机FOV值.这样就能得到一个好点的刻度调整以及均衡的视角. 将工具的雕刻值方向只设置Y.由于高度地图指示存储高度信息,我们只需...

关岭布依族苗族自治县17310127962: 如何使用Unity5.x创建新工程 -
季莉九味: 首先,打开Unity5.x版本的应用程序,启动过程中会显示如下图界面.2启动过后,会进入创建工程还是打开工程的界面,新建工程只需点击“New project”按钮,.3点击“New project”按钮后进入设置新工程的信息界面,首先,设置工程名,...

关岭布依族苗族自治县17310127962: 怎么使用Unity5.x打包与发布Unity3D游戏 -
季莉九味: 方法/步骤1 首先打开即将要发布的Unity3D工程,点击菜单栏上的“File”选项,在弹出来的下拉框中选择“Build Settings...”,如下图所示.2 弹 出一个“Build Setting”窗口,首先查看场景是否添加进去,如果没有点击“Add Current”进行...

关岭布依族苗族自治县17310127962: 如何用Unity GUI制作HUD -
季莉九味: 首先准备一下我们的3D空间 弄几个盒子让他们转起来.如果连这个都不知道怎么弄得同学我劝你还是关了这页吧,如果真的不会,还是愿意继续往下看,就看看下面三张图.然后,弄个UGUI的简单界面 弄三个Image,区别开来 然后Canvas 要...

关岭布依族苗族自治县17310127962: 制作一个简单的unity3d游戏要用什么软件 -
季莉九味: 之前在博思培训的时候,平时上课时候用的软件都是根据不同需求选择不同的软件的,都是正版的软件,基本上就是下面这几种 综合编辑: Unity具有层级式开发环境,具备视觉化编辑、详细的属性编辑器和动态游戏预览特性. 图形引擎: 使用的是Direct3D、OpenGL和自有的APIs. 资源导入:项目资源会被自动导入,并根据资源的改动而更新.Unity支持的主流三维建模软件有3ds max、Maya、Blender等. 着色器(shaders): 编写使用ShaderLab. 地形编辑器: Unity内建强大的地形编辑器,支持地形创建,树木,草等. 联网: Unity内置了强大多人联网游戏引擎.

关岭布依族苗族自治县17310127962: unity如何实现简单的交互
季莉九味: Unity3D的游戏引擎是和编辑器集成在一起的,所有它也是一个制作/开发平台.2、Unity3D是使用JavaScript、C#作为核心脚本语言来驱动事个游戏引擎.3、平台可以发布Exe执行文件或者打包为可供网页调用的一个独立的包文件.4、用Unity3D制作的工程具有高度的可移植性,可以在PS xbox360 Android iPhone mac等系统上运行.

关岭布依族苗族自治县17310127962: 如何使用Unity创造动态的2D水体效果 -
季莉九味:作者:Alex Rose 在本篇教程中,我们将使用简单的物理机制模拟一个动态的2D水体.我们将使用一个线性渲染器、网格渲染器,触发器以及粒子的混合体来创造这一水体效果,最终...

关岭布依族苗族自治县17310127962: unity使用函数建模,改变顶点颜色 -
季莉九味: render.material.maincolor 选中一个的时候,恢复上一个选中的颜色,然后修改选中项的颜色就可以了 因此还要一个变量来存一个当前选中物体追问:怎么判断选中?这个是关键追答:哦~ 那推荐你看 Camera.ScreenPointToRay 这个是从相机发一条射线进场景 和 Physics.RayCast这个是用射线判断碰撞 这有个博客写的应该不错

关岭布依族苗族自治县17310127962: 拿unity做2d游戏,靠不靠谱 -
季莉九味: 我觉得你需要去做,就是去着手开发1个简单的2d游戏,这样不懂的就会渐渐清晰了,想要先全面掌握然后再去做那很容易失败,而且那些东西你不用的时候也没必要去全部了解,有的东西你不用的时候根本不知道它是用来干吗的.举个简单的...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网