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

怎么办网站平台网络规划设计师备考

怎么办网站平台,网络规划设计师备考,橙色的网站,聊城专业建wap网站一. 代理机制#xff0c;代理也叫做委托#xff0c;其作用就是提供一种消息机制。 发送方 #xff0c;接收方 分别叫做 触发点和执行点。就是软件中的观察者模式的原理。 创建一个C Actor作为练习 二.单播代理 创建一个C Actor MyDeligateActor作为练习 在MyDeligateAc…一. 代理机制代理也叫做委托其作用就是提供一种消息机制。 发送方 接收方 分别叫做 触发点和执行点。就是软件中的观察者模式的原理。 创建一个C Actor作为练习 二.单播代理 创建一个C Actor  MyDeligateActor作为练习 在MyDeligateActor.h中不需要其他头文件UE自带的 1.类型的声明代理的名称参数类型个数在Actor外 //单播代理类型声明 DECLARE_DELEGATE(NoParamDelegate); //无参数代理 DECLARE_DELEGATE_OneParam(OneParamDelegate,FString); //单播代理 代理名称参数类型 DECLARE_DELEGATE_TwoParams(TwoParamDelegate,FString,int32); //带有两个参数 的单播代理 代理名称参数1类型参数2类型 DECLARE_DELEGATE_ThreeParams(ThreeParamDelegate,FString,int32,float); //带有三个参数 的单播代理 代理名称参数1类型参数2类型,参数3类型 DECLARE_DELEGATE_RetVal(FString,RevalDelegate); //带有返回参数的。返回参数类型代理名称 2.在Actor里声明对应类型的的单播代理变量 //声明单播代理变量 名称 NoParamDelegate NoParamDelegate; OneParamDelegate OneParamDelegate; TwoParamDelegate TwoParamDelegate; ThreeParamDelegate ThreeParamDelegate; RevalDelegate RevalDelegate; 3.声明代理用绑定的函数 void NoParamFunction();void OneParamFunction(FString str);void TwoParamFunction(FString str,int32 value);void ThreeParamFunction(FString str,int32 value,float value1);FString RevalParamFunction(); 4.在CPP中 构造时对单播代理进行绑定 BindUObject(this,Function); //代理绑定 NoParamDelegate.BindUObject(this,AMyDeligateActor::NoParamFunction); OneParamDelegate.BindUObject(this, AMyDeligateActor::OneParamFunction); TwoParamDelegate.BindUObject(this, AMyDeligateActor::TwoParamFunction); ThreeParamDelegate.BindUObject(this, AMyDeligateActor::ThreeParamFunction); RevalDelegate.BindUObject(this,AMyDeligateActor::RevalParamFunction); 5.在BeginPlay里执行 //代理执行 判断是否绑定 绑定后就执行NoParamDelegate.ExecuteIfBound();OneParamDelegate.ExecuteIfBound(OneParamDelegate);TwoParamDelegate.ExecuteIfBound(TwoParamDelegate,10);ThreeParamDelegate.ExecuteIfBound(ThreeParamDelegate,10, 5.0f);FString strValue RevalDelegate.Execute(); 6.实现绑定的函数 void AMyDeligateActor::NoParamFunction() {GEngine-AddOnScreenDebugMessage(-1,5.f,FColor::Red,TEXT(NoParamDelegate)); }void AMyDeligateActor::OneParamFunction(FString str) {GEngine-AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT(%s), *str)); }void AMyDeligateActor::TwoParamFunction(FString str, int32 value) {GEngine-AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT(%s %d), *str,value)); }void AMyDeligateActor::ThreeParamFunction(FString str, int32 value, float value1) {GEngine-AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT(%s %d %f), *str, value,value1)); }FString AMyDeligateActor::RevalParamFunction() { FString str FString::Printf(TEXT(RevalParamDelegate));return str; }7.生成BP蓝图后放入场景中。 二. 多播代理 1.多播代理的类型声明一个代理可绑定多个函数 //多播代理类型声明(多播代理可以绑定多个函数) DECLARE_MULTICAST_DELEGATE_OneParam(OneParamMultiDelegate,FString); 2.在Actor里声明对应类型的的多播代理变量 //多播代理声明OneParamMultiDelegate OneParamMultiDelegate; 3.在Actor里声明多播代理绑定的函数 //多播代理绑定的函数UFUNCTION()void MultiDelegateFunction1(FString str);UFUNCTION()void MultiDelegateFunction2(FString str);UFUNCTION()void MultiDelegateFunction3(FString str); 4.CPP实现绑定的函数 void AMyDeligateActor::MultiDelegateFunction1(FString str) {FString TmpStr str.Append(1); //组合一下GEngine-AddOnScreenDebugMessage(-1,5.0f,FColor::Red,FString::Printf(TEXT(%s),*TmpStr)); }void AMyDeligateActor::MultiDelegateFunction2(FString str) {FString TmpStr str.Append(2);GEngine-AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, FString::Printf(TEXT(%s), *TmpStr)); }void AMyDeligateActor::MultiDelegateFunction3(FString str) {FString TmpStr str.Append(3);GEngine-AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, FString::Printf(TEXT(%s), *TmpStr)); } 5.在构造函数里绑定AddUObject(this,Function); //多播代理绑定 可绑定多个函数OneParamMultiDelegate.AddUObject(this,AMyDeligateActor::MultiDelegateFunction1);OneParamMultiDelegate.AddUObject(this, AMyDeligateActor::MultiDelegateFunction2);OneParamMultiDelegate.AddUObject(this, AMyDeligateActor::MultiDelegateFunction3); 6.在BeginPlay里执行多播代理。 //执行多播代理OneParamMultiDelegate.Broadcast(OneParamMultiDelegate); 7.效果如下 三.动态多播代理 1.动态多播代理类型声明,区别在于可以暴露给蓝图在蓝图中进行事件的绑定。 //DECLARE_MULTICAST_One //动态多播代理类型声明,区别在于可以暴露给蓝图在蓝图中进行事件的绑定. DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FDynamicMultiDelegate, FString, param); 2.动态多播代理变量的反射声明 //动态多播代理,UPROPERTY(BlueprintAssignable)FDynamicMultiDelegate DynamicMultiDelegate; 3.编译后在蓝图里绑定。 4.执行动态多播代理 //执行动态多播代理绑定在我们的蓝图中进行实现DynamicMultiDelegate.Broadcast(DynamicMultiDelegate); 5.效果如下
http://www.pierceye.com/news/389744/

