U++中的Timer定时器 📅 发布时间:2026/7/11 16:34:25 👁️ 浏览次数: 本文主要用于记录UECpp笔记。基础用法#pragma once #include CoreMinimal.h #include GameFramework/Actor.h #include CppTest_1.generated.h UCLASS() class NEW_CPP_API ACppTest_1 : public AActor { GENERATED_BODY() public: ACppTest_1(); protected: virtual void BeginPlay() override; public: virtual void Tick(float DeltaTime) override; void PrintAfterDelay(); };#include CppTest_1.h ACppTest_1::ACppTest_1() { PrimaryActorTick.bCanEverTick true; } void ACppTest_1::BeginPlay() { Super::BeginPlay(); FTimerHandle TimerHandle; GetWorldTimerManager().SetTimer( TimerHandle, this, ACppTest_1::PrintAfterDelay, 5.0f, false ); } void ACppTest_1::PrintAfterDelay() { if (GEngine) { GEngine-AddOnScreenDebugMessage( -1, 5.0f, FColor::Green, TEXT(5 seconds later) ); } } void ACppTest_1::Tick(float DeltaTime) { Super::Tick(DeltaTime); }GetWorldTimerManager().SetTimer(TimerHandle, this, 类名::函数名, 5.0f, false);传入的timerhandle参数是一个引用类名::函数名字是获取函数地址布尔变量表示是否循环。着重讲解一下TimerHandle。在SetTimer之前需要先定义FTimerHandle TimerHandle它是定时器的标识符注在UE中F开头表示结构体。不存在同一个timerhandle同时管理两个定时器后一个定时器会去取代前一个定时器。如需要两个独立定时器应使用两个句柄。GetWorldTimerManager().SetTimer( TimerHandle, this, ACppTest_1::FunctionA, 5.0f, false ); // 使用同一个句柄重新设置 GetWorldTimerManager().SetTimer( TimerHandle, this, ACppTest_1::FunctionB, 2.0f, false );ClearTimer停止并彻底清除clear是将定时器从管理器中删除如果要重新运行需要再次调用TimerHandle。PauseTimer暂停定时器如果运行四秒停止即便游戏已经运行20妙定时器记录的仍然是四秒不会减少。UnPauseTimer取消暂停从剩余位置继续。IsTimerActive()判断是否正在运行并非判断是否存在返回bool值。IsTimerPause判断是否暂停clear后输出false。TimerExists判断是否存在于管理器中clear后输出false。//判断常见写法 if (GetWorldTimerManager().IsTimerActive(TimerHandle)) { UE_LOG(LogTemp, Warning, TEXT(定时器正在运行)); } else if (GetWorldTimerManager().IsTimerPaused(TimerHandle)) { UE_LOG(LogTemp, Warning, TEXT(定时器已暂停)); } else { UE_LOG(LogTemp, Warning, TEXT(定时器不存在)); }GetTimerRemaining获取每一轮循环定时器的剩余时间。如果是一个十秒钟的计时器已经过去三秒则返回7.0f定时器不存在则返回-1.0f。// 停止并清除定时器 GetWorldTimerManager().ClearTimer(TimerHandle); // 暂停定时器 GetWorldTimerManager().PauseTimer(TimerHandle); // 恢复定时器 GetWorldTimerManager().UnPauseTimer(TimerHandle); // 判断定时器是否存在 GetWorldTimerManager().IsTimerActive(TimerHandle); // 获取剩余时间 GetWorldTimerManager().GetTimerRemaining(TimerHandle);写在最后TimerHandle一般在头文件的private或protected中创建定时器一般写在BeginPlay和合适的事件/成员函数中一般不写在Tick中。
MateCloud邮件通知:SMTP配置与模板引擎使用指南 MateCloud邮件通知:SMTP配置与模板引擎使用指南 【免费下载链接】matecloud 🔥MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Boot 4.0.7、 SpringCloud 2025、Spring Cloud Alibaba 2025、Spring Security Oauth2、Feign、… 2026/7/11 16:32:25
Qwen3-30B-A3B-Thinking-2507-FP8模型安全部署指南:权限控制与访问管理 Qwen3-30B-A3B-Thinking-2507-FP8模型安全部署指南:权限控制与访问管理 【免费下载链接】Qwen3-30B-A3B-Thinking-2507-FP8 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Qwen3-30B-A3B-Thinking-2507-FP8 Qwen3-30B-A3B-Thinking-2507-FP8是基于Qwen3… 2026/7/11 16:32:25
【零基础玩转本地 AI 智能体】,OpenClaw Windows 端完整搭建方案(含安装包) OpenClaw v2.7.9 部署教程|Windows 零基础搭建本地 AI 智能体,实现全自动办公 核心亮点 无代码配置|图形化可视化部署|自动补齐运行环境|内置全套依赖组件|28 万 Tokens 可用额度 全平台下载链接 Windo… 2026/7/11 16:28:24
C++文件操作全攻略:从fstream到异常处理,构建健壮I/O程序 1. 项目概述:为什么文件操作是C程序员的必修课?在C的世界里,无论你是开发一个需要保存用户配置的桌面应用,还是处理海量日志数据的后台服务,甚至是编写一个简单的游戏存档功能,最终都绕不开一个核心操作&am… 2026/7/11 17:50:45
Aria2GUI完整指南:如何在macOS上实现高效多线程下载 Aria2GUI完整指南:如何在macOS上实现高效多线程下载 【免费下载链接】aria2gui Aria2GUI for macOS 项目地址: https://gitcode.com/gh_mirrors/ar/aria2gui Aria2GUI是一款专为macOS设计的开源下载管理器,基于强大的Aria2引擎,为用户… 2026/7/11 17:48:44
AI计算中DMA技术原理与优化实践指南 1. 先搞清楚 AI 和 DMA 到底在解决什么问题AI 和 DMA 这两个词现在经常被放在一起讨论,但很多人其实没搞清楚它们各自的核心价值。DMA(直接内存访问)不是新东西,它解决的是数据搬运的效率问题——让 CPU 从繁重的数据拷贝任务中解… 2026/7/11 17:48:44
LL(1)文法实战:3步构造预测分析表,解决王原生习题4.1歧义 LL(1)文法实战:3步构造预测分析表,解决王原生习题4.1歧义编译原理课程中,LL(1)文法的预测分析表构造是语法分析的核心技术难点。许多同学在面对王原生《编译原理(第三版)》第四章习题4.1这类包含左递归和歧义的文法时&… 2026/7/11 17:46:44
终极免费开源音乐播放器:LX Music Desktop完整使用指南 终极免费开源音乐播放器:LX Music Desktop完整使用指南 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop 在音乐软件纷纷转向付费订阅的时代,你是否还在寻找… 2026/7/11 17:46:44
004、模拟增益与数字增益:增益分配策略对信噪比和图像质量的实战影响 004、模拟增益与数字增益:增益分配策略对信噪比和图像质量的实战影响一个让我熬夜三天的bug 2018年某款旗舰机的前置摄像头,暗光自拍噪点像雪花一样。ISP团队说sensor输出已经调到最大模拟增益了,再往上加就是数字增益。我盯着log看了三个小时… 2026/7/11 17:42:43
5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符] 5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 🎬 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还记得那个深夜吗?你刚下载… 2026/7/11 0:00:11
工业信号干扰处理与FOD4216光耦应用实战 1. 工业环境中的信号干扰挑战在工业自动化领域,信号采集的准确性直接关系到整个控制系统的可靠性。典型的工业现场充斥着各种干扰源:大功率电机启停产生的电磁干扰、变频器工作产生的高频噪声、继电器触点火花放电,以及长距离传输引入的共模干… 2026/7/11 0:00:11
OpenHarmony 完整项目工程整合规范 + 模块化分层架构(API23+ 标准企业级结构) 摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计… 2026/7/11 0:00:11
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/11 14:53:30
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/11 12:30:52
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/11 15:29:59