在Unity实现游戏命令模式

本文介绍了如何在Unity中利用命令模式实现游戏的回放、撤销和重做功能,特别是在策略游戏中增强游戏体验。通过创建BotCommand类,封装Bot对象的Move和Shoot方法,实现命令的执行、存储和撤销。文中详细讲解了命令模式的实现过程,并提供了挑战性的迷宫游戏例子,帮助读者掌握这一设计模式。
摘要由CSDN通过智能技术生成

本文介绍如何在Unity通过使用命令模式实现回放功能,撤销功能和重做功能,你可以使用该方法来强化自己的策略类游戏。

原博地址:https://www.raywenderlich.com/3067863-implementing-the-command-pattern-in-unity

原文链接:https://connect.unity.com/p/zai-unityshi-xian-you-xi-ming-ling-mo-shi?app=true

作者:Najmm Shora 预计阅读时间:20分钟

Unity版本:Unity 2019.1

你是否想知道《超级食肉男孩》(Super Meat Boy)等游戏是如何实现回放功能的?其中一种方法是执行和玩家完全相同的输入操作,这样意味着输入需要保存起来。命令模式可以实现该功能,以及更多其它功能。

如果希望在策略游戏里实现撤销和重做功能,命令模式也非常实用。

image

在本教程中,我们会使用C#实现命令模式,然后使用命令模式来遍历3D迷宫中的机器人(bot, 文中bot,机器人交替出现,请整理一下)角色。在这个过程中,我们会学习到以下内容:

  • 命令模式的基础知识。

  • 实现命令模式的方法。

  • 对输入命令进行排队,推迟这些命令的执行。

  • 在执行前,撤销和重做发出的命令。

备注:阅读本文需要熟悉Unity的使用,并且拥有对C#有一定的了解。本教程使用Unity 2019.1和C# 7。

准备过程

跟随本教程进行学习时,请下载文末链接的项目素材文件。解压文件,在Unity中打开Starter项目。

打开RW/Scenes文件夹,打开Main场景。我们会注意到,场景中有一个迷宫和机器人,旁边有终端UI显示指令。地面上有网格,当玩家在迷宫中移动机器人时,这些网格有助于玩家进行观察。

image

单击Play按钮后,我们发现指令不会进行工作,这是因为我们还没添加该功能,我们将在教程中添加功能。 场景中最有趣的部分是Bot游戏对象,在层级窗口单击选中该对象。

image

在检视窗口查看该对象,我们看到它带有Bot组件。我们会在发出输入命令时使用该组件。
004.png

了解Bot对象的逻辑

打开RW/Scripts文件夹,在代码编辑器打开Bot脚本。我们不必了解Bot脚本会做什么,但要注意其中的Move方法和Shoot方法。我们也不用知道二个方法中的代码作用,但需要了解如何使用二个方法。

我们发现,Move方法会接收一个类型为CardinalDirection的输入参数。CardinalDirection是一个枚举,类型为CardinalDirection的枚举对象可以为Up,Down,Right或Left。根据所选的CardinalDirection不同,机器人会在网格上朝着对应方向移动一个网格。

image

Shoot方法可以让机器人发射炮弹,摧毁黄色的墙体,但对其它墙体毫无作用。

image

现在查看ResetToLastCheckpoint方法,为了了解它的功能,我们要观察迷宫。在迷宫中,有一些点被称为检查点。为了通过迷宫,机器人应该到达绿色检查点。

007.png

在机器人穿过新检查点时,该点会成为机器人的最后检查点。ResetToLastCheckpoint方法会重置机器人的位置到最后检查点。

image

我们目前无法使用这些方法,但我们很快就会用到了。首先&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值