Unity官方教程《Tanks》学习笔记(五)

本系列文章是根据官方视频教程而写下的学习笔记,原官方视频教程网址:https://unity3d.com/cn/learn/tutorials/s/tanks-tutorial

系列其他笔记传送门
Unity官方教程《Tanks》学习笔记(一)
Unity官方教程《Tanks》学习笔记(二)
Unity官方教程《Tanks》学习笔记(三)
Unity官方教程《Tanks》学习笔记(四)

管理

本小节的目标是创建一个管理脚本,同一管理该游戏场景中的两辆坦克,并且添加输赢的游戏逻辑,让游戏有始有终。
在上一节中,我们把根目录下的Tank删除了,我们需要在游戏的过程中动态生成两个Tank,而不是一开始就设置好。因此我们需要两个Tank的出生点。在Hierarchy下新建两个空对象,分别命名为SpawnPoint1和SpawnPoion2。
选中SpawnPoint1,作以下修改:
SpawnPoint1
选中SpawnPoint2,作以下修改:
SpawnPoint2

接着,在Hierarchy层级下,新建一个Canvas(GameObject——>UI——>Canvas),重命名为MessageCanvas。接着,在Scene View中点击2D模式,如下图所示:
视图2D模式

选中MessageCanvas,右键新建一个Text,让其成为MessageCanvas的子对象,选中Text对象,我们来修改它的数据如下:
Text
下一步,在Text内,新建一个组件:Shadow,为Text添加阴影效果:
Shadow
接着,取消刚才设置的2D视图模式。

选中CameraRig,点击Edit——>Frame Selected,在CameraRig的脚本组件那里,我们之前设置了m_Targets为已经被删除的Tank,所以我们要把该数组的长度设置为0,并按回车确认。再打开CameraControl脚本来编辑:这里只需要把之前提及的[HideInInspector]的注释去掉即可,也就是说隐藏掉该公共变量。

下面就来创建我们的游戏管理者,在Hierarchy层级创建一个空对象,命名为GameManager,在/Scripts/Managers文件夹内找到GameManager脚本,把它拖拽到GameManager对象内。我们先初始化它的几个公共变量:
初始化变量

接下来先整理一下我们的游戏逻辑。

1、首先,我们先从游戏的整个流程来梳理
游戏逻辑1
从官方的教程中,我们可以知道,Game Manager充当一个管理全局的角色,首先它初始化的过程中,会在出生点生成两个坦克供玩家控制,并且把摄像机的目标设置为该两辆坦克,那么这样就完成了初始化。接着就是正常的游戏流程,那么这里就涉及到了游戏的输赢判定,这里使用的是分回合的形式,每一回合获胜则获得一分,经过若干回合后,总分最高者获胜。每一回合结束之后,会回到初始化过程,重新生成坦克。具体到每一个回合上,坦克的控制就交给Tank Manager来控制。
游戏逻辑2

从上图可以看出,Tank Manager控制了坦克的移动和射击的脚本以及UI的展示。

2、我们从游戏者的角度来梳理:
游戏逻辑3

GameManager可以分为若干个Tank Manager,Game Manager负责管理每个Tank Manager,而具体的游戏坦克的行为则交给每一个Tank Manager负责。这里就实现了解耦的作用,假如以后需要拓展游戏功能,比如增加多个玩家,那么我们只需要修改Game Manager就可以了。

接着,我们打开GameManager脚本,对它进行完善与编辑:

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值