在UE4中绘制而不是调试线



虚幻引擎4的真正新内容。我的主要观点是绘制透明的 3d 对象,并带有由线条制成的精美边框。对于这些,我有一组构成线条的点。所以我有一个用于在 C++ 对象中创建的程序网格,但它只能绘制多边形。

在UE4中搜索有关线条绘制的信息后,尝试使用"绘制"调试行",但它仅用于调试,仅用于 2 个点(我需要绘制点数组(

所以 - 我的问题是:在UE4的C ++代码中画线。

如何绘制不调试线?

如果你有一个包含所有链接点的数组,为什么不遍历这个数组并为每个"链接点"创建一个调试线呢?

TArray<FVector> myArray = .... ;
for (size_t i = 0; i < myArray.Num() - 1; ++i)
{
    FVector LinkStart = myArray[i];
    FVector LinkEnd = myArray[i+1];
    DrawDebugLine(GetWorld(), LinkStart, LinkEnd, 
        FColor(255,0,0), false, -1, 0, 10 );
}

如果你真的不想要调试线,还有另一种方法可以从FPrimitiveDrawInterface类的场景管理中绘制线。(我从未使用过它,不确定它是解决您问题的更好解决方案(

更难的是,您可以在C++中使用网格的程序生成,在其中创建网格并填充顶点和边。看看文档,你也许能够根据你的情况调整代码

对于那些正在挣扎的人(像我一样,曾经(:

  • ULineBatchComponent::D rawLine - 如果你想在世界空间中绘制 (https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Components/ULineBatchComponent/DrawLine/(
  • AHUD::D rawLine - 如果您需要在屏幕空间上绘制 (https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/GameFramework/AHUD/DrawLine/(

最新更新