【UE4 C++ 基础知识】<4> 枚举 Enum、结构体 Struct
枚举
UENUM
宏搭配BlueprintType
可以将枚举暴露给蓝图,不使用的话,仅能在C++使用
//定义一个原生enum class
enum class EMyType
{
Type1,
Type2,
Type3,
};
UENUM(BlueprintType)
enum class ECurrentState : uint8
{
Idle UMETA(DisplayName="空闲"),
Attack UMETA(DisplayName="攻击"),
Roll UMETA(DisplayName="翻滚"),
Dead UMETA(DisplayName="死亡"),
};
UPROPERTY(EditAnywhere,BlueprintReadWrite)
ECurrentState MyCurrentState UMETA(DisplayName = "当前状态");
结构体
BlueprintType
可以将枚举暴露给蓝图
//结构体
USTRUCT(BlueprintType)
struct FMyStruct
{
GENERATED_BODY()
// 暴露给蓝图
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Test Variables")
int32 MyIntegerMemberVariable;
// 不暴露给蓝图
int32 NativeOnlyMemberVariable;
// 蓝图图表无法访问此UObject指针,但是指针对UE4的反射、智能指针和垃圾回收系统可见。
UPROPERTY()
UObject* SafeObjectPointer;
};
UPROPERTY(EditAnywhere,BlueprintReadWrite)
FMyStruct MyStruct;
- 继承
FTableRowBase
之后可以用于DataTable
struct FInventoryItemInfo : public FTableRowBase
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FString ItemName UMETA(DisplayName="名称");
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 index UMETA(DisplayName="编号");
UPROPERTY(EditAnywhere, BlueprintReadWrite)
bool bCanStaking UMETA(DisplayName="可否叠加");
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Count UMETA(DisplayName="数量");
UPROPERTY(EditAnywhere, BlueprintReadWrite)
UTexture2D* Icon UMETA(DisplayName="图标");
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TSubclassOf<AActor> ItemClass;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
USkeletalMesh* SkeletalMesh;
};
UPROPERTY(EditAnywhere,BlueprintReadWrite)
FInventoryItemInfo EmptyItem;
参考
【UE4 C++ 基础知识】<4> 枚举 Enum、结构体 Struct的更多相关文章
- swift:入门知识之枚举和结构体
枚举: swift中的枚举有些类似于类这个概念,它有自己的属性,也可以有自己的方法 枚举中的成员有原始值和实际值之分,原始值用来枚举成员的排序次序,默认从0开始 枚举出来的成员值就是实际值 可以通过t ...
- C# 篇基础知识2——运算符、类型转换、流程控制、枚举、结构体和数组、函数
1.运算符.类型转换 计算某年y某月m某日d是周几的基姆拉尔森公式公式:int week = (d + 2*m + 3*(m + 1)/5 + y + y/4 - y/100 + y/400 + 1) ...
- 【UE4 C++ 基础知识】<11>资源的同步加载与异步加载
同步加载 同步加载会造成进程阻塞. FObjectFinder / FClassFinder 在构造函数加载 ConstructorHelpers::FObjectFinder Constructor ...
- 结构体struct、联合体union、枚举类型enum
1.c语言中的类型 1)内置类型——char,short,int,float,double: 2)用户自定义类型(UDT)——struct结构体,union联合体,enum枚举类型 2.内存对齐 2. ...
- Swift具体解释之六----------------枚举、结构体、类
枚举.结构体.类 注:本文为作者自己总结.过于基础的就不再赘述 ,都是亲自測试的结果.如有错误或者遗漏的地方.欢迎指正,一起学习. 1.枚举 枚举是用来定义一组通用类型的一组相关值 ,关键字enum ...
- Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别
Swift有许多种存储数据方式,你可以用枚举(enums),元组(tuples),结构体(structs),类(classes),在这篇文章中我们将比较枚举.元组.结构体之间区别,首先从最简单的开始- ...
- c#之枚举,结构体
1.枚举 2.结构体 例子1: using System; using System.Collections.Generic; using System.Linq; using System.Text ...
- swift学习笔记之---数组、字典、枚举、结构体
1.数组-Array let types = ["none","warning","error"] //省略类型的数组声明 let menb ...
- swift 定义枚举和结构体 及使用
//定义枚举 enum MapDirection { case North case South case East case West func simpleDescription() -> ...
- 结构体struct知识
2022-10-12 08:52:03 // 结构体知识#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<m ...
随机推荐
- Linux下cat命令的使用
1.普通用法-->查看文件内容 cat file_name 查看文件时的相关参数: 1.cat f1.txt,查看f1.txt文件的内容. 2.cat -n f1.txt,查看f1.txt文件的 ...
- go 发送post请求(键值对、上传文件、上传zip)
一.post请求的Content-Type为键值对 1.PostForm方式 package main import ( "net/http" "net/url" ...
- 随机生成uuid序号
function guid() { function S4() { return (((1+Math.random())*0x10000)|0).toString(16).substring(1); ...
- [转]SpringBoot系列——花里胡哨的banner.txt
Creating ASCII Text Banners from the Linux Command Line In Ubuntu, Debian, Linux Mint etc. $ sudo ap ...
- CodeForce-792B Counting-out Rhyme(模拟)
Counting-out Rhyme CodeForces - 792B 题意: n 个孩子在玩一个游戏. 孩子们站成一圈,按照顺时针顺序分别被标号为 1 到 n.开始游戏时,第一个孩子成为领导. 游 ...
- dede5.7 给栏目添加上缩略图
如我们一个栏目列表都用缩略图来表示,而不仅仅只是文字,如果没有这项功能会非常麻烦,网上有很多这方面的资料,但是都试过了有很多问题,自己研究一下,测试基本通过.新加字段 typeimg后台执行SQL: ...
- Charles安装https证书
Charles抓取https的包,出现unknow,需要安装https证书.
- appium+python自动化:获取元素属性get_attribute
使用get_attribute()获取元素属性,括号里应该填写什么? 查看appium源码 如果是获取resource-id,填写resourceId self.driver.find_element ...
- CF280D-k-Maximum Subsequence Sum【模拟费用流,线段树】
正题 题目链接:https://www.luogu.com.cn/problem/CF280D 题目大意 一个长度为\(n\)的序列,\(m\)次操作 修改一个数 询问一个区间中选出\(k\)段不交子 ...
- 使用 Vue 脚手架,为什么要学 webpack?
先问大家一个很简单的问题: vue init webpack prjectName 与 vue create projectName 有什么区别呢? 它们是 Vue-cli 2 和 Vue-cli3 ...