限时回归!!!3D版《空洞骑士》!!!

空洞骑士是一款基于横板平台跳跃的传统风格2D动作冒险游戏。庞大的游戏世界交错相通,玩家控制小虫子去探索幽深黑暗的洞穴,成为了一代人茶余饭后的惦念,深受广大玩家们的喜爱。

这类平台跳跃游戏一般是游戏开发初学者以及独立游戏开发者们比较青睐的类型,也是诸多开发者们开发游戏Demo的第一站。

请添加图片描述
为了让更多的游戏开发者们能够做出自己心中想要的平台跳跃游戏Demo,今天我们讲解如何使用Unity3D引擎制作此类游戏。

我们需要掌握以下三项基本的游戏开发技术。

1、角色操控以及手感优化的技术要点

2、角色的四方向射线检测的技术要点

3、各种平台的技术要点
在这里插入图片描述
一、角色操控以及手感优化的技术要点

这里我们涉及到引擎如何控制一个游戏物体完成移动的知识。

对于Unity3D引擎来说,移动一个物体的核心原理是每一帧更新物体在3D坐标系中的位置。

对于横板游戏来说,我们关注的是水平方向和垂直方向的移动,而对于Z轴纵深方向的移动,除了某些特殊情况外,角色部分基本不需要考虑。
请添加图片描述
而对于移动而言,我们可以使用基本的平移方法Translate来完成移动,也可以通过更新Transform、Postion来完成移动。同样可以通过对角色对象添加刚体组件Rigidbody,然后通过设置刚体组件的velocity属性来完成移动。

当然你也可以通过使用Unity引擎提供的角色控制器CharacterController 完成对角色移动的控制。还有一些提供移动方法的插件这里就不做过多的赘述。

面对众多的移动选择,该选择哪一种成了初学者们最容易头疼的地方。由于刚体和角色控制器都自带了碰撞检测,所以很多同学会选择这两者之一作为2D平台跳跃移动的方式。

许多游戏开发者在游戏开发到中后期时往往会遇到很多棘手的问题。开发者们为了维护和修改这些问题往往付出了非常巨大的代价和精力,却始终没有办法从根本解决问题。这就导致了很多游戏最终无法开发完成,开发者为此也付出了高昂的学习成本。

请添加图片描述
所以这里我们推荐大家使用最基本的Translate方法来完成移动。因为它足够简单,没有过多的牵连,可以为开发者们提供最大程度的可操作空间。

同时,因为刚体组件和角色控制器会涉及到一定的引擎物理,而平台跳跃游戏中产生的物理情况,大部分并非模拟现实的物理情况,所以我们需要自己来为它开发相关的物理部分。

这时使用引擎自带的物理反而会产生很多的不可控问题,导致意外情况的增加。因为Translate方法本身没有自带碰撞检测,所以我们还需要提供一些可维护性以及可控制性强的物理检测方法。

来看看下图中的方法:
请添加图片描述
这里我们使用射线检测的方式来完成,这个方法包括但不限于撞墙检测、脚下地面检测、头顶碰撞检测、穿越平台检测、爬坡检测等。

这里使用角色控制器的同学可能遇到过类似跳跃失败、爬坡控制性不强的问题,出现这个问题的具体原因上面已经做过阐述。
请添加图片描述
二、角色的四方向射线检测的技术要点

这里主要的技术要点在于为了达到精确检测和掌控力更强的控制碰撞。平台跳跃类游戏一般不会使用Unity3D自带的刚体及碰撞器来完成各项碰撞检测,取而代之的是使用基础射线。

为了能够检测角色脚下、头顶、前后方是否碰撞各类平台以及怪物、道具等,我们需要搭建一个健壮的射线检测基础架构。这里需要注意的技术要点有:射线检测的数量、检测的时机、检测的层、检测的起点、方向以及长度等。可以帮助我们完成游戏中需要的各项检测,同时能够达到非常精确的控制以及按需检测等多项好处,是同学对于平台类游戏碰撞检测的必学核心技术点之一。
请添加图片描述三、各种平台的技术要点

最后我们说说游戏中各项平台的功能。横板跳跃游戏中,平台分为基础平台、可向下穿越平台、可移动平台等类型;又可以组合出可移动基础平台、可移动向下穿越平台、不可移动基础平台和不可移动向下穿越平台等多种类型的平台。

在要点二中我们可以知道,对于角色检测平台,一定离不开射线的辅助。而平台的制作,主要是基于平台的位置和位移,来精确的修正角色的位置和位移。比如在落到平台时,角色需要精确的修正Y轴坐标为平台接触点坐标,而跳起来顶到头上的平台时,需要修正坐标为接触点坐标减去角色碰撞器高度等。

对于移动平台,初学者容易进入一个误区,就是让角色成为平台的子物体以帮助角色在平台移动。而这样操作的结果是丧失了精确性,容易产生更多bug,并且不符合我们的框架设计原理。

正确的做法是通过每帧修复角色的位移,让角色位置能够叠加平台的移动方向的速度产生的位移以及角色自身控制产生的位移,这样才能够在统一的框架下完成精确的处理。

关于2D平台跳跃游戏的技术点我们就分析到这里,为了让喜欢游戏开发的小伙伴能尽早开发出自己的《空洞骑士》类游戏Demo,我们开设了《3D版空洞骑士》4天训练营,让大家从0做出一款游戏Demo。扫描下方二维码回复[空洞骑士]即可免费参与
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想通过Unity来仿制空洞骑士,你可以参考以下的方法和步骤: 1. 首先,你需要购买并下载空洞骑士游戏。你可以在Steam平台上购买。 2. 在开始仿制之前,你要确保你对Unity引擎有一定的了解和熟悉。你可以通过学习相关的教程和文档来提高你的技能。 3. 了解空洞骑士的基本机制和游戏设计。你可以通过玩游戏、查看游戏截图和视频来收集相关信息。引用中提到,游戏包括4个关卡和一个boss,而且使用了sqlite数据库来保存游戏数据。 4. 在Unity中创建你的项目,并设置好合适的场景和资源。 5. 使用Unity的编程功能,通过手动模拟空洞骑士的物理特性来实现玩家的移动。引用提到,空洞骑士并没有使用Unity的物理引擎,而是手动模拟了相应的物理特性。你可以使用刚体组件、碰撞器和自定义脚本来实现这一点。 6. 创建关卡并添加游戏元素,包括地图、敌人、物品和其他交互元素。确保你的关卡设计和游戏机制与空洞骑士相似。 7. 使用Unity的数据库功能,比如SQLite,来保存和管理游戏数据。这样可以实现游戏进度的保存和玩家数据的存储。 8. 进行测试和调试,确保游戏的运行和玩法与空洞骑士相似。 9. 不断优化和改进你的游戏,添加额外的功能和特性,以增加游戏的乐趣和吸引力。 通过以上的方法和步骤,你可以开始使用Unity来仿制空洞骑士。记得在过程中保持创造力和耐心,不断学习和提高自己的技能。祝你好运!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [用Unity重现《空洞骑士》的苦痛之路(1)——人物控制篇](https://blog.csdn.net/m0_69824302/article/details/127821393)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [unity横板模仿空洞骑士的冒险战斗游戏,特别含有空洞骑士部分素材哦](https://download.csdn.net/download/m0_54971297/82211432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值