zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    hash介绍
    序列化
    面向对象编程
    计算机系统基础知识05
    19、Python之队列
    18、Python之多线程
    17、Python之paramikomo
    16、Python之socket网络编程
    15、Python之异常处理
    14、Python之反射
  • 原文地址:https://www.cnblogs.com/coolbear/p/7145487.html
Copyright © 2011-2022 走看看