10.20UEC++/代理,单播,多播

 

构建一个无参无返回值类型的函数(也可以有参有返回值类型)

 

相对应的构建一个无参无返回值类型的代理


2.多播

实现方式:

先在GameMode中添加带参的多播声明:

然后在类中进行定义成员属性

 

 在一个类中,声明函数

函数定义:

 

 在GameMode中的SayHello指令框函数中新建两个类对象:对象属性是MyActor(刚刚定义函数的类对象)

 调用AddUObject函数:

 在EndHello指令框函数中:

 结果:


3.动态代理 

 

 

 首先,在AMyActor上构建了一个带参函数,且用UFunction宏修饰

 

然后构建了一个动态多播的类型:名称必须是F开头的名字,不然会错误

 然后定义成员变量:

 然后就开始绑定

使用:


 动态多播代理用途:(用于蓝图)

 

动态多播创建完成之后:

在创建动态多播成员时,在前面加上UPROPERTY(BluePrintAssignable)宏

 

创建蓝图类:继承UCpp01_GameMode的类

 

此时只定义UPROPERTY(BluePrintAssignable)宏,蓝图拿不到,需要再加上

蓝图中搜索:

 

 在Myactor蓝图类中:

 此时创建的事件会需要一个函数输入节点(原因是因为在C++中创建了一个Int类型的函数,所以,需要传入一个int类型的函数)

构建int类型函数:

  

结果:

 

 所以,C++定义的多播被调用之外,蓝图写的函数也被调用,这就是动态多播的作用,多播却无法实现。        

猜你喜欢

转载自blog.csdn.net/qq_44160901/article/details/131625513