http://blog.csdn.net/qq992817263/article/details/51800657

//起点 终点
FHitResult RayGetHitResult(FVector TraceStart, FVector TraceEnd)  
{  
    FCollisionQueryParams TraceParams(FName(TEXT("TraceUsableActor")), true, this);  
    TraceParams.bTraceAsyncScene = true;  
    TraceParams.bReturnPhysicalMaterial = false;  
    TraceParams.bTraceComplex = true;  
  
    //Hit是用来存储射线的一些数据,如Actor、坐标等等
    FHitResult Hit(ForceInit);  
    if (GetWorld()->LineTraceSingle(Hit, TraceStart, TraceEnd, ECC_Visibility, TraceParams))  
    {  
        //绘制射线  
        DrawRayLine(TraceStart, Hit.Location,0.03f);  
    }  
    return Hit;  
}  
//起点 终点 绘制线的显示的时间
void DrawRayLine(FVector StartPos, FVector EndPos,float fLifeTime)
{
    ULineBatchComponent* const LineBatcher = GetWorld()->PersistentLineBatcher;
    const float LifeTime = fLifeTime;
    if (LineBatcher != NULL)
    {
        float LineLifeTime = (LifeTime > 0.f) ? LifeTime : LineBatcher->DefaultLifeTime;
        
        LineBatcher->DrawLine(StartPos, EndPos, FLinearColor::Red, 10, 0.f, LineLifeTime);
    }
}

 

相关文章:

  • 2022-12-23
  • 2021-09-03
  • 2021-11-05
  • 2021-10-26
  • 2022-12-23
  • 2022-12-23
  • 2021-09-08
  • 2021-08-15
猜你喜欢
  • 2021-07-12
  • 2022-12-23
  • 2021-04-27
  • 2022-02-03
  • 2021-08-16
  • 2021-07-20
  • 2021-09-30
相关资源
相似解决方案