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 部分)
🍉🍉🍉 如果觉得这篇文对你有帮助的话,请点个赞👍、收藏⭐️下吧,非常感谢! 💕💕💕
【博主简介】:10年以上软件开发经验,精通C语言
、C++
、C#
、Java
等开发语言,开发过大型 Android 项目,现主要自主开发经营 休闲益智类小游戏。
【粉丝福利】:博主收藏了大量游戏开发资源和素材。这些资源经过博主多年整理沉淀,现筛选一批精品资源,分享给大家学习研究。
Unity打怪军团 广招天下勇士加入 Unity学习互助小组 有意进群的同学联系我,互3互推也请联系我…