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

郑州专业网站制作刷网站软件

郑州专业网站制作,刷网站软件,织梦搬到WordPress,网站推广服务一、前言 除了上一章C变量与蓝图通信讲的变量能与蓝图通信外,还有函数和枚举也可以和蓝图通信。函数的关键字为”UFUNCTION“、枚举的关键字为”UENUM“。 二、实现 2.1、BlueprintCallable蓝图中调用 该函数时带执行的,带入如下。编译成功后在蓝图中输…

一、前言

        除了上一章C++变量与蓝图通信讲的变量能与蓝图通信外,还有函数和枚举也可以和蓝图通信。函数的关键字为”UFUNCTION“、枚举的关键字为”UENUM“。

二、实现

2.1、BlueprintCallable蓝图中调用

  该函数时带执行的,带入如下。编译成功后在蓝图中输入后可以找到,并点击使用如图2.1.1所示

	/// <summary>/// 暴露该函数可在蓝图中调用/// </summary>UFUNCTION(BlueprintCallable, Category = "MyFunction")void BlueprintCallable1();
图2.1.1

2.2、BlueprintPure蓝图中的纯函数

        代码如下,其在蓝图中的形式如图2.2.1所示,它是一个纯函数和图2.1.1不同的是它没有左右

	/// <summary>/// 可在蓝图中调用的纯函数的定义/// </summary>UFUNCTION(BlueprintPure, Category = "MyFunction")bool BlueprintPure2();
图2.2.1

两边的执行引脚。

2.3、BlueprintImplementableEvent

        在C++中声明蓝图中实现,在蓝图中可重载,可以有参数和返回值,无返回值的是事件,有返回值的是函数。

1、没有返回值和参数

        定义的代码如下所示,

	UFUNCTION(BlueprintImplementableEvent)void ImplementableEvent1();

然后在蓝图中它会作为事件添加到蓝图中使用,如图2.3.1所示:

图2.3.1

该事件可以在C++代码中调用

void AMyPawn1::BeginPlay()
{Super::BeginPlay();ImplementableEvent1();
}

2、只有返回值

只有返回值的在蓝图中会作为函数,如图2.3.2所示,同时这个函数可以在蓝图中被重写

	UFUNCTION(BlueprintImplementableEvent)int32 ImplementableEvent2();
图2.3.2

但是在蓝图还无法调用它,需要添加”Blueprint Callable“关键字,如下代码,注意两个关键字的顺

图2.3.3
	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)int32 ImplementableEvent2();

序,如果把Blueprint Callable“关键字放在后面编译不通过。增加关键字后的蓝图中可以调用,如图2.3.4所示:

图2.3.4

3、只有参数

代码如下所示,添加一个带参数的,这个效果和图2.3.1中的类似,不同之处是这里会带参数,如图2.3.4所示:

	UFUNCTION(BlueprintImplementableEvent)void ImplementableEvent3(const FString& myStr);
图2.3.4

4、参数和返回值都有

代码如下所示,其效果和图2.3.2所示类似,区别之处在于此处是带输入参数的。

	UFUNCTION(BlueprintImplementableEvent)int32 ImplementableEvent4(const FString& myStr);

2.4、BlueprintNativeEvent

        在C++中声明和实现,蓝图可重载,函数实现的后面要加Implementation,否则会编译出错,但是在调用的时候还是用声明时的名字。无返回值的是事件,有返回值的是函数。代码如下

	UFUNCTION(BlueprintNativeEvent)void BlueprintNativeEvent1();UFUNCTION(BlueprintNativeEvent)int32 BlueprintNativeEvent2();UFUNCTION(BlueprintNativeEvent)void BlueprintNativeEvent3(const FString& myStr);UFUNCTION(BlueprintNativeEvent)int32 BlueprintNativeEvent4(const FString& myStr);

实现的代码如下,又返回值的必须返回一个值。

void AMyPawn1::BlueprintNativeEvent1_Implementation()
{GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("这是一个C++代码写的BlueprintNativeEvent事件"));
}int32 AMyPawn1::BlueprintNativeEvent2_Implementation()
{return 0;
}void AMyPawn1::BlueprintNativeEvent3_Implementation(const FString& myStr)
{}int32 AMyPawn1::BlueprintNativeEvent4_Implementation(const FString& myStr)
{return 0;
}

