UE4射线的碰撞与绘制


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);
    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM