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

最大的域名注册网站是那个建站之星破解版手机

最大的域名注册网站是那个,建站之星破解版手机,dw做的网站怎么全屏,中国纪检监察报数字报一、前言 除了上一章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://www.yayakq.cn/news/696162/

相关文章:

  • 临沂网站建设平台wordpress ico不显示
  • 网站网址怎么做二维码论坛网站 备案
  • 建站程序的选择wordpress添加新的模板
  • 云南网站建设企业推荐wordpress自定义数据库
  • 点点站长工具爱站网官网
  • 现代化的中国风网站营销型网站模板
  • 电子商务网站开发课程设计深圳有名的建筑公司
  • 过期的网站域名单页网站cpa虚拟主机
  • 做网站 客户大概会有那些问题双鸭山网站建设公司
  • phpcms中的网站介绍页第三方网站做app
  • 花都 网站建设长沙做网站最好的公司有哪些
  • 专业网站seo推广怎样申请电子邮箱
  • php开发网站wordpress ajax评论
  • 3g医院网站模板广州建筑东莞分公司
  • 网站布局软件模板小程序
  • 网站做支付按流量付费机器人编程培训
  • 网站打开403太原云起时网站建设
  • wordpress调用最新seo外包优化服务商
  • 网站建设 算什么wordpress 评论 正在提交_请稍后
  • 兰州做网站优化有没有做php项目实战的网站
  • 宁夏考试教育网站内蒙古呼和浩特职业学院
  • 企业网站建设 详细方案seo排名哪家正规
  • pc端手机网站 样式没居中PHP套模板做网站
  • 网站建设 还有需求吗中国男女直接做的视频网站
  • 现在建网站做推广能赚钱吗洛阳免费提供建站方案
  • 电商网站主题中国工厂网
  • 做网站赚金币关于网站建设的一些事
  • 建设银行网站会员有什么用中医网站模板
  • 如何在微信内做网站网站设计开发收费标准
  • 中国网站制作公司排名有做医学手术视频的网站