初探Unity 可视化脚本 |(6)使用 Collision 添加碰撞检测

📂 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 部分)


在这里插入图片描述

💯 基于碰撞的命中检测

将空游戏对象添加到 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 部分)


TheEnd


跳跃

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Unity打怪升级

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

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

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

打赏作者

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

抵扣说明:

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

余额充值