UFUNCTION里面标记为Exec宏的函数就可以在控制台调用执行,在UGameInstance的派生类里面这样声明的可以直接调用访问,在其他场景类里面声明的要在UGameInstance的派生类里面重写ProcessConsoleExec方法调用一下才可以在控制台调用。
- UGameInstance的派生类里面直接定义声明使用
MyGameInstance
2. 在其他场景类里面声明,在MyGameInstance类里面重写ProcessConsoleExec方法
MyGameInstance.h
public:
/**
* This function handles a console exec sent to the object; it is virtual so 'nexus' objects like
* a player controller can reroute the command to several different objects.
*/
virtual bool ProcessConsoleExec(const TCHAR* Cmd, FOutputDevice& Ar, UObject* Executor) override;
MyGameInstance.cpp
bool UMyGameInstance::ProcessConsoleExec(const TCHAR * Cmd, FOutputDevice & Ar, UObject * Executor)
{
bool Res = Super::ProcessConsoleExec(Cmd, Ar, Executor);
if (!Res)
{
for (TActorIterator<AXXCharacter> It(GetWorld()); It; ++It)
{
Res = It->ProcessConsoleExec(Cmd, Ar, Executor);
}
}
return Res;
}
3. ~调出控制台方法测试
![5344eeb75b8ecd62bd7dc7d4549f481a.png](https://img-blog.csdnimg.cn/img_convert/5344eeb75b8ecd62bd7dc7d4549f481a.png)