UE5 C++ 射线检测

一.声明四个变量

	FVector StartLocation;
	FVector ForwardVector;
	FVector EndLocation;
	FHitResult HitResult;

二.起点从摄像机,重点为摄像机前9999m。射线检测

使用LineTraceSingleByChannel 射线直线通道检测,所以

void AMyCharacter::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
	StartLocation = MyCamera->GetComponentLocation();
	ForwardVector = MyCamera->GetForwardVector();
	EndLocation = StartLocation + ForwardVector * 9999;
	bool bHit = GetWorld()->LineTraceSingleByChannel(HitResult,StartLocation,EndLocation,ECC_Visibility); 
	if (bHit)
	{
		AActor* HitActor = HitResult.GetActor();
		FVector ImpactPoint = HitResult.ImpactPoint;
		FVector HitLocation = HitResult.Location;
		GEngine->AddOnScreenDebugMessage(-1,5.0f,FColor::Red,FString::Printf(TEXT("%s"),*HitActor->GetName()));
	}
}

如果击中物体,射线检测返回HitResult结构体。ECC_Visibility则是根据通道查询检测。可以从HitResult里获取Actor. ImpactPoint是射线击中这个点的物体位置的位置。HitResult.Location是指击中的点的位置。

UE4 微笔记 之 HitResult (持续更新)_sweep hit result-CSDN博客

三.根据对象检测

//根据对象查询检测
FCollisionObjectQueryParams objectType;
//objectTypes.AddObjectTypesToQuery(E);
bool bHit2 = GetWorld()->LineTraceSingleByObjectType(HitResult,StartLocation,EndLocation,objectType);
if(bHit2)
{
	AActor* HitActor2 = HitResult.GetActor();
	FVector Impactpoint2 = HitResult.ImpactPoint;
	FVector HitLocation = HitResult.Location;
	GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, FString::Printf(TEXT("%s"), *HitActor2->GetName()));
}

可以规避一些不想检测的对象。但个人射线检测用的多一些。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 10:26:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 10:26:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 10:26:05       82 阅读
  4. Python语言-面向对象

    2024-04-23 10:26:05       91 阅读

热门阅读

  1. VaR模型

    2024-04-23 10:26:05       30 阅读
  2. Docker搭建htpcmanager

    2024-04-23 10:26:05       38 阅读
  3. 4-22 算法刷题思路总结

    2024-04-23 10:26:05       35 阅读
  4. ETL 和 ELT区别-2

    2024-04-23 10:26:05       50 阅读
  5. 快速了解 Rust 文档注释功能

    2024-04-23 10:26:05       30 阅读
  6. 浙江龙港BGP,103.36.60.X

    2024-04-23 10:26:05       35 阅读
  7. 学术论文中常见的拉丁语及其缩写词汇解析

    2024-04-23 10:26:05       39 阅读
  8. 速盾:cdn原理图解

    2024-04-23 10:26:05       31 阅读