虚幻学习笔记14—重叠和碰撞事件

一、前言

        在开发应用当中两个物体的重叠和碰撞事件会经常用到,在虚幻中哲两个有很大的区别,在官方文档碰撞概述其实已经讲了怎样发生碰撞和重叠,但是还是遗漏不少注意事项合细节,主要文档写的太粗糙了,这也让我在使用的时候产生了很多困惑,尤其是碰撞。

        本文使用的虚幻引擎版本为5.2.1。

二、实现

        首先创建两个蓝图,分别添加Cube和Plane组件,Cube作为主动接触的一方,Plane作为被动的一方。

2.1、实现重叠事件

1、要发生重叠最重要的是两个物体都要设置“生成重叠事件”和选择带“查询”的碰撞已启用

        如2.1.1所示,将两个蓝图的这个都勾上,这点和碰撞是最大的不同,两个物体都要在碰撞预设-》碰撞已启用中设置带有”查询“的选项,如“纯查询”、“已启用碰撞(查询和物理)”、”查询和探测”。这两个物体可以在上述三种带查询中任意选择,可以不用两个完全一样,如Cube选择“纯查询”,Plane可以在“纯查询”、“已启用碰撞(查询和物理)”、”查询和探测”任意选择一个都会发生重叠事件。

 Cube的设置
Plane的设置
图2.1.1

2、检测响应中其中一个设置了和对方的重叠,另外一个需要设置和该物体的非忽略即可

        两个物体只要有一个设置了和另外物体的重叠,另外一个物体除非设置忽略,那么可以触发重叠事件,并且两个物体都能触发事件处理。

        如2.1.2所示为两个物体的设置,其中Cube的对象类型为WolrdDynamic、Plane为Physics Body。Cube的检测响应中针对PhysicsBody设置为重叠,而Plane中设置检测想要中针对WolrdDynamic的类型除了忽略可以设置为重叠和阻挡。

Cube设置和Plane重叠
Plane设置和Cube的重叠或阻挡
图2.1.2

3、两个物体都可以接受到重叠事件,但是执行的前后顺序会和谁撞谁有关

        在处理重叠事件中,两个物体都可以创建“组件开始重叠时”的事件并进行处理,如图2.1.3所示分别在两个物体中处理该事件。但是在执行顺序上会有所差别,如果是Cube撞上Plane,那么就会

Cube中打印“我是Cube”
Plane中打印“我是Plane”
图2.1.3

先执行Cube中的事件,然后再执行Plane上的事件,反之则相反。如同2.1.4所示。但是如果两个都运动的话,以谁速度快就先执行对方。注:打印屏幕上的消息是在上面的后执行、最下面的是先执行的。

图2.1.4
2.2、实现碰撞事件

        碰撞是比较复杂的,相比重叠来说它需要注意的事情就更多。

1、两个物体的“碰撞已启用”都要设置带物理的选项

        两个物体的“碰撞已启用”都要设置带物理的选项,如“纯物理”、“已启用碰撞”,这两个可以任意组合,比如Cube选择了“纯物理”,plane可以选择“纯物理”或“已启用碰撞”,如图2.2.1所示

Cube选择了“纯物理”
Plane选择“已启用碰撞”
图2.2.1

2、两个物体针对对方的检测响应必须都是阻挡

        如图2.2.2所示,两个物体的检测响应针对对方的都必须是阻挡。

Cube针对Plane的设置为阻挡
Plane针对Cube的设置为阻挡
图2.2.2

3、其中一个必须开启“模拟生产命中事件”

        其中一个物体必须开启,开启后会自动触发“组件命中时”事件,没有勾选该项的不会出发“组件命中时”事件。如图2.2.3所示为两个物体我都勾选并在事件处理中打印Debug信息。

Cube勾选事件并处理

Plane勾选时间并处理
图2.2.3

4、其中一个必须开启“模拟物理“

        这是碰撞最难以把握的一点,Cube勾选“模拟物理”,Plane不勾选“模拟物理”。这一点在官方文档中是没有提及的,也是让我在头疼不已中才发现的最重要的一点。

5、触发碰撞的事件顺序好像和谁的没有关系

        无论我试了什么情况都是先执行Cube上的事件,然后再执行Plane的事件,但是我概关闭再次重启整个编辑器之后又是相反的结果,这也是最诡异的地方。

三、总结

3.1、要发生重叠最重要的是两个物体都要设置“生成重叠事件”。

3.2、重叠的两个物体的处理事件先后顺序有规律,碰撞的暂时没什么规律。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/242813.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BearPi Std 板从入门到放弃 - 先天神魂篇(3)(RT-Thread I2C设备)

简介 使用BearPi IOT Std开发板及其扩展板E53_SC1, SC1上有I2C1 的光照强度传感器BH1750 和 EEPROM AT24C02, 本次主要就是读取光照强度; 主板: 主芯片: STM32L431RCT6LED : PC13 \ 推挽输出\ 高电平点亮串口: Usart1I2C使用 : I2C1E53_SC1扩展板 : LE…

Python轴承故障诊断 (六)基于EMD-Transformer的故障分类

目录 前言 1 经验模态分解EMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 2.3 故障数据的EMD分解可视化 2.4 故障数据的EMD分解预处理 3 基于EMD-Transformer的轴承故障诊断分类 3.1 训练数据、测试数据分组,数据分batch …

YOLOv8训练好的pt文件如何用来预测

