初探 Unity 可视化脚本 |(4)连击游戏:切换场景和显示分数

📂 Unity 开发资源汇总 | 插件 | 模型 | 源码

💓 欢迎访问 Unity 打怪升级大本营

Unity Visual Scripting是一个插件,它为Unity编辑器添加了一个可视化的脚本环境。使用Visual Scripting,开发者可以通过拖放节点和连接它们来创建游戏逻辑,这种方式被称为节点式编程。

在这里插入图片描述

华丽的分割线

📂 系列教程索引

📄(1)基础知识
📄(2)使用if语句、按键输入和协程显示 “Hello World“
📄(3)连击游戏:如何计算时间和分数
📄(4)连击游戏:切换场景和显示分数
📄(5)对象基本操作:使用 AddForce 和 TransForm
📄(6)使用 Collision 添加碰撞检测
📄(7)使用 Raycast 和 List 创建目标游戏(第 1 部分)
📄(8)使用 Raycast 和 List 创建目标游戏(第 2 部分)


这一次,我们将继续之前的连击游戏教程。

我们将添加切换场景和显示分数的功能。

在这里插入图片描述

💯 使用 SetText 显示文本

让我们将名为 [ScoreText] 和 [TimeText] 的变量添加到 GameController 的变量中。

选择 TMPro→Text Mesh Pro UGUI 作为类型。

对于 ScoreText,将 Score 从 Hierarchy 中的 Canvas 拖放到 Value 字段中。

对于 TimeText,对 Time from the Canvas 执行相同的操作。
在这里插入图片描述

将 ToString 节点添加到 EditorGraph。

此节点可以将 Int 或 Float 类型转换为 String 类型(文本)。

因此,在将数字显示为文本时,您通常会使用此节点。
在这里插入图片描述

要在数字之前添加文本,请将 Concat (Arg0, Arg1) 和 String Literal 节点添加到 GraphEditor。

您拥有的 Args 越多,您可以连接的句子就越多。
在这里插入图片描述
在这里插入图片描述

在字符串文本中输入文本 “[Score:]”。

Concat 将两个不同的字符串合并为一个。首先出现的文本放在顶部,后面出现的文本放在底部。

将 TextMeshPro UGUI:SetText 添加到 GraphEditor。
在这里插入图片描述

分数计算

让我们从实现分数计算功能开始。

按如下所示连接节点,继续前面的分数计算。

将 [ScoreText] 从 Variables 添加到 GraphEditor。将需要更改的 TextMeshPro UGUI 的 UI 连接到 SetText 的中间端口,并将要显示的文本连接到底部端口。
在这里插入图片描述
这样就完成了分数计算部分。

时间计算

接下来,我们将完成时间计算功能。按 Ctrl (Mac 上的 Cmd) + D 复制分数计算中使用的节点。

将复制的节点连接到以前的时间计算节点。

将 TimeText 从 Variables 添加到 Graph Editor。

将 SetText 的中间端口连接到 TimeText,并将前面的时间计算节点连接到 ToString。

将 String 的内容设置为 [Time:]。
在这里插入图片描述
这样就完成了时间计算功能。

在这里插入图片描述

💯 使用 SetActive 显示 Time-Up 屏幕

由于快速点击游戏的时间限制为 10 秒,因此让我们在时间结束时显示超时屏幕。

将布尔变量 [Stop] 添加到 Variables,并将 Value 设置为 False(未选中该复选框)。

将以下变量添加到 GraphEditor:Value(值)设置为 Canvas→TimeUp→ResultScore)的 TextMeshPro UGUI 类型变量 [ResultText]、GameObject 类型变量 [ResultUI] 和 [RestartButton]。

将 [ResultUI] 的值设置为 Canvas→TimeUp。

将 [RestartButton] 的值设置为 Canvas→TimeUp→RestartButton。
在这里插入图片描述

将之前创建的变量和 [Time] 添加到 GraphEditor。

将 If、Less、On Update 和 SetVariable 节点添加到 GraphEditor。
在这里插入图片描述

连接节点,如下所示。使用 Less 可以比较数字。

这一次,当剩余时间小于 0 时,Less 条件与 [Time] 对象的状态匹配,并且该过程从 If 的 True 分支运行,将布尔变量 [Stop] 设置为 True。
在这里插入图片描述

接下来,让我们使用 SetActive 显示超时屏幕。

SetActive 是将对象设置为活动或非活动状态的节点。

Active/inactive 是指对象的所有功能都处于启用状态还是处于禁用状态。

当对象处于非活动状态时,它会停止功能以在屏幕上显示它,使其不可见。

将 SetActive 添加到 EditorGraph。
在这里插入图片描述

继续连接节点。连接节点,如下所示。

将要设置为 active 的对象连接到 SetActive 的中间端口。

底部的 Bool 值允许您选择对象是活动还是非活动状态。

如果选中该复选框,则对象处于活动状态。如果未选中,则对象处于非活动状态。
在这里插入图片描述

这一次,我们想要激活 ResultUI,因此请选中该框。

接下来,我们来显示分数的结果。

Ctrl 键(在 Mac 上为 Cmd 键)+ D 键复制用于显示乐谱文本的节点。
在这里插入图片描述

Add Score from Variables(从变量添加分数)。

继续连接节点,如下所示。

这一次,由于我们要在 [ResultText] 中显示结果,因此请将 [ResultText] 连接到 SetText。
在这里插入图片描述
这样就完成了显示 timeup 屏幕的功能。

在这里插入图片描述

💯 使用 LoadScene 实现场景过渡

我们将通过在按下 RestartButton 时重新加载场景来启用重启功能。

添加 On Pointer Click 事件,类似于乐谱按钮。

将 LoadScene (Scene Name) 添加到 GraphEditor。
在这里插入图片描述

您可以通过在 Load Scene 的 SceneName 字段中输入要过渡到的场景的名称来过渡到另一个场景。

这一次,在 Load Scene 中输入 [ClickGameSample] 作为 SceneName。

连接节点,如下所示。
在这里插入图片描述

让我们运行它。
在这里插入图片描述

这样连击游戏就完成了。

初探Unity 可视化脚本系列文章索引:
📄(1)基础知识
📄(2)使用if语句、按键输入和协程显示 “Hello World“
📄(3)连击游戏:如何计算时间和分数
📄(4)连击游戏:切换场景和显示分数
📄(5)对象基本操作:使用 AddForce 和 TransForm
📄(6)使用 Collision 添加碰撞检测
📄(7)使用 Raycast 和 List 创建目标游戏(第 1 部分)
📄(8)使用 Raycast 和 List 创建目标游戏(第 2 部分)


TheEnd


跳跃

📂 Unity 开发资源汇总 | 插件 | 模型 | 源码

💓 欢迎访问 Unity 打怪升级大本营

🍉🍉🍉 如果觉得这篇文对你有帮助的话,请点个赞👍、收藏⭐️下吧,非常感谢! 💕💕💕
关注我

博主头像
【博主简介】:10年以上软件开发经验,精通 C语言C++C#Java 等开发语言,开发过大型 Android 项目,现主要自主开发经营 休闲益智类小游戏

【粉丝福利】:博主收藏了大量游戏开发资源和素材。这些资源经过博主多年整理沉淀,现筛选一批精品资源,分享给大家学习研究。

Unity打怪军团 广招天下勇士加入 Unity学习互助小组 有意进群的同学联系我,互3互推也请联系我…
联系我

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unity打怪升级

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值