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 部分)
本文分为两部分,介绍如何使用 Raycast 和 List 创建目标射击游戏。
您将在这部分(第 2 部分)中学到以下内容:
- Raycast
- Destroy
- 删除 List 的元素
- 如何使用 Tag
💯 使用 Raycast 获取有关对象的信息
光线是沿设定方向发射的光线,您可以获得有关照射到光线的对象的信息。
在 Variable 中,添加 GameObject 类型的变量 [Camera]
将场景中的 MainCamera 分配给 Value。
将 Camera 添加到 Graph Editor。
将以下内容添加到 Graph Editor:
- On Update
- Get Key Down
- If
- Get Mouse Position
- Screen Point To Ray
- RayCast
在 Key 0 (左键单击) 的 Key Down 键。
您必须滚动才能看到它,因此请查看 GIF。
按如下方式连接节点:
当摄像机组件和鼠标位置连接到左端口时,Screen Point To Ray 会从摄像机创建 Ray 信息,并对 Ray 信息进行光线投射
您可以通过连接来飞行 Ray。
检查您是否真的可以驾驶 Ray。
将以下节点添加到 Graph Editor:
- Debug Log (Message)
- Get Collider
- Get Game Object
按如下方式连接节点:
获取击中 Ray 的对象的 Collider,从中获取对象的信息,并在 Console 中显示目标的名称。
运行场景。 我能够显示我单击的目标的名称。
💯 删除检索到的对象
作为游戏的一个元素,首先要做的是创建一个地板。
单击 Hierarchy 中的 + 按钮,然后单击 3DObject→Plane 创建一个 Plane。
按如下方式设置 Plane 的 Transform。
注册新标签以确定它是 floor 还是 target。
Tag 是一个函数,允许您为对象分配一个类型,您可以确定对象的 tag 并更改流程。
单击项目中 [Target] 预制件的 Tag,然后单击 Add Tag。
单击 + 按钮,输入 Target 作为 新标签名称,然后单击 保存。
您现在已经注册了一个新的标签。
现在,预制件 [Target] 已被赋予一个名为 [Target] 的 Tag,可以在 Tag 上对其进行处理。
将以下节点添加到 Graph Editor:
- If ×2
- String Literal
- Get Tag
- Equal
- Destroy
- Aot List Remove
从 Variable 添加 [TargetList]。
按如下方式连接节点: 对于 String (字符串),输入 Target (目标)。
提供节点的描述。
- Raycast 右侧的中间端口确定 Ray 是否击中对象。 如果为 true,则为 True,如果不是,则为 False。 在这种情况下,如果 Ray 被击中,它将进入下一个进程。
- 如果获取游戏对象的 Tag,并且它是 [Target],则它将为 True,您将继续执行下一个过程。
- 将包含要删除的对象的列表连接到 Remove 左侧的中间端口。
底部端口用于连接要从列表中删除的对象。
如果不将其从列表中删除,则会收到错误,因此请在删除对象之前将其从列表中删除。
最后,将要擦除的对象连接到左下角的端口 Destroy 并删除它。
运行它。
现在它完成了。 以下是我在 Unity 可视化脚本简介的第 3 部分和第 4 部分中看到的内容,其中包含 score 函数,带评分功能。
如果您有空余的时间,不妨自己试一试!
📂 《初探 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互推也请联系我…