1. 使用原版预测 代码如下: from ultralytics import YOLO# Load a model model YOLO(yolov8n.pt) # load an official model# Predict with the model results model(https://ultralytics.com/images/bus.jpg) # predict on an image命令如下: y…

Go EASY游戏框架 之 RPC Guide 03

1 Overview easy解决服务端通信问题,同样使用了RPC技术。easy使用的ETCDGRPC,直接将它们打包组合在了一起。随着服务发现的成熟,稳定,简单,若是不用,甚至你也并不需要RPC来分解你的架构。 GRPC 有默认res…

产品入门第二讲:Axure产品元件库的使用

📚📚 🏅我是默,一个在CSDN分享笔记的博主。📚📚 ​​​​ 🌟在这里,我要推荐给大家我的专栏《Axure》。🎯🎯 🚀无论你是编程小白,还是…

西南科技大学数字电子技术实验六(智力竞赛抢答器的设计及FPGA实现)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结…

【Azure 架构师学习笔记】- Azure Databricks (3) - 再次认识DataBricks

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (2) -集群 前言 在对Databricks有了初步了解之后,如果要深入使用则需要对其进行更深层次的了解。 Databricks ADB 是一个统一的…

jdk+zookeeper+kafka 搭建kafka集群

环境资源包: jdk-8u341-linux-x64.tar.gz kafka_2.12-2.2.0.tgz zookeeper-3.4.14.tar.gz 一、安装jdk 因为kafka需要Java环境,所以优先配置jdk环境,若已经配置了java环境,此步骤可以忽略 [rootVM-120-2-centos ~]# tar -xvf j…

在Node.js中使用MongoDB连接数据库、创建集合

本文主要介绍在Node.js中使用MongoDB连接数据库、创建集合的方法。 目录 连接数据库使用原生驱动程序连接MongoDB数据库使用Mongoose连接MongoDB数据库 创建集合使用mongodb驱动程序 连接数据库 在Node.js中使用MongoDB连接数据库有两种方式:使用原生驱动程序和使用…

Redis持久化AOF详解

基础面试题 什么是AOF AOF(Append-Only File)用于将Redis服务器收到的写操作追加到日志文件,通过该机制可以保证服务器重启后依然可以依靠日志文件恢复数据。 它的工作过程大抵分为以下几步: 收到客户端的写入命令(例如SET、DE…

Hadoop学习总结(Hive的安装)

Hive的安装模式分为3种,分别是嵌入模式、本地模式、远程模式。 (1)嵌入模式:使用内嵌的 Derby 数据库存储元数据,这种方式是 Hive 的默认安装方式,配置简单,但是一次只能连接一个客户端&#xf…

2023.12.14 hive sql的聚合增强函数 grouping set

目录 1.建库建表 2.需求 3.使用union all来完成需求 4.聚合函数增强 grouping set 5.聚合增强函数cube ,rollup 6.rollup翻滚 7.聚合函数增强 -- grouping判断 1.建库建表 -- 建库 create database if not exists test; use test; -- 建表 create table test.t_cookie(month …

目标检测检测精度

在一个数据集检测中,会产生四类检测结果:TP、TN 、FP 、FN: T ——true 表示正确 F——false 表示错误 P—— positive 表示积极的,看成正例 N——negative 表示消极的,看成负例 我的理解:后面为预测结…

智能优化算法应用:基于象群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于象群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于象群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.象群算法4.实验参数设定5.算法结果6.参考文献7.MA…

C_10练习题答案

一、单项选择题(本大题共 20小题,每小题 2分,共 40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 1,结构化程序由三种基本结构组成,三种基本结构组成的算法是(A) A.可以完成任何复杂的任务 B.只能完成部分复杂的任务…

【数据结构和算法】压缩字符串

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一:双指针 三、代码 3.1 方法一:双指针 四、复杂度分析 前言 这是力扣…

计网Lesson9 - 链路协议和网络概述

文章目录 数据链路层协议Ethernet V2标准Ethernet V2帧格式Ethernet V2帧长度标准以太网帧 MAC 帧协议 PPP 协议PPP 概述PPP 帧 网络层网络层的设计选择 数据链路层协议 Ethernet V2标准 Ethernet V2帧格式 以太网帧格式说明: 6 6 6 字节目标地址 6 6 6 字节源地…

docker核心原理——unionfs、namespace、cgroup

docker 核心原理 docker的核心原理其实就是cgroupnamespaceunionfs 组合实现的隔离机制,资源控制等。 隔离机制 在容器进程启动之前重新挂载它的整个根⽬录“/”,⽤来为容器提供隔离后的执⾏环境⽂件系统通过Linux Namespace 创建隔离,决…

论文阅读:MonetDB/X100: Hyper-Pipelining Query Execution

目录 Abstract 1 Introduction 1.1 Outline 2 How CPU Work Abstract 在决策支持、OLAP和多媒体检索等计算密集型应用领域,数据库系统往往只能在现代cpu上实现较低的IPC(每周期指令)效率。本文首先以TPC-H基准为重点,深入研究了这种情况发生的原因。…

Debian 系统镜像下载

最近在看一些网络相关的文章需要用到 debian 11.x 的系统网上找了好多都发下载,在官网看一下 有个 11.8 的版本我无法下载,提示被最新的 debian-12.4.0 所代替,于是找到了这个链接 Index of /cdimage/unofficial/non-free/cd-including-fi…