定义控制台命令,用于改变全局静态变量,进而控制一些debug内容,比如:用DrawDebugLine显示射击轨迹
static int32 DebugWeaponDrawing = 0;
FAutoConsoleVariableRef CVARDebugWeaponDrawing(TEXT("COOP.DebugWeapons"),//控制台输入 COOP.DebugWeapons 数字 设置DebugWeaponDrawing值
DebugWeaponDrawing, //控制台变量
TEXT("Draw Debug Lines for Weapons"),
ECVF_Cheat);
//变量使用
if (DebugWeaponDrawing > 0)
{
DrawDebugLine(GetWorld(), EyeLocation, TraceEnd, FColor::White, false, 1.0f, 0, 1.0f);
}
运行时使用控制台输入
COOP.DebugWeapons 1 //设置DebugWeaponDrawing为1
COOP.DebugWeapons 0 //设置DebugWeaponDrawing为0
控制是否显示射击轨迹
源码
//头文件
IConsoleManager.h
//类
class CORE_API FAutoConsoleVariableRef : private FAutoConsoleObject
//本次用到的构造函数
/**
* Create a reference to a int console variable
* @param Name must not be 0
* @param Help must not be 0
* @param Flags bitmask combined from EConsoleVariableFlags
*/
FAutoConsoleVariableRef(const TCHAR* Name, int32& RefValue, const TCHAR* Help, uint32 Flags = ECVF_Default)
: FAutoConsoleObject(IConsoleManager::Get().RegisterConsoleVariableRef(Name, RefValue, Help, Flags))
{
}