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 部分)
💯 基于碰撞的命中检测
将空游戏对象添加到 Hierarchy 并将其命名为 [HitManager]。
将脚本机附加到 [HitManager],在名为 Macros 的文件夹中创建一个新图表,并将其保存在那里。
将图表命名为 [HitGraph]。
单击 Hierarchy 中的 + 按钮,然后从 3D 对象创建 Cube。将其命名为 [TopObj]。
将 [TopObj] 的 Position 设置为 (0, 5, 0),并从 AddComponent 附加一个刚体。
确保取消选中 Box Collider (箱体碰撞器) 中的 Is Trigger (是触发器) 选项。
接下来,将另一个 Cube 添加到 Hierarchy 并将其命名为 [UnderObj]。
将 [UnderObj] 的 Position 设置为 (0, 0, 0)。
准备工作已完成。
在 [HitManager] 中将游戏对象类型变量 [HitObj] 添加到 HitGraph 的变量中,并将其值设置为 TopObj。
将 On Collision Enter、Debug.Log 和 String Literal 添加到 Graph Editor,并从 Variables 中添加 [HitObj]。
此 Collider 将用于碰撞检测。
碰撞输入时此节点在具有碰撞体的对象发生碰撞时执行。On Collision Stay(碰撞时):当对象与碰撞体接触时,将持续执行此节点。在 Collision Exit 上此节点在具有 Colliders 的对象分离时执行。
左侧端口连接到碰撞中涉及的对象。
右侧端口包含有关碰撞体与之碰撞的对象的信息。
Contacts (接触) 端口存储碰撞点、法线和碰撞中涉及的两个碰撞器。
Impulse 端口存储碰撞的影响。
Relative Velocity 端口存储碰撞时另一个对象的相对速度。
Data port (数据端口) 包含有关其他对象的信息。
连接节点,如下所示。在这种情况下,当有物体与 HitObj 发生碰撞时,我们将执行 On Collision Enter。
运行程序。
当对象发生碰撞时,碰撞对象 [UnderObj] 的信息将显示在 Console 中。
💯 使用触发器进行命中检测
选中 [TopObj] 的 Box Collider 上的 Is Trigger 框。
通过选中 Is Trigger,对象将不再相互碰撞,而是相互穿过。
将 On Trigger Enter 添加到 Graph Editor。
Disconnect On Collision Enter 并连接节点,如下所示。
由于 Trigger 不涉及实际接触,因此没有碰撞点或撞击等信息。
节点名称 | 节点描述 |
---|---|
On Trigger Enter | 当具有 Colliders 的对象相互接触时,将执行此节点。 |
On Trigger Stay | 当与碰撞体接触的对象时,此节点将连续执行。 |
On Trigger Exit | 当具有 Colliders 的对象分离时,将执行此节点。 |
运行程序。
当对象相互接触时,被触摸对象 [UnderObj] 的信息将显示在 Console 中。
📂 《初探 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互推也请联系我…