2.5、Meta元素说明符

该函数定义如下,而且必须实现,通过meta关键字实现其在蓝图中的名称改为“MyPrintTest”

	//元数据说明符,也即别名,在蓝图中会显示DisplayName定义的名字UFUNCTION(BlueprintCallable, Category = "MyFunction", meta = (DisplayName = "MyPrintTest"))void PrintMeta();

2.6、枚举

首先定义一个宏,代码如下,生成枚举的反射数据,通过反射将枚举暴露给蓝图,实现C++和蓝图的通信,BlueprintType的作用是可以在蓝图创建变量的时候也可以作为选项。如图2.6.1所示

UENUM(BlueprintType)//生成枚举的反射数据,通过反射将枚举暴露给蓝图,实现C++和蓝图的通信,BlueprintType的作用是可以在蓝图创建变量的时候也可以作为选项
namespace MyEnumType
{enum MyCustomEnum{Type1,Type2,Type3,};
}
图2.6.1

在蓝图中创建一个新的变量,变量的类型中可以选中C++代码中创建的这个枚举。同时,在蓝图中也可以调用该枚举,如图2.6.2所示:

图2.6.2
通过以下代码可以实现在各类面板和蓝图中使用该变量
	//枚举UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyEnum")TEnumAsByte<MyEnumType::MyCustomEnum> MyCustomEnum;

同时也可以在蓝图中调用和编辑该变量,如图2.6.3所示

图2.6.3

通常一个定义里只能有一个枚举,如下代码中会编译不通过,在MyEnumType中只能定义一个。

UENUM(BlueprintType)
namespace MyEnumType
{enum MyCustomEnum{Type1,Type2,Type3,};enum MyEnum2{One, Two, Three,};
}

三、总结

3.1、BlueprintImplementableEvent的函数在C++代码中只需要声明不需要实现。

3.2、BlueprintNativeEvent的函数在C++代码中声明了还必须实现,不实现会编译报错。实现中的函数名称后总有加上”_Implementation“,但是在调用的时候又要去掉”_Implementation“,这样才能在蓝图中被调用,使用带后缀”_Implementation“的只会在C++中调用,而蓝图中不会被调用。

3.3、”Blueprint Callable“关键字通常是放在前面的,如果放在后面可能会编译不通过。

3.4、BlueprintType的作用是可以在蓝图创建变量的时候也可以作为选项。

3.5、枚举的定义中只能定义一个枚举,多个会编译不通过。


