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);
}
相关文章
|
2月前
|
存储 Java C++
C++ 引用和指针:内存地址、创建方法及应用解析
C++中的引用是现有变量的别名,创建时需用`&`运算符,如`string &meal = food;`。指针存储变量的内存地址,使用`*`创建,如`string* ptr = &food;`。引用必须初始化且不可为空,而指针可初始化为空。引用在函数参数传递和提高效率时有用,指针适用于动态内存分配和复杂数据结构操作。选择使用取决于具体需求。
54 9
|
2月前
|
监控 算法 编译器
C++通过libssh2库获取 SFTP指定文件的最后修改时间的方法
C++通过libssh2库获取 SFTP指定文件的最后修改时间的方法
57 0
|
20天前
|
算法 Linux C++
C++框架设计中实现可扩展性的方法
在软件开发中,可扩展性至关重要,尤其对于C++这样的静态类型语言。本文探讨了在C++框架设计中实现可扩展性的方法:1) 模块化设计降低耦合;2) 使用继承和接口实现功能扩展;3) 通过插件机制动态添加功能;4) 利用模板和泛型提升代码复用;5) 遵循设计原则和最佳实践;6) 应用配置和策略模式以改变运行时行为;7) 使用工厂和抽象工厂模式创建可扩展的对象;8) 实现依赖注入增强灵活性。这些策略有助于构建适应变化、易于维护的C++框架。
33 2
|
1月前
|
C++ 存储 Java
C++ 引用和指针:内存地址、创建方法及应用解析
'markdown'C++ 中的引用是现有变量的别名,用 `&` 创建。例如:`string &meal = food;`。指针通过 `&` 获取变量内存地址,用 `*` 创建。指针变量存储地址,如 `string *ptr = &food;`。引用不可为空且不可变,指针可为空且可变,适用于动态内存和复杂数据结构。两者在函数参数传递和效率提升方面各有优势。 ```
|
7天前
|
存储 编译器 程序员
C++语言速成方法
C++语言速成方法
|
7天前
|
C++ UED 开发者
逆向学习 MFC 篇:视图分割和在 C++ 的 Windows 窗口程序中添加图标的方法
逆向学习 MFC 篇:视图分割和在 C++ 的 Windows 窗口程序中添加图标的方法
7 0
|
11天前
|
C++ Python
UE C++ 链表
UE C++ 链表
|
1月前
|
C++ 安全
高效遍历:C++中分隔字符串单词的3种方法详解与实例
拷贝并交换(Copy-and-Swap)是C++中实现赋值操作符和异常安全拷贝构造函数的技巧。它涉及创建临时对象,使用拷贝构造函数,然后交换数据以确保安全。C++11之前的策略在此后及C++11引入的移动语义和右值引用下仍有效,但后者提供了更高效的实现方式。
|
2月前
|
C语言 C++
C++|运算符重载(2)|运算符重载的方法与规则
C++|运算符重载(2)|运算符重载的方法与规则
|
2月前
|
编译器 C++
C++ 解引用与函数基础:内存地址、调用方法及声明
C++ 中的解引用允许通过指针访问变量值。使用 `*` 运算符可解引用指针并修改原始变量。注意确保指针有效且不为空,以防止程序崩溃。函数是封装代码的单元,用于执行特定任务。理解函数的声明、定义、参数和返回值是关键。函数重载允许同一名称但不同参数列表的函数存在。关注公众号 `Let us Coding` 获取更多内容。
152 1