当前位置: 首页 > 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.hengruixuexiao.com/news/13197.html

相关文章:

  • 免费建站cms微商软文
  • 有专门做房孑特卖的网站吗广告推广 精准引流
  • 做餐饮网站建设优化网站怎么做
  • 政府门户网站建设经验发言企业seo顾问服务阿亮
  • html网站支付链接怎么做seo点击排名
  • 青海wap网站建设公司重庆seo入门教程
  • 做网站用什么web服务器吗天津seo托管
  • 网站开发是什么语言百度seo收录软件
  • 新闻网站个人可以做吗厦门网站建设公司名单
  • 怎么做网站模块惠州seo优化服务
  • 黄骅做网站|黄骅网站|黄骅百度优化|黄骅百度推广|黄骅微信|黄骅百度推广培训班
  • 查看一个网站的源代码做评价桌面百度
  • 最专业的网站设计公司有哪些网络营销制度课完整版
  • 新闻app开发惠州百度seo哪里强
  • 最新免费下载ppt模板网站为什么外包会是简历污点
  • 织梦系统怎么做单页网站seo优化工具哪个好
  • 做理财的网站有哪些内容网络优化工作内容
  • 动漫人物做羞羞事的网站百度网站怎样优化排名
  • 湘潭哪里做网站 电话泰安seo推广
  • 台州网站建设解决方案百度推广怎么开户
  • 交互做的不好的网站南宁整合推广公司
  • 专门做流程图的网站百度推广一天费用200
  • 电商平台网站技术开发网站维护工作内容
  • 网站建设空间是指什么seo关键词优化排名哪家好
  • 免费学建筑知识网站找培训机构的app
  • 怎么用模板建网站搜索引擎网址
  • 服务器做ssr后还可以做网站吗优化大师软件大全
  • 南宁快速网站建设电话google play应用商店
  • 红河州做网站新手如何自己做网站
  • 网站建设中的图片百度竞价托管靠谱吗