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.mzph.cn/web/7071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

语音识别简介

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

Pycharm debug 运行报错 (RuntimeError: cannot release un-acquired lock)

问题描述: 最近再跑一个 flask应用,Pycharm 运行没问题,debug断点启动时报错 如下: 解决方案: 在环境变量中增加 GEVENT_SUPPORTTrue 启动成功!

[激光原理与应用-92]:振镜的光路图原理

目录 一、振镜的光路 二、振镜的工作原理 2.1 概述 2.2 焊接头 2.3 准直聚焦头-直吹头 2.4 准直聚焦头分类——按应用分 2.4.1 准直聚焦头分类——功能分类 2.4.2 准直聚焦头镜片 2.4.3 振镜焊接头 2.4.4 振镜分类: 2.4.5 动态聚焦系统演示(素…

MQ如何保证可靠性

📝个人主页:五敷有你 🔥系列专栏:MQ ⛺️稳中求进,晒太阳 消息到达MQ以后,如果MQ不能及时保存,也会导致消息丢失,所以MQ的可靠性也非常重要。 2.数据持久化 为了提高性能&a…

Typescript语法二

继承 继承是⾯向对象编程中的重要机制,允许⼀个类(⼦类或派⽣类)继承另⼀个类(⽗类或基类)的属性和⽅法。⼦类可以直接使⽤⽗类的特性,并根据需要添加新的特性或覆盖现有的特性。这种机制赋予⾯向对象程序良…

getchar和putchar函数详解

getchar和putchar函数详解 1.getchar函数1.1函数概述1.2函数返回值1.3函数注意事项1.4函数的使用 2.putchar函数2.1函数概述2.2函数返回值2.3函数使用实例 1.getchar函数 1.1函数概述 从一个流中读取一个字符,或者从标准输入中获得一个字符 函数原型: …

Sa-Token框架入门使用

说明:Sa-Token是一个轻量级java权限认证框架(官方语),所谓权限认证框架,就是登录框架,像Shiro、Spring Security。本文介绍Sa-Token框架的入门使用,基于Spring Boot环境。 准备工作 首先&…

滑动窗口 | 1652. 拆炸弹 |LeetCode

文章目录 题目介绍暴力(可以过力扣竟然。不愧是简单题):滑动窗口 祝你天天开心 题目介绍 你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k 。 为了获得正确的密码,你需要替换掉每…

代码随想录第四十五天|爬楼梯、零钱兑换、完全平方数

题目链接:57. 爬楼梯(第八期模拟笔试) 代码如下: 题目链接:. - 力扣(LeetCode) 代码如下: 题目链接:. - 力扣(LeetCode) 代码如下:…

Vue阶段练习:初始化渲染、获取焦点、记账清单

阶段练习主要承接Vue 生命周期-CSDN博客 ,学习完该部分内容后,进行自我检测,每个练习主要分为效果显示、需求分析、静态代码、完整代码、总结 四个部分,效果显示和准备代码已给出,我们需要完成“完整代码”部分。 练习…

关系型数据库MySql分库分表带来的问题以及解决方案

水平分表 水平分表是什么? 将一张表横向拆分为多张表,拆分的表,依然在同一个库中。 例如,user表有400w条记录,将user表拆分成4张表,每张表100w条记录。拆分后的表名,分别叫做user_0、user1、u…

基于 Linux 自建怀旧游戏之 - 80 款 H5 精品小游戏合集

1)简介 最近又找到了一款宝藏游戏资源分享给大家,包含 80 款 H5 精品小游戏,都是非常有趣味耐玩的游戏,比如 植物大战僵尸、捕鱼达人、贪吃蛇、俄罗斯方块、斗地主、坦克大战、双人五子棋、中国象棋 等等超级好玩的 H5 小游戏&…

CUDA调整指令级原语

在GPU上运行的运算密集型应用程序,处理器的计算吞吐量可以用它在一段时间内执行操作的数量来衡量。因为GPU有很多SIMT指令和计算核心,所以其峰值计算吞吐量通常比其他的处理器高。 对应用程序的吞吐量和正确性进行优化时,理解不同低级原语的…

常见通信协议

1、串口:(串行异步全双工,先发低位) 因为是异步的,所以没有时钟线,因为是全双工,所以有两条数据传输线,实现数据的收发。 帧格式 起始位1位,数据位8位,校验…

【教程】极简Python接入免费语音识别API

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,请不吝给个[点赞、收藏、关注]哦~ 安装库: pip install SpeechRecognition 使用方法: import speech_recognition as srr sr.Recognizer() harvard sr…

LeetCode 面试经典150题 228.汇总区间

题目: 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区…

spring高级篇(九)

boot的执行流程分为构造SpringApplication对象、调用run方法两部分 1、Spring Boot 执行流程-构造 通常我们会在SpringBoot的主启动类中写以下的代码: 参数一是当前类的字节码,参数二是main的args参数。 public class StartApplication {public static…

【Linux IO基础】缓冲区

概念 缓冲区的主要作用是提高效率 --- 提高使用者的效率,因为有缓冲区的存在,我们可以积累一部分再统一发送,提高发送的效率。 刷新方式 缓冲区因为能够暂存数据,必定要有一定的刷新方式: 一般策略: 无…

Flask应用的部署和使用,以照片分割为例。

任务是本地上传一张照片,在服务器端处理后,下载到本地。 服务器端已经封装好了相关的程序通过以下语句调用 from amg_test import main from test import test main() test() 首先要在虚拟环境中安装flask pip install Flask 文件组织架构 your_pro…

基于Spring Boot的民宿管理平台设计与实现

基于Spring Boot的民宿管理平台设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 前台首页功能界面图,在系统首页可以查看首页…