初探Unity 可视化脚本 |(8)使用 Raycast 和 List 创建目标游戏(第 2 部分)

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


本文分为两部分,介绍如何使用 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
    屏幕点到光线
    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 (目标)。

提供节点的描述。

  1. Raycast 右侧的中间端口确定 Ray 是否击中对象。 如果为 true,则为 True,如果不是,则为 False。 在这种情况下,如果 Ray 被击中,它将进入下一个进程。
  2. 如果获取游戏对象的 Tag,并且它是 [Target],则它将为 True,您将继续执行下一个过程。
  3. 将包含要删除的对象的列表连接到 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 部分)


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、付费专栏及课程。

余额充值