ue4c++日记3(碰撞报告碰撞位置|力和扭矩)

news2024/11/23 22:15:06

目录

代码速查

根据世界方向/局部方向移动

 根据世界方向/局部方向旋转

加力加扭矩 

1碰撞并报告碰撞位置 

         两个设为阻挡才会阻挡,其中一个是重叠就会重叠

2例子:旋转前进!/原地踏步?

3增加力和扭矩

1.头文件

2.cpp文件 

3.放模型

4.模拟物理


代码速查

根据世界方向/局部方向移动


AddActorWorldOffset(Initial_Direction, true, &HitResult);//FVector|是否开启扫描|扫描结果

AddActorLocalOffset(Initial_Direction, true, &HitResult);

 根据世界方向/局部方向旋转

AddActorWorldRotation

AddActorLocalRotation

加力加扭矩 

	StaticMesh->AddForce(InitialForce);
	StaticMesh->AddTorque(InitialTorque);

 输出碰撞坐标

		UE_LOG(LogTemp, Warning, TEXT("@@f Hit@:x=%f,y=%f,z=%f"),HitResult.Location.X, HitResult.Location.Y, HitResult.Location.Z);
		UE_LOG(LogTemp, Warning, TEXT("@@s Hit@:x=%s,y=%s,z=%s"),*FString::SanitizeFloat(HitResult.Location.X), *FString::SanitizeFloat(HitResult.Location.Y),* FString::SanitizeFloat(HitResult.Location.Z));

 


碰撞并报告碰撞位置 

以下

%f写法数值更详细

	FHitResult HitResult;//声明变量
	AddActorLocalOffset(Initial_Direction, true, &HitResult);//添加对象移动/移动式是否开启扫描/扫描(碰撞)结果

	if (HitResult.bBlockingHit) {
		UE_LOG(LogTemp, Warning, TEXT("@@f Hit@:x=%f,y=%f,z=%f"),HitResult.Location.X, HitResult.Location.Y, HitResult.Location.Z);
	}
	if (HitResult.bBlockingHit) {
		UE_LOG(LogTemp, Warning, TEXT("@@s Hit@:x=%s,y=%s,z=%s"),*FString::SanitizeFloat(HitResult.Location.X), *FString::SanitizeFloat(HitResult.Location.Y),* FString::SanitizeFloat(HitResult.Location.Z));
	}

  结果

 

 两个设为阻挡才会阻挡,其中一个是重叠就会重叠

例子:旋转前进!/原地踏步?

使用世界坐标-前进+旋转操作,对象将会旋转前进;

但是,

使用对象坐标-前进+旋转操作,对象将头旋转着朝尾巴前进,原地踏步。

增加力和扭矩

力是直线方向的力,扭矩是绕某几个轴旋转所施加的力。

1.头文件

公有

	/// <summary>
	/// 力和扭矩
	/// </summary>
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyValues")
		FVector InitialForce;//力
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyValues")
		FVector InitialTorque;//扭矩

2.cpp文件 

头文件


#include "Components/StaticMeshComponent.h"

构造函数初始化

	InitialForce = FVector(0);
	InitialTorque = FVector(0);

BeginPlay 

	StaticMesh->AddForce(InitialForce);
	StaticMesh->AddTorque(InitialTorque);

3.放模型

 不放模型用不了模拟物理

 

4.模拟物理

 

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

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

相关文章

(14)go-micro微服务服务层Handle开发

文章目录一 Handle层开发功能说明需要完成的服务开发功能&#xff1a;从哪找需要开发的功能二 代码编写三 最后一 Handle层开发功能说明 需要完成的服务开发功能&#xff1a; 登录注册查询用户信息修改信息发送注册邮件发送重置密码邮件重置密码获取权限修改权限退出账号删除…

【计算机视觉】梯度消失和爆炸以及解决方法

问题 梯度消失无论是笔试还是面试都是常客了,其实对应于梯度消失,还有一个梯度爆炸的概念,这又是什么导致的呢?下面我们将根据公式推导来解释何为梯度消失与梯度爆炸。 梯度消失和梯度爆炸的表现 网络层数越多,模型训练的时候便越容易出现 梯度消失(gradient vanish) 和…

史上最全| 14种自动化分拣系统合集

导语大家好&#xff0c;我是智能仓储物流技术研习社的社长&#xff0c;你的老朋友&#xff0c;老K。新书上市《智能物流系统构成与技术实践》2023年度-厂商宣传合作位--->点击详情本文为研习社原创&#xff0c;违规转载必究01移栽式02偏转轮式03扫臂式04滑靴式05侧向翻转06推…

C++设计模式(3)——抽象工厂模式

抽象工厂模式 亦称&#xff1a; Abstract Factory 意图 抽象工厂模式是一种创建型设计模式&#xff0c; 它能创建一系列相关的对象&#xff0c; 而无需指定其具体类。 问题 假设你正在开发一款家具商店模拟器。 你的代码中包括一些类&#xff0c; 用于表示&#xff1a; …

Vue3系列二:如何实现对响应式数据的代理

上一篇文章中&#xff0c;我们讲解了 Vue3 中对响应式系统的实现&#xff0c;本章节会更进一步的从数据层面分享 Vue3 中对响应式数据是如何进行代理的&#xff0c;本文主要从引用类型数据和基本类型数据两个方面进行讲解。 实现数据代理的基础 理解 Proxy 和 Reflect 首先&…

26.Isaac教程--导航算法

导航算法 本节详细介绍导航算法。 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录导航算法全局路径规划器规划器模型可见性图算法优化器轨迹规划器全局路径规划器 Isaac 框架中的全局规划器问题被分解为三类&#xff1a;规划器模型、…

SpringBoot使用Swagger2

SpringBoot使用Swagger21.引入swagger依赖2.添加swagger配置类3.测试Controller4.测试5.swagger的注解Api注解ApiOperation注解ApiImplicitParam、ApiImplicitParams注解ApiParam注解ApiResponse、ApiResponses注解ResponseHeader注解ApiModel、ApiModelProperty注解6.更多1.引…

Redis 分布式锁实现文章集锦

前言近两年来微服务变得越来越热门&#xff0c;越来越多的应用部署在分布式环境中&#xff0c;在分布式环境中&#xff0c;数据一致性是一直以来需要关注并且去解决的问题&#xff0c;分布式锁也就成为了一种广泛使用的技术&#xff0c;常用的分布式实现方式为Redis&#xff0c…

PDF压缩在线怎么操作?这几个操作谁还不知道

我们在工作里经常处理非常多的文件&#xff0c;如果每个文件都要储存到设备上是非常困难的&#xff0c;因为这需要占用大量的内存&#xff0c;所以我们需要将PDF文件进行压缩&#xff0c;这样就可以释放我们设备的储存空间&#xff0c;不过对于很多人来说&#xff0c;压缩文件并…

自学Java篇之JFrame创建《石头迷阵小游戏》

自学Java篇之JFrame创建《石头迷阵小游戏》 根据黑马程序员java教程自学完java基础&#xff0c;觉得石头迷阵小游戏案例具有一定的编程练习价值&#xff0c;记录之。 最终效果&#xff1a; 案例主要思想流程&#xff1a; ​ 主要是思想是创建一个4*4的二维数组data&#xff…

【openGauss实战5】表管理及CURD

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&#x1f61…

汽车网络技术概述

车辆总线是一个专门的内部通信网络&#xff0c;将车辆&#xff08;如汽车、公共汽车、火车、工业或农业车辆、船舶或飞机&#xff09;内的部件相互连接。在电子学中&#xff0c;总线只是一个将多个电气或电子设备连接在一起的设备。车辆控制的特殊要求&#xff0c;如保证信息传…

数据分析-深度学习 Pytorch Day7

图像识别&#xff1a;CIFAR10图形识别1.CIFAR10数据集共有60000张彩色图像&#xff0c;这些图像式32*32*3&#xff0c;分为10个类&#xff0c;每个类6000张2.这里面有50000张用于训练&#xff0c;构成5个训练批&#xff0c;每一批10000张图&#xff1b;另外10000张用于测试&…

vhdx中的win10进行大版本系统升级

文章目录前言普通的win10大版本iso升级方式vhdx中的win10大版本升级方式难点分析 - 无法在虚拟驱动器上安装windows解决方案 - HyperV升级vhdx win10过程效果图hyperV虚机创建mbr引导启动项hyperV虚机设置在hyperV中升级过程图问题集锦问题一&#xff1a;hyverV虚机中升级报错&…

力扣刷题记录——561. 数组拆分、566. 重塑矩阵、575. 分糖果

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《力扣刷题记录——561. 数组拆分、566. 重塑矩阵、575. 分…

IDEA远程调试

1 概述 原理&#xff1a;本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信&#xff0c;传递调试指令和调试信息。 被调试程序的远程虚拟机&#xff1a;作为 Debug 服务端&#xff0c;监听 Debug 调试指令。jdwp是Java Debug Wire Protocol的缩写。 调试程序的本…

初识redis

1.初识Redis Redis是一种键值型的NoSql数据库&#xff0c;这里有两个关键字&#xff1a; 键值型 NoSql 其中键值型&#xff0c;是指Redis中存储的数据都是以key、value对的形式存储&#xff0c;而value的形式多种多样&#xff0c;可以是字符串、数值、甚至json&#xff1a;…

HTTPS一定可靠吗?

HTTPS一定可靠吗&#xff1f;中间人伪装服务器首先我们先看看客户端是如何验证证书的&#xff1f;数字证书签发和验证流程客户端校验服务端数字证书的过程如何出现中间人伪装服务器成服务器的情况&#xff1f;避免该情况中间人伪装服务器 客户端向服务端发起HTTPS建立连接请求时…

你知道吗?python lxml 库也能用于操作 svg 图片

在大多数场景中&#xff0c;我们都用 lxml 库解析网页源码&#xff0c;但你是否知道&#xff0c;lxml 库也是可以操作 svg 图片的。我们可以使用 lxml 中的 etree 模块来解析 SVG 文件&#xff0c;然后使用 SVG 中的各种元素和属性来进行操作。 python lxml 库操作 svg 图片lxm…

传输层协议:TCP协议(上)——协议结构、主要特点以及应用场景

简介 传输控制协议&#xff08;英语&#xff1a;Transmission Control Protocol&#xff0c;缩写&#xff1a;TCP&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议&#xff0c;由IETF的RFC 793定义。在简化的计算机网络OSI模型中&#xff0c;它完成第四层传…