UE4使⽤C++创建枚举变量适⽤于C++与蓝图
这个⽉勉勉强强才写了⼀篇,都快⽉底了,都还没有写第⼆篇博客的冲动,证明这个⽉确实收获甚少,有点状态不佳,懒毒⼊⾻啊。刚刚看了这个⽉其实已经写了三篇,然⽽事实是这博客还有另外⼀个⼈也在更新⽂章,博主并没有⼈格分裂,呵呵,好冷。。。
最近迷迷糊糊地在⽤UE4写⼀些功能,本来也没在意⼀个简单的枚举变量有多⿇烦,然后⾃⼰确实也因为这个东西打断⼀点⼯作时间。
如果只是在C++中使⽤的话,都还没什么问题,跟平常的定义⼀样就⾏,如果要在蓝图中使⽤的话,需要⽤UPROPERTY标记他可在蓝图中编辑调⽤,然后,他却提醒我需声明类型为UENUM/USTRUCT/等确定类型,好吧,⼀步⼀步跟着报错提⽰来...我也不挨着写了,看看实现的具体代码,其实很简单
1.在.h⽂件中声明enum,并在class⾥声明⼀个enum的变量
#pragma once
#include "GameFramework/PlayerController.h"
#include "ated.h"
enum函数
//需要标记枚举,并设置蓝图类型
UENUM(BlueprintType)
enum class ControllerState:uint8 //设置uint8类型
{
E_SCAN UMETA(DisplayName = "鸟瞰模式"),//想要显⽰中⽂需要将编码格式设置为utf-8
E_WALK UMETA(DisplayName = "⾏⾛模式"),//DisPlayName表⽰显⽰的名称,在蓝图中可见
};
/**
*
*/
UCLASS()
class MYPROJECT_API AMyPlayerController : public APlayerController
{
GENERATED_BODY()
public:
AMyPlayerController();
/** 控制状态的变量 */
UPROPERTY(EditAnywhere,BlueprintReadWrite,Category=Controller)
ControllerState CtrlState;
};
2.在C++中调⽤枚举变量,这⾥是构造函数中设置了⼀个初始值
#include "MyProject.h"
#include "MyPlayerController.h"
AMyPlayerController::AMyPlayerController()
{
CtrlState = ControllerState::E_SCAN;
}
3.在蓝图中调⽤枚举变量,CtrlState⾥就会有我们开始设置的鸟瞰模式和⾏⾛模式
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论