UE C++延迟调用实现(LatentAction方法)

简介: UE C++延迟调用实现(LatentAction方法)

.h:

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Runtime/Engine/Classes/Kismet/KismetSystemLibrary.h"  
#include "MyActor.generated.h"

UCLASS()
class MYPROJECT_API AMyActor : public AActor
{
   
    GENERATED_BODY()

public:    
    // Sets default values for this actor's properties
    AMyActor();

private:
    UFUNCTION()
        void OnLatentActionCompleted(int32 LinkID);

protected:
    // Called when the game starts or when spawned
    virtual void BeginPlay() override;
public:    
    // Called every frame
    virtual void Tick(float DeltaTime) override;
}

.cpp:


#include "MyActor.h"

// Sets default values
AMyActor::AMyActor()
{
   
     // Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
    PrimaryActorTick.bCanEverTick = true;

}

void AMyActor::OnLatentActionCompleted(int32 LinkID)
{
   
    UE_LOG(LogTemp, Log, TEXT("Delay Invoke!"));
}

// Called when the game starts or when spawned
void AMyActor::BeginPlay()
{
   
    Super::BeginPlay();

    FLatentActionInfo Ret(0, GetTypeHash(FGuid::NewGuid()), TEXT("OnLatentActionCompleted"), this);
    UKismetSystemLibrary::Delay(this, 3.0, Ret);
    //延迟3秒后,调用函数名为OnLatentActionCompleted的函数
}

// Called every frame
void AMyActor::Tick(float DeltaTime)
{
   
    Super::Tick(DeltaTime);
}
相关文章
|
7月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
1756 2
|
8月前
|
存储 缓存 监控
用 C++ 红黑树给公司电脑监控软件的日志快速排序的方法
本文介绍基于C++红黑树算法实现公司监控电脑软件的日志高效管理,利用其自平衡特性提升日志排序、检索与动态更新效率,并结合实际场景提出优化方向,增强系统性能与稳定性。
230 4
|
编译器 API C语言
超级好用的C++实用库之跨平台实用方法
超级好用的C++实用库之跨平台实用方法
295 6
|
JavaScript 前端开发 Java
通过Gtest访问C++静态、私有、保护变量和方法
通过Gtest访问C++静态、私有、保护变量和方法
475 1
|
C++
C++ 避免多重定义的方法
C++ 避免多重定义的方法
196 0
|
Dart API C语言
Dart ffi 使用问题之想在C/C++中创建异步线程来调用Dart方法,如何操作
Dart ffi 使用问题之想在C/C++中创建异步线程来调用Dart方法,如何操作
|
存储 编译器 程序员
C++语言速成方法
C++语言速成方法
|
C++ UED 开发者
逆向学习 MFC 篇:视图分割和在 C++ 的 Windows 窗口程序中添加图标的方法
逆向学习 MFC 篇:视图分割和在 C++ 的 Windows 窗口程序中添加图标的方法
475 0
|
C++ Python
UE C++ 链表
UE C++ 链表
|
算法 Linux C++
C++框架设计中实现可扩展性的方法
在软件开发中,可扩展性至关重要,尤其对于C++这样的静态类型语言。本文探讨了在C++框架设计中实现可扩展性的方法:1) 模块化设计降低耦合;2) 使用继承和接口实现功能扩展;3) 通过插件机制动态添加功能;4) 利用模板和泛型提升代码复用;5) 遵循设计原则和最佳实践;6) 应用配置和策略模式以改变运行时行为;7) 使用工厂和抽象工厂模式创建可扩展的对象;8) 实现依赖注入增强灵活性。这些策略有助于构建适应变化、易于维护的C++框架。
1090 2