相关文章:

  • 南宁网站seo顾问广州正规的免费建站
  • 温州教育网站建设建网站 陕西牛人网络科技
  • 青岛网站建设eoe世界杯现场直播
  • com网站建设中社交app定制开发
  • 阅读网站建设简易做海报网站
  • 上海企业网站建设推荐wordpress登录插件
  • 做网站的人联系电话可做产品预售的网站
  • 内部网络网站怎么做微信公众号推文制作软件
  • 什么网站做adsense好酒店官方网站建设书
  • 国家城乡与住房建设部网站做海报有什么参考的网站
  • 建德营销型网站建设企业邮箱地址怎么填写
  • 网站建设规划书总结怎么写wordpress 菜单链接
  • 网站目录程序重庆市建筑工程造价信息网官网
  • WordPress上传后找不到seo优化工程师
  • wordpress登录界面插件如何优化培训方式
  • 贵州建网站网站怎么优化自己免费
  • 个人网站介绍源码网站制作昆山
  • 网站开发属于知识产权吗如何制作软件程序
  • 外贸网站模板源码网络架构如何写
  • 网站建设美工的职位要求建材做哪些网站好
  • 淘宝客自建网站wap免费空间
  • python快速搭建网站如何制作一个微信刷题小程序
  • 域名备案与网站备案网站漏洞解决
  • 公明做网站多少钱高端网站设计怎么样
  • 重庆网站建设 熊掌号wordpress 被发文章
  • 网站建设管理视频广东省农业农村厅班子
  • 网站建设需要钱吗开发一个小程序流程
  • 通州富阳网站建设做足彩网站推广
  • 一个公司做网站需要注意什么条件车之家汽车官网
  • 石家庄网站建设网站建设网站的制作哪家好