UE5 C++(六)— 枚举UENUM、结构体USTRUCT和补充属性说明符

文章目录

  • 枚举(ENUM)
    • 第一种方式
    • 第二种方式
  • 结构体(USTRUCT)
  • 补充属性说明符(ExposeOnSoawn)
  • 结构体创建数据表格

枚举(ENUM)

第一种方式

定义枚举

UENUM(BlueprintType)
namespace MyEnumType
{enum MyCustomType{Type1, // 或者使用带 DisplayName别名 ==> Enum1 UMETA(DisplayName = "Type1"),Type2,Type3,Type4,};
}

调用枚举,使用TEnumAsByte模板
在这里插入图片描述

//在蓝图中声明
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyEnumType")
TEnumAsByte<MyEnumType::MyCustomType> MyEnumType;

在这里插入图片描述

第二种方式

UENUM(BlueprintType)
enum class MyEnumType2 : uint8
{Enum1 UMETA(DisplayName = "Type1"),Enum2 UMETA(DisplayName = "Type2"),Enum3 UMETA(DisplayName = "Type3"),Enum4 UMETA(DisplayName = "Type4"),
};
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyEnumType2")
TEnumAsByte<MyEnumType2> MyEnumType2;

在这里插入图片描述
在这里插入图片描述

结构体(USTRUCT)

定义结构体
注意,定义结构体名称前要加F前缀,不然编译不通过。

USTRUCT(BlueprintType)
struct FMyCustomStruct
{GENERATED_USTRUCT_BODY()UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStructType")FString ID;UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStructType")FString Name;UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStructType")int32 Age;UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStructType")float Height;UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStructType")bool IsMan;
};

声明结构体

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyCustomStruct")FMyCustomStruct MyCustomStruct;

编译后在蓝图中可以看到
在这里插入图片描述

也可以使用它
在这里插入图片描述

补充属性说明符(ExposeOnSoawn)

蓝图生成时暴露变量,方便赋予变量的初始值

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyExposeOnSpawn", meta = (ExposeOnSpawn = "ExposeOnSpawnValue"))float ExposeOnSpawnValue;

编译后,打开关卡蓝图

在这里插入图片描述

结构体创建数据表格

先创建一个结构体数据类

#include "Engine/DataTable.h"USTRUCT(BlueprintType)
struct FDateTableStruct:public FTableRowBase
{GENERATED_USTRUCT_BODY()UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "DateTableStruct")FString ID;UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "DateTableStruct")FString Name;UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "DateTableStruct")int32 Age;
};

编译之后,创建一个关联的信息表格,保存为.csv格式
在这里插入图片描述
然后拖到项目文件目录中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/285684.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023.12.18Linux部署项目

动态查看最新内容 防火墙不能杀毒&#xff0c;只能限制服务器的哪些端口可以被访问 哪些主机可以访问本服务器 防火墙开启之后默认封闭所有端口&#xff0c;自己再用策略声明把哪些端口放开 ksh jdk&#xff1a;二进制包 MySQL&#xff1a;rpm包 Redis&#xff1a;源码…

RTLS 解决现实场景的25种问题

实时定位系统 (RTLS) 可以改变我们理解周围世界的方式。 想想你有多少次停下来寻找某样东西。您可能正在寻找钥匙、电话、鞋子、零食、背包、办公室中的重要文件、停车场中的车辆&#xff0c;或者可能正在寻找街道标志或地标来引导自己。我们大多数人每天都会希望更好地了解我…

7.1组合及其优化(LC77-M)

算法&#xff1a; 第一次取1 2 3 4 取1时&#xff0c;留下234 取2时&#xff0c;留下34 取3时&#xff0c;留下4 取4时&#xff0c;留下null 接着继续取234中的2&#xff0c;与1组合&#xff0c;得到12 取234中的3&#xff0c;与1组合&#xff0c;得到13 取234中的4&#…

ElasticSearch详细搭建以及常见错误high disk watermark [ES系列] - 第497篇

导读 历史文章&#xff08;文章累计490&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六…

PHP使用symfony/process来实现多进程请求url或执行多个php文件

1、什么是symfony/process&#xff1f; Symfony/Process是Symfony框架中的一个组件&#xff0c;用于处理和管理子进程。它提供了一个简单易用的API&#xff0c;可以执行外部命令&#xff0c;并与子进程进行交互。 Symfony/Process可以执行各种操作系统命令&#xff0c;如运行…

Amazon CodeWhisperer 在 vscode 的应用

文章作者:旧花阴 CodeWhisperer 是一款可以帮助程序员更快、更安全地编写代码的工具&#xff0c;可以在他们的开发环境中实时提供代码建议和推荐。亚马逊云科技发布的这款代码生成工具 CodeWhisperer 最大的优势就是对于个人用户免费。以在 vscode 为例&#xff0c;演示安装过程…

百度地图添加坐标点,并返回坐标信息

1、创建地图容器 在mounted中初始化地图、鼠标绘制工具和添加鼠标监听事件 vue data中添加地图和绘制工具对象 2、添加初始化化地图方法 initMap(longitude, latitude) {let that thisthat.map new BMapGL.Map("container");// 创建地图实例if (longitude null ||…

使用SQL和Python处理Excel文件数据

目录 一、引言 二、使用SQL查询Excel文件数据 1、导入必要的库 2、创建数据库连接 3、读取Excel文件数据 4、将数据写入数据库 5、使用SQL查询数据 三、使用Python读取和处理Excel文件数据 1、导入必要的库 2、读取Excel文件数据 3、数据处理和分析 4. 将数据可视化…

【C盘清理】Jetbrains全家桶(PyCharm、Clion……)更改 IDE 特定文件(配置、缓存、插件、日志等)存储位置

文章目录 一、官网说明二、更改 IDE 目录的位置1. 转到“帮助”|“编辑自定义属性”2. 各文件位置3. 以PyCharm系统目录为例4. 修改idea.properties 三、清理旧的 IDE 目录 一、官网说明 IDE 使用的目录官网说明 二、更改 IDE 目录的位置 默认情况下&#xff0c;PyCharm 将每…

【DOM笔记一】什么是DOM?获取元素的方法有哪些?什么是事件以及事件的三要素包括哪些?

文章目录 1 引入1.1 JS组成1.2 API 和 Web API1.3 DOM1.4 DOM树 2 获取元素2.1 通过ID获取2.2 通过标签名获取2.3 通过类名的方法获取2.4 获取特殊元素 3 事件基础 1 引入 1.1 JS组成 JS基础 阶段&#xff1a;ECMAScript 只是标准规定的基本语法&#xff0c;做不了常用的网页…

GaussDB数据库表创建行访问控制策略

目录 一、前言 二、GaussDB中的行访问控制 1、CREATE ROW LEVEL SECURITY POLICY语法 2、ALTER ROW LEVEL SECURITY POLICY语法 3、ROW LEVEL SECURITY策略与适配SQL语法关系 三、GaussDB中的行访问控制策略示例 1、实现GaussDB行访问控制的一般步骤 2、行访问控制策略…

利用canvas封装录像时间轴拖动(uniapp),封装上传uniapp插件市场

gitee项目地址,项目是一个空项目,其中包含了封装的插件,自己阅读,由于利用了canvas所以在使用中暂不支持.nvue,待优化; 项目也是借鉴了github上的一个项目,timeline-canvas,​​​​​​​ ​​​​​​​