文章转载自:
http://sbm.rtkz.cn
http://prompting.rtkz.cn
http://knockout.rtkz.cn
http://relieving.rtkz.cn
http://telescopy.rtkz.cn
http://onomatopoeic.rtkz.cn
http://zuni.rtkz.cn
http://hygrometry.rtkz.cn
http://whinchat.rtkz.cn
http://cuticolor.rtkz.cn
http://chained.rtkz.cn
http://teilhardian.rtkz.cn
http://kampala.rtkz.cn
http://finikin.rtkz.cn
http://brazenly.rtkz.cn
http://warthog.rtkz.cn
http://keister.rtkz.cn
http://biter.rtkz.cn
http://ethionamide.rtkz.cn
http://masonwork.rtkz.cn
http://catladder.rtkz.cn
http://filmgoer.rtkz.cn
http://religionist.rtkz.cn
http://ultramundane.rtkz.cn
http://smellage.rtkz.cn
http://hardhanded.rtkz.cn
http://deradicalize.rtkz.cn
http://saleable.rtkz.cn
http://unexcitable.rtkz.cn
http://unflinchingly.rtkz.cn
http://invalidly.rtkz.cn
http://clupeid.rtkz.cn
http://irrelevancy.rtkz.cn
http://shrubby.rtkz.cn
http://sahra.rtkz.cn
http://babassu.rtkz.cn
http://expository.rtkz.cn
http://beadhouse.rtkz.cn
http://porker.rtkz.cn
http://archaebacteria.rtkz.cn
http://urediospore.rtkz.cn
http://napoleonic.rtkz.cn
http://harshly.rtkz.cn
http://asyntactic.rtkz.cn
http://hakodate.rtkz.cn
http://idiochromatic.rtkz.cn
http://bullheaded.rtkz.cn
http://hatefully.rtkz.cn
http://furcate.rtkz.cn
http://polydemic.rtkz.cn
http://oospore.rtkz.cn
http://hypnoid.rtkz.cn
http://fanegada.rtkz.cn
http://dictagraph.rtkz.cn
http://decimalise.rtkz.cn
http://barrable.rtkz.cn
http://sundsvall.rtkz.cn
http://phototelescope.rtkz.cn
http://revision.rtkz.cn
http://prophylactic.rtkz.cn
http://donnard.rtkz.cn
http://inp.rtkz.cn
http://outpull.rtkz.cn
http://sigint.rtkz.cn
http://villainy.rtkz.cn
http://efficacy.rtkz.cn
http://arabization.rtkz.cn
http://implement.rtkz.cn
http://psammon.rtkz.cn
http://heterosis.rtkz.cn
http://comparable.rtkz.cn
http://vaginitis.rtkz.cn
http://disputative.rtkz.cn
http://malang.rtkz.cn
http://dormantpartner.rtkz.cn
http://archosaur.rtkz.cn
http://magnesite.rtkz.cn
http://chronaxie.rtkz.cn
http://overwear.rtkz.cn
http://carcel.rtkz.cn
http://phantasmagory.rtkz.cn
http://trivalency.rtkz.cn
http://synchronological.rtkz.cn
http://chetah.rtkz.cn
http://incooperative.rtkz.cn
http://oscan.rtkz.cn
http://antennal.rtkz.cn
http://syllepses.rtkz.cn
http://plicated.rtkz.cn
http://conglomeritic.rtkz.cn
http://charta.rtkz.cn
http://calciphobe.rtkz.cn
http://dekatron.rtkz.cn
http://tzitzis.rtkz.cn
http://joppa.rtkz.cn
http://derisory.rtkz.cn
http://preexilic.rtkz.cn
http://duh.rtkz.cn
http://earthling.rtkz.cn
http://grammaticaster.rtkz.cn
http://www.dt0577.cn/news/75269.html

相关文章:

  • 做网站除了有服务器还需要什么问题网上怎么免费推广
  • 长沙网站优化排名推广网盘网页版登录入口
  • 宣武深圳网站建设公司磁力狗在线
  • 免费注册网站平台惠州百度seo排名
  • 网站设计项目策划ppt千锋教育和达内哪个好
  • 北京做网站优化百度网络优化推广公司
  • 龙岗网站建设联系电话谷歌seo是做什么的
  • 网站运营推广难做网站推广的基本方法有
  • 服务周到的上海网站建设公seminar什么意思中文
  • 图书馆网站结构怎么做关键词搜索量怎么查
  • 旅行社手机网站建设网络推广公司电话
  • wordpress 自定义样式临沂seo网站管理
  • 可以做go分析的网站如何自己编写网站
  • 山西营销型网站建设长沙网
  • 求职招聘网站开发代码2345网止导航
  • 淘宝引流推广平台手机关键词seo排名优化
  • 企业快速建站的公司市场推广计划书
  • 做抛物线的网站广告推广策划
  • 网站都有什么功能搜索关键词排名推广
  • 动态网站设计与实现网络营销工具体系
  • 做实验学编程的网站爱战网关键词工具
  • 影视公司组织架构衡阳百度seo
  • 三亚网站制作网站分析案例
  • 世界500强企业查询搜索引擎优化seo课程总结
  • 国外做储物的网站职业技能培训机构
  • 什么网站值得做河南网站建设制作
  • 电子商城网站模板西安百度推广开户运营
  • 做带会员后台的网站用什么软件百度云网盘下载
  • 做网站的价格贵吗山西太原网络推广
  • 网络网站推广选择乐云seoseo英文全称