Unrealengine4C++一些调试用的绘制函数(转)
2017-11-03 18:57
483 查看
转来学习和收藏,转自:http://www.it165.net/pro/html/201412/29772.html
UE4中提供了很多预定义的调试绘制函数,在做调试的时候还是比较方便的。可以在场景里绘制点、线、圆、球、箭头、椎体、胶囊、甚至样条线、字符串、网格等等,基本上该有的都有了。比较赞的是,你能控制线条的厚度,调试的时候就比较直观了。要使用这些函数,只需要包含DrawDebugHelpers.h 头文件即可。下面介绍几个主要的绘制函数:1.绘制点
view sourceprint?1.
ENGINE_API
void
DrawDebugPoint(
const
UWorld* InWorld,FVector
const
& Position,
float
Size,FColor
const
& PointColor,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);可选参数里面,我们可以控制点的尺寸、颜色、持续时间等。bPersistentLines表示,当前绘制的整个对象,是不是持久对象,设为true,它会一直显示当前World,直到你调用下面这个方法,释放它:view sourceprint?
1.
void
FlushPersistentDebugLines(
const
UWorld* InWorld);其他的绘制函数,此参数意义都是一样的。
2.绘制线
view sourceprint?1.
ENGINE_API
void
DrawDebugLine(
const
UWorld* InWorld,FVector
const
& LineStart,FVector
const
& LineEnd,FColor
const
& Color,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
,
float
Thickness =
0
.f);注意Thickness这个参数,它控制线条的厚度。
3.绘制箭头
view sourceprint?1.
ENGINE_API
void
DrawDebugDirectionalArrow(
const
UWorld* InWorld,FVector
const
& LineStart,FVector
const
& LineEnd,
float
ArrowSize,FColor
const
& Color,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);这个函数绘制一个有向箭头,和绘制线差不多,ArrowSize是箭头的尺寸。
4.绘制Box
view sourceprint?1.
ENGINE_API
void
DrawDebugBox(
const
UWorld* InWorld,FVector
const
& Center,FVector
const
& Extent,FColor
const
& Color,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
2.
/** Draw a debug box with rotation */
3.
ENGINE_API
void
DrawDebugBox(
const
UWorld* InWorld,FVector
const
& Center,FVector
const
& Box,
const
FQuat & Rotation,FColor
const
& Color,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);第一个根据Box的尺寸绘制,第二个额外的可以按照一定的旋转绘制。
5.绘制球体
view sourceprint?1.
ENGINE_API
void
DrawDebugSphere(
const
UWorld* InWorld,FVector
const
& Center,
float
Radius,int32 Segments,FColor
const
& Color,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);Segments控制球体的分段,越大越精细。
6.其他
还有很多不太常用的,可以绘制2D圆、圆柱、椎体、平截头体、胶囊等。这里只列出来,具体见DrawDebugHelpers.hview sourceprint?01.
ENGINE_API
void
DrawDebugCoordinateSystem(
const
UWorld* InWorld,FVector
const
& AxisLoc,FRotator
const
& AxisRot,
float
Scale,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
02.
/** Draw Debug Circle */
03.
ENGINE_API
void
DrawDebugCircle(
const
UWorld* InWorld,
const
FMatrix& TransformMatrix,
float
Radius,int32 Segments,
const
FColor& Color,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
04.
/** Draw Debug 2D donut */
05.
ENGINE_API
void
DrawDebug2DDonut(
const
UWorld* InWorld,
const
FMatrix& TransformMatrix,
float
InnerRadius,
float
OuterRadius,int32 Segments,
const
FColor& Color,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
06.
/** Draw a debug sphere */
07.
ENGINE_API
void
DrawDebugSphere(
const
UWorld* InWorld,FVector
const
& Center,
float
Radius,int32 Segments,FColor
const
& Color,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
08.
/** Draw a debug cylinder */
09.
ENGINE_API
void
DrawDebugCylinder(
const
UWorld* InWorld,FVector
const
& Start,FVector
const
& End,
float
Radius,int32 Segments,FColor
const
& Color,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
10.
ENGINE_API
void
DrawDebugCone(
const
UWorld* InWorld,FVector
const
& Origin,FVector
const
& Direction,
float
Length,
float
AngleWidth,
float
AngleHeight,int32 NumSides,FColor
const
& Color,bool bPersistentLines=
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
11.
/** Used by gameplay when defining a cone by a vertical and horizontal dot products. */
12.
ENGINE_API
void
DrawDebugAltCone(
const
UWorld* InWorld,FVector
const
& Origin,FRotator
const
& Rotation,
float
Length,
float
AngleWidth,
float
AngleHeight,FColor
const
& DrawColor,bool bPersistentLines=
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority=
0
);
13.
ENGINE_API
void
DrawDebugString(
const
UWorld* InWorld,FVector
const
& TextLocation,
const
FString& Text,
class
AActor* TestBaseActor = NULL,FColor
const
& TextColor = FColor::White,
float
Duration = -
1.000000
);
14.
ENGINE_API
void
DrawDebugFrustum(
const
UWorld* InWorld,
const
FMatrix& FrustumToWorld,FColor
const
& Color,bool bPersistentLines =
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
15.
/** Draw a capsule using the LineBatcher */
16.
ENGINE_API
void
DrawDebugCapsule(
const
UWorld* InWorld,FVector
const
& Center,
float
HalfHeight,
float
Radius,
const
FQuat & Rotation,FColor
const
& Color,bool bPersistentLines=
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
17.
/** Draw a debug camera shape. FOV is full angle in degrees. */
18.
ENGINE_API
void
DrawDebugCamera(
const
UWorld* InWorld,FVector
const
& Location,FRotator
const
& Rotation,
float
FOVDeg,
float
Scale=
1
.f,FColor
const
& Color=FColor::White,bool bPersistentLines=
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
19.
ENGINE_API
void
FlushDebugStrings(
const
UWorld* InWorld);
20.
21.
ENGINE_API
void
DrawDebugSolidBox(
const
UWorld* InWorld,FVector
const
& Center,FVector
const
& Box,FColor
const
& Color,bool bPersistent=
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
22.
ENGINE_API
void
DrawDebugSolidBox(
const
UWorld* InWorld,FVector
const
& Center,FVector
const
& Extent,FQuat
const
& Rotation,FColor
const
& Color,bool bPersistent=
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
23.
ENGINE_API
void
DrawDebugMesh(
const
UWorld* InWorld,TArray<FVector>
const
& Verts,TArray<int32>
const
& Indices,FColor
const
& Color,bool bPersistent=
false
,
float
LifeTime=-
1
.f,uint8 DepthPriority =
0
);
24.
ENGINE_API
void
DrawDebugSolidPlane(
const
UWorld* InWorld,FPlane
const
& P,FVector
const
& Loc,
float
Size,FColor
const
& Color,bool bPersistent=
false
,
float
LifeTime=-
1
,uint8 DepthPriority =
0
);
25.
26.
/* Draws a 2D Histogram of size 'DrawSize' based FDebugFloatHistory struct,using DrawTransform for the position in the world. */
27.
ENGINE_API
void
DrawDebugFloatHistory(UWorld
const
& WorldRef,FDebugFloatHistory
const
& FloatHistory,FTransform
const
& DrawTransform,FVector2D
const
& DrawSize,FColor
const
& DrawColor,bool
const
& bPersistent =
false
,
float
const
& LifeTime = -
1
.f,uint8
const
& DepthPriority =
0
);
28.
29.
/* Draws a 2D Histogram of size 'DrawSize' based FDebugFloatHistory struct,using DrawLocation for the location in the world,rotation will face camera of first player. */
30.
ENGINE_API
void
DrawDebugFloatHistory(UWorld
const
& WorldRef,FDebugFloatHistory
const
& FloatHistory,FVector
const
& DrawLocation,FVector2D
const
& DrawSize,FColor
const
& DrawColor,bool
const
& bPersistent =
false
,
float
const
& LifeTime = -
1
.f,uint8
const
& DepthPriority =
0
);
相关文章推荐
- Unreal engine 4 C++ 一些调试用的绘制函数
- Unreal engine 4 C++ 一些调试用的绘制函数
- 测试回顾版-第六讲:调试-主要穿插一些打日志的函数讲解lr_output_message等
- javaScript一些函数包括调试方法(二)
- PHP中绘制图像的一些函数总结
- QT 如何实现使用 QPainter 的 drawPixmap() 函数将图片文件绘制到一个 QLabel、QPushButton 或者其他的一些设备上?
- PHP中绘制图像的一些函数总结
- js在控制台中调试的一些函数
- PHP中绘制图像的一些函数总结
- 调试经验——使用Matlab绘制f(x)=sin(1/x)的函数图形
- linux驱动相关的一些函数
- [OpenGL]利用OpenGL绘制一些简单的图形
- C#中对应win32 API原型函数的一些数据类型(zhuan)
- 用两个栈模拟队列的一些函数
- Eclipse+Tomcat调试时的一些错误笔记
- C语言中关于字符串的一些常用函数
- php调试函数xdebug_debug_zval和debug_backtrace(需要安装xdebug)x
- MO_GLOBAL包中一些过程和函数的使用
- 模拟实现库string.h的一些函数
- 软件调试笔记32 - 栈和函数调用: CALL和RET指令