UE4之c++使用多播代理调用蓝图

我们都知道,蓝图的开发效率高,而C++的执行效率高,有时候一些功能C++开发难度及高,而使用蓝图就简单多了,因为蓝图有好多给我们开发者封装好的蓝图节点,我们直接使用就好了,比如官方的时间轴,如果我们用C++写就会相当麻烦,

这篇博客就记录作者在开发过程中使用C++的多播代理调用蓝图的时间轴,从而实现动态缓慢开门关门效果0
效果图:
这里写图片描述

首先附上官方链接
https://docs.unrealengine.com/latest/CHN/Programming/UnrealArchitecture/Delegates/Multicast/index.html

虽然官方有教程,但是寥寥几个字,相信大家还是会看的一脸懵,
那么就开始看这篇博客吧,

首先声明一下这个门是Actor的,在Actor里我创建了一个OpenDoor的C++组件,并提前定义了开门关门函数,可以接收玩家输入,也可以用触发器,随便能判断开关门条件即可, 这里不做详细教程,我只写多播代理的使用方法,如果连映射输入都不会建议查看官方文档

好教程开始,
1,首先打开OpenDoor()组件在UClass()的头上创建代理

DECLARE_DYNAMIC_MULTICAST_DELEGATE(FTestRequst);

2,创建之后声明两个代理,分别是开门关门

    UPROPERTY(BlueprintAssignable)
        FTestRequst OnOpenDoorRequest;

    UPROPERTY(BlueprintAssignable)
        FTestRequst OnCloseDoorRequest;

3,然后在开门关门的函数里使用代理播放广播

void UOpenDoor::OpenDoor()
{
    OnOpenDoorRequest.Broadcast();
}

void UOpenDoor::closeDoor()
{
    OnCloseDoorRequest.Broadcast();
}

4,编译保存,确定无误
5,打开门Actor的蓝图选中OpenDoor组件,这个时候就可以为我们的广播定义功能了
这里写图片描述

6,之后我们就可以在蓝图中使用时间轴控制我们的门了
这里写图片描述

7,最后编译保存执行就好了

猜你喜欢

转载自blog.csdn.net/qq_36409711/article/details/78898914