ChuanXin 发表于 2023-4-11 14:44

unreal-c++教程-第九章:c++发送消息给蓝图

c++发送消息给蓝图

1. 背景介绍2. c++代码3.创建蓝图


1. 背景介绍

我们希望在c++中完成一些操作,比如定义socket,接收到服务器的消息之后,通过蓝图来处理
这个时候,就需要让c++发送消息给蓝图一个简单的例子:
我们在c++中定义了一个OnReceiveMsg(float val)的函数
我们在Tick函数中不断的调用这个函数,那么,我们希望通过蓝图来重写这个函数的具体实现:



2. c++代码

.h文件
#pragmaonce#include"CoreMinimal.h"#include"GameFramework/Actor.h"#include"Client.generated.h"UCLASS()
class LUAX_API AClient : public AActor
{GENERATED_BODY()
       
public:// Sets default values for this actor's propertiesAClient();

protected:// Called when the game starts or when spawned
        virtual voidBeginPlay() override;

public:// Called every frame
        virtual voidTick(float DeltaTime) override;UFUNCTION(BlueprintNativeEvent, Category ="Switch Functions")voidOnReceiveMsg(float val);voidOnReceiveMsg_Implementation(float val);};

.cpp文件
// Fill out your copyright notice in the Description page of Project Settings.#include"Client.h"//#include "UnLua/"//#include "UnLua/"// Sets default values
AClient::AClient(){// 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;}// Called when the game starts or when spawnedvoid AClient::BeginPlay(){

        Super::BeginPlay();}// Called every framevoid AClient::Tick(float DeltaTime){
        Super::Tick(DeltaTime);OnReceiveMsg(DeltaTime);}void AClient::OnReceiveMsg_Implementation(float val){}
3.创建蓝图



我们将该Test的Acator拖拽到UWorld中时,我们会发现,我们成功的接收到来自c++的消息

页: [1]
查看完整版本: unreal-c++教程-第九章:c++发送消息给蓝图