UE5(射线检测)学习笔记

embedded/2024/9/20 8:59:37/ 标签: ue5, 学习, 笔记

这一篇会讲解射线检测点击事件、离开悬停、进入悬停事件的检测,以及关闭射线检测的事件,和射线检测蓝图的基础讲解。

创建一个简单的第三人称模板

创建一个射线检测的文件夹RadiationInspection,并且右键蓝图-场景组件-命名为BPC_RadiationInspection

将组件添加进入角色中,并将检测位置放置到角色的头部,将CameraBoom放置到头部,FollowCamera放到正对靠左一点创造越肩视角。

我们从我们的需求来查看到底需要怎么做,首先创建根据obj来进行线条追踪

通过获取世界位置连接start获取射线组件的位置

通过获取玩家控制器-获取瞄准旋转-旋转的向前的向量将向量相乘来设置并保存检测距离,随后将向量位置与组件位置相加即可的到最终的检测距离,这里的检测距离设置为300即可。

将我们可能会用到的功能进行提升变量并且分类上面三个归类设置,下三个归类调试。

然后在人物组件中进行调试,将Draw Debug Type设置为针对时长

检测效果

将找到内容折叠放到函数内,并设置为纯函数。

现在我们需要实现一些功能,分别是点击事件、悬停事件、离开悬停事件。我选择使用接口实现功能。右键蓝图创建一个接口。

创建三个事件

回到场景检测中,将HitActor设置为一个变量、复制创建LastHitActor两个用于射线检测保存状态值,将中断命中结果保存HitActor中,创建一个分支,为false则清空hitactor。

我们需要制作判断条件,第一步先判断hit actor是否有效,如果hit actor无效但last hit actor有效,则执行 Event Exit Hover事件离开悬停,并且清空 last hit actor 的值。

如果hit actor有效但last hit actor无效,则则执行 Event  Hover事件进入悬停,并且把hit actor 的值传递给 Last hit actor中。

如果两个变量都有效,则检测两个变量的值是否相等,如果相等就什么都不做,如果不相等,则先执行 Event Exit Hover,再执行 Event Hover 然后再将hit actor 的值保存到Last Hit Actor中,然后将检测部分作为一个函数,将所有线连接到返回函数即可。

创建一个自定义Click的事件,判断hit actor是否有效,然后调用Event Click。

通过tick 对检测做优化,将Tick Interval设为0.02,然后清空HIT actor 以及Last hit actor即可。

在第三人称人物上创建调试按键1,用于点击事件,在按键2上用于开启和关闭检测。

射线检测完成啦


http://www.ppmy.cn/embedded/34556.html

相关文章

RK3568 学习笔记 : 精简 u-boot env 默认复杂的多种引导启动设置

前言 环境: 正点原子 Atompi-CA1 RK3568 开发板、正点原子 DLRK3568 开发板,(一时脑热买了两块 RK3568 开发板),Atompi-CA1 RK3568 开发板比较小巧,利于一些前期的嵌入式 Linux 开发学习与实践。 RK3568 开…

【C】67 二进制求和

给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 #include <stdio.h> #include <stdlib.h> #include <string.h>char* addBinary(char* a, char* b) {if (a NULL || b NULL) {return NULL;}int len_a strlen(a);int len_b …

shamefully-hoist = true

在根目录下创建npm的配置文件.npmrc&#xff0c;增加配置项 shamefully-hoist true 是一个在 pnpm&#xff08;一个快速的、磁盘效率高的包管理器&#xff09;中使用的配置选项。pnpm 的主要特点之一是它使用硬链接和符号链接来避免复制相同的包到每个项目的 node_modules 文件…

数据结构===树

文章目录 概要概念相关概念 有哪些常用的树小结 概要 树是一种新的数据结构&#xff0c;不同于数组&#xff0c;链表。就像大自然中的树&#xff0c;看下这个数据结构&#xff0c;很有意思&#xff0c;有一个主干&#xff0c;然后还有很多树叉&#xff0c;即支干。不错&#xf…

uniapp 应用闪退、崩溃异常日志捕获插件(可对接网络上报)插件 Ba-Crash

应用闪退、崩溃异常日志捕获插件&#xff08;可对接网络上报&#xff09; Ba-Crash 简介&#xff08;下载地址&#xff09; Ba-Crash 是一款uniapp应用闪退、崩溃异常日志捕获插件&#xff0c;支持对接网络上报、设置提示等等&#xff0c;方便对一些远程问题、原生问题进行分…

影响外汇交易盈利的因素有哪些?

外汇交易就是通过汇率的差价来赚取相应的利润。在外汇交易中&#xff0c;投资者是否可以盈利&#xff0c;主要取决于是否正确的判断了市场趋势和行情。投资者在交易过程中受到主观和客观的因素影响&#xff0c;具体包含这些内容。 影响外汇交易盈利的因素有哪些&#xff1f; 1、…

老阳:跨境选品师怎么做更容易赚钱?

在跨境电商日益繁荣的今天&#xff0c;跨境选品师作为供应链上的重要一环&#xff0c;其职责与收入也备受关注。如何成为一名优秀的跨境选品师&#xff0c;并在这一岗位上赚得更多呢?以下是一些建议。 一、精准把握市场趋势 跨境选品师需要具备敏锐的市场洞察力&#xff0c;能…

富格林:了解黑幕套路正规方法预防

富格林悉知&#xff0c;存于市场中的黑幕亏损&#xff0c;不仅扰乱市场秩序&#xff0c;还使得不少的投资者受害亏损&#xff0c;面对诱导黑幕陷阱&#xff0c;一定要注意采取正规的方法防范避免受害亏损。投资者在进入市场之前&#xff0c;可从黑幕案件中了解黑幕亏损原因&…

AutoGroup是一种推荐场景的自动特征交互建模算法 采用了高效的分组算法 基于机器学习的选项,通过训练模型进行智能划分,确保结果的合理性。

AutoGroup AutoGroup是一种推荐场景的自动特征交互建模算法,其核心功能是基于预定义的规则或机器学习模型,自动将输入数据集分成多个组。这种分组功能可以应用于各种场景,如用户细分、市场分析、学术研究等。 在技术层面,AutoGroup采用了高效的分组算法,使得其能够在大规…

力扣题目101:对称二叉树

题目描述 给定一个二叉树&#xff0c;检查它是否是镜像对称的。 输入格式 root&#xff1a;二叉树的根节点。 输出格式 返回布尔值&#xff0c;表示树是否对称。 示例 示例 1 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;True 示例 2 输入&#xff1a;ro…

亚马逊Lazada速卖通卖家必备:利用自养号测评提升店铺排名与销量

Wish与亚马逊、速卖通、eBay等知名的跨境电商平台有所区别&#xff0c;它专注于移动端市场。对于许多初次涉足跨境电商领域的新手卖家而言&#xff0c;他们往往困惑于如何在Wish上起步&#xff0c;因为该平台的运营模式与其他平台有所不同。Wish是一款基于手机端App的跨境电商平…

帮助命令

1.man 原意&#xff1a;manual 所在路径&#xff1a;/usr/bin/man 执行权限&#xff1a;所有用户 语法&#xff1a;man [命令或配置文件] 功能描述&#xff1a;获得帮助信息 例&#xff1a;$ man ls 查看ls命令的帮助信息 查看命令的帮助主要是看这个命令是干什么用的&am…

Boolean 类型转换

为了更贴近原生 boolean attributes 的行为&#xff0c;声明为 Boolean 类型的 props 有特别的类型转换规则。以带有如下声明的 <MyComponent> 组件为例&#xff1a; defineProps({disabled: Boolean }) 该组件可以被这样使用 <!-- 等同于传入 :disabled"true…

视频的二维码是怎么做的?快速实现扫码看视频的方法

视频的二维码现在有很多的应用场景&#xff0c;用这种方式来分享视频能够实现视频的快速传播&#xff0c;现在用户大多习惯通过扫码的方式来获取信息&#xff0c;二维码可以提供更好的用户体验。 以二维码为媒介来存储视频时&#xff0c;可以使用视频二维码生成器来快速制作相…

Py深度学习基础|python中类的特殊方法-__getitem__()

1.基本介绍 在Python中&#xff0c;__getitem__是一个特殊方法&#xff08;也常被称为“魔术方法”&#xff0c;即双下划线方法&#xff09;&#xff0c;它使一个类的实例对象能够支持通过键来获取其内部数据&#xff0c;类似于操作列表、元组或字典的方式。当你尝试使用方括号…

递归、搜索与回溯算法:记忆化搜索

例题一 解法&#xff08;暴搜 -> 记忆化搜索 -> 动态规划&#xff09;&#xff1a; 算法思路&#xff1a; 暴搜&#xff1a; a. 递归含义&#xff1a;给 dfs ⼀个使命&#xff0c;给他⼀个数 n &#xff0c;返回第 n 个斐波那契数的值&#xff1b; b. 函数体&…

VScode添加c/c++头文件路径

1.设置工作区include path方法&#xff1a; 命令面板 -> 输入c/c 修改配置文件&#xff0c;添加路径&#xff1a; 2.全局路径&#xff1a; 设置 - > 搜索include path

Noir Dark Mode for Safari:夜间浏览的舒适伴侣

Noir Dark Mode for Safari是一款实用的浏览器插件&#xff0c;它使夜间浏览网页变得更加轻松和舒适。通过自动为访问的每个网站添加暗色模式&#xff0c;Noir减少了用户在暗光环境下浏览网页时可能产生的眼睛疲劳。 Noir的自定义功能允许用户根据自己的喜好调整暗色模式的设置…

力扣每日一题112:路径总和

题目 简单 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶子节点 是…

【MySQL】第一次作业

【MySQL】第一次作业 1、在官网下载安装包2、解压安装包&#xff0c;创建一个dev_soft文件夹&#xff0c;解压到里面。3、创建一个数据库db_classes4、创建一行表db_hero5、将四大名著中的常见人物插入这个英雄表 写一篇博客&#xff0c;在window系统安装MySQL将本机的MySQL一定…