当前位置: 首页 > news >正文

装饰网站的业务员都是怎么做的携程网网站做的怎么样

装饰网站的业务员都是怎么做的,携程网网站做的怎么样,定西做网站,百度做网站哪里可以学一、前言 委托分单播和多播,多播就是可以绑定多个回调函数,然后一次性执行。这样也可以理解为啥多播没有返回值,多个回调函数执行后返回哪一个都是问题啊。而事件呢官方官方文档说法是“对于事件而言,只有定义事件的类才能调用 Br…

一、前言

        委托分单播和多播,多播就是可以绑定多个回调函数,然后一次性执行。这样也可以理解为啥多播没有返回值,多个回调函数执行后返回哪一个都是问题啊。而事件呢官方官方文档说法是“对于事件而言,只有定义事件的类才能调用 Broadcast() 函数”。这句话不是很理解,网上有解读是说事件的定义第一个参数就是类名,只有这个类可以调用后面的Broadcast() 函数,但我试了第一个参数是别的类也可以。

        使用的虚幻版本为5.2.1,VS版本为2022.

二、实现

        多播委托分为静态多播委托和动态多播委托,动态多播委托允许在蓝图中使用,静态不行。

2.1、静态多播委托

        首先定义一个静态多播委托,如下,第一个参数为委托的名称,第二个为参数类型。

//多播委托类声明
DECLARE_MULTICAST_DELEGATE_OneParam(MulDelegate_OneParam, FString);//带一个参数的

        然后,再声明委托的类型变量和绑定的方法

	//多播代理声明MulDelegate_OneParam MulDelegate_OneParam1;//多播委托绑定函数定义void MulDelegate_OneParamFunc1(FString strVal);void MulDelegate_OneParamFunc2(FString strVal);

        实现多播绑定函数,将读取到的信息打印到屏幕上。

void ADelegateActor::MulDelegate_OneParamFunc1(FString strVal)
{FString tempStr = strVal.Append("1");GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Blue, FString::Printf(TEXT("%s"), *tempStr));
}void ADelegateActor::MulDelegate_OneParamFunc2(FString strVal)
{FString tempStr = strVal.Append("2");GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Blue, FString::Printf(TEXT("%s"), *tempStr));
}

        绑定和执行

	//多播代理的绑定MulDelegate_OneParam1.AddUObject(this, &ADelegateActor::MulDelegate_OneParamFunc1);MulDelegate_OneParam1.AddUObject(this, &ADelegateActor::MulDelegate_OneParamFunc2);多播代理执行MulDelegate_OneParam1.Broadcast("MulDelegate");

其他的方法可以参考单播委托的调用和使用。

2.2、动态多播委托

        动态多播的声明,注意:名称一定要F开头不然会编译报错“Delegate type declarations must start with F”。

//动态多播委托,区别在于它可以暴露给蓝图,在蓝图中进行事件的绑定
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FDynamicMulDelegate, FString, param);//一个参数的动态多播委托,名称一定要F开头不然会编译报错“Delegate type declarations must start with F”

动态多播的变量声明,要让蓝图中调用因此需要“UPROPERTY”标签。

	//动态多播代理变量声明UPROPERTY(BlueprintAssignable)//可以让代理在蓝图中进行绑定FDynamicMulDelegate DynamicMulDelegate;

        编译代码成功后,在编辑器中创建动态多播类的蓝图,然后在蓝图中输入上述定义的变量名点击“分配DynamicMulDelegate",这样就能创建一个带绑定的自定义蓝图事件,如图2.2.1所示,然后在开始函数时执行动态绑定。

图2.2.1

调用还是再C++代码中

	动态多播代理执行DynamicMulDelegate.Broadcast("Dynamic Mul Cast");
2.3、事件

事件的声明,第一个参数是类名,我这里使用了其他的原始C++类(不继承任何虚幻类的类),第二个参数为事件的名称,第三个为参数类型。

//事件声明
DECLARE_EVENT_OneParam(MyRawClass, MyActionEvent1, FString);

定义事件的变量

	//事件变量MyActionEvent1 ActionEvent;

事件的绑定和执行

	ActionEvent.AddUObject(this, &ADelegateActor::OneParamDelegateFunc);ActionEvent.Broadcast("Event Call");

三、总结

3.1、动态多播委托的第一个参数名称必须以”F“开头,否则会编译报错。

3.2、事件和委托目前还未发现有什么不同之处,我定义事件时第一个参数为原始C++类,调用的时候在别的类也可以执行,跟官方说的不太一致。

http://www.yayakq.cn/news/391127/

相关文章:

  • 网站设计公司长沙公司没有域名可以做网站吗
  • 四川杰新建设工程网站个人网站源码html
  • 东莞网站建设分享seo网站备案ip地址
  • 怎么做网站开发的方案潍坊市建设工程质量安全监督站网站
  • 网站开发所需要的条件深圳制作网站建设
  • 网站增加外链方法现代简约室内设计案例分析
  • 客户做网站要退款互联网公司排名深信服
  • 网站代搭建维护网站开发的目的和意义
  • 网站建设与设计试题wordpress显示运行时间
  • wordpress微网站模板wordpress notfound
  • wordpress 豆瓣插件阳江网站seo服务
  • 哪个网站做高中的题好梦幻西游官网
  • 电子商务网站的全面建设开发项目的流程
  • 中国黑色网站模板qq云端服务器
  • 广州做网站报价网站通栏
  • 网站后台关键词链接怎样做邯郸市信息港
  • 手机社交网站建设怎么做自己的音乐网站
  • 外贸营销型网站2018wordpress最新主题下载
  • 网站开发与建设方向iis 部署wordpress
  • 营销型网站定做客户说做网站价格高
  • 建设网站用什么语言开发稳定云南工程建设信息网官网
  • 网站后台jsp怎么做分页五网合一网站建设
  • 盐都区城乡建设局网站网站服务器 优帮云
  • 网站建设与管理以后工作方向google chrome网页版
  • ios移动网站开发详解 pdfhtml5网站的优点
  • 购物网站设计建筑业企业服务平台
  • 上不了国外网站 怎么做贸易移动建站平台有哪些
  • 网站设计的重要性加工外包网
  • 做买鞋网站的论文医院网站模板
  • 17一起做网站广州广西灵山县住房和城乡建设局网站