ue4-定时器
- c++ 和 蓝图 中定时器的使用
- 之前有写过c++的,现在用 markdown 整理下c++和蓝图的
1. 蓝图中的使用
开始,可以通过 事件 或 事件名、方法名 两个api起定时器
这里写图片描述
暂停
这里写图片描述
唤醒
这里写图片描述
停止并清除
这里写图片描述
其他api
参考:https://docs.unrealengine.com/latest/INT/Gameplay/HowTo/UseTimers/Blueprints/
2. C++中的使用
开始与清除
1
2
3
4
5
6
7
8
9
10
11
12FTimerHandle mTimer; //起个 handle
auto lambda = [&]()->void {
mLeftTime -= 1;
if (mLeftTime < 5)
GWorld->GetTimerManager().ClearTimer(mTimer); //停止并清除定时器
};
auto dlg = FTimerDelegate::CreateLambda(lambda); //动态代理的绑定,还有其他几种方式,下面有贴链接
//auto dlg = FTimerDelegate::CreateUObject(this, &AMyActor::TimerCount);
GWorld->GetTimerManager().SetTimer(mTimer, dlg, 1.0f, true);其他api
1
2
3
4
5
6
7GWorld->GetTimerManager().PauseTimer(mTimer); //暂停
GWorld->GetTimerManager().UnPauseTimer(mTimer); //唤醒
float elapsed = GWorld->GetTimerManager().GetTimerElapsed(mTimer); //已逝时间
float elapsed = GWorld->GetTimerManager().GetTimerRemaining(mTimer); //剩余时间
bool isActive = GWorld->GetTimerManager().IsTimerActive(mTimer); //激活
bool isPaused = GWorld->GetTimerManager().IsTimerPaused(mTimer); //暂停
bool isExist = GWorld->GetTimerManager().TimerExists(mTimer); //存在动态代理绑定的参照这里:http://blog.csdn.net/yangxuan0261/article/details/52097699
参考(貌似比较旧的api,不适4.14版本):https://docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/Timers/