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]