关卡蓝图中使用(方便)
直接在关卡蓝图中定义 然后可以通过ce + 函数名的方式调用
任意蓝图类
定义普通的函数,通过ke * + 函数名调用 这里 *代表任意不同的类的actor 凡是有Test3函数的都会调用,假如想指定某个类或者蓝图的函数调用可通过ke 类名的方式,这里注意如果是蓝图后缀需要添加_C
C++中定义可执行函数
普通的actor是只能通过ke + 类名 + 函数名这种方式执行,只有GameMode Controller 或者Pawn, HUD这种才能直接通过函数名执行
C++ 重载自定义命令的调用
真对某条指令自定义功能调用,在GameMode,PlayerController, 或者Pawn中重载ProcessConsoleExec函数
bool AMyGameModeBase::ProcessConsoleExec(const TCHAR* Cmd, FOutputDevice& Ar, UObject* Executor)
{
if (FPlatformString::Stricmp(Cmd, TEXT("Test4")) == 0)
{
for (TObjectIterator<UObject> It; It; ++It)
{
UObject* const Obj = *It;
UWorld const* const ObjWorld = Obj->GetWorld();
if (ObjWorld == GetWorld())
{
const bool bSucceeded = Obj->CallFunctionByNameWithArguments(Cmd, Ar, nullptr, true);
}
}
return true;
}
else
{
return Super::ProcessConsoleExec(Cmd, Ar, Executor);
}
}
这里针对Test4 单独进行了处理,可以直接调用场景中所有包含名称是Test4的可执行函数进行调用