UE4 C++使用Object碰撞通道 获取鼠标点击的位置
新建Object Channels 通道:
在这里新建的可以在DefaultEngine.ini文件里看到新建的东西:
设置地形的碰撞通道:
在项目名称.h 文件里生成一个宏:
下面使用这个方法:GetHitResultUnderCursorForObjects来体现:
void AOnePlayerController::SetPlayVevtor()
{
FHitResult HitResult;
TArray<TEnumAsByte<EObjectTypeQuery> > Type;
Type.Add(UEngineTypes::ConvertToObjectType(TRACE_CLIMB));
GetHitResultUnderCursorForObjects(Type,true,HitResult);
if (HitResult.bBlockingHit)
{
UE_LOG(LogTemp,Warning,TEXT("chenggong"));
UE_LOG(LogTemp,Warning,TEXT("%s"),*HitResult.Location.ToString());
FRotator Rotator=UKismetMathLibrary::FindLookAtRotation(HdsPlayer->GetActorLocation(),HitResult.Location);
Rotator=FRotator(0.0f,Rotator.Yaw,0.0f);
HdsPlayer->SetActorRotation(Rotator);
}
}
这个方法是设置玩家朝向鼠标点击的点,