14赞
272
当前位置:  开发笔记 > 编程语言 > 正文

UENUM的基本使用

在UE4虽然系统默认提供的枚举已经很多了,但是做项目的过程中始终会遇到自定义枚举的时候。既可以考虑用蓝图,但更为稳妥的方式是考虑使用C++。下面将带领大家了解在C++中定义和使用基本的

在UE4虽然系统默认提供的枚举已经很多了,但是做项目的过程中始终会遇到自定义枚举的时候。既可以考虑用蓝图,但更为稳妥的方式是考虑使用C++。

下面将带领大家了解在C++中定义和使用基本的枚举类型,也即UENUM

主要代码如下(为了枚举不冲突,所以推荐使用enum class),官方参考

ABasicStructure.h

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "BasicStructure.generated.h"

UENUM(BlueprintType)
enum class EMyEnum : uint8
{
	VE_Dance    UMETA(DisplayName = "Dance"),
	VE_Rain     UMETA(DisplayName = "Rain"),
	VE_Song     UMETA(DisplayName = "Song")
};






UCLASS()
class CPP_API ABasicStructure : public AActor
{
	GENERATED_BODY()
	
public:	
	// Sets default values for this actor's properties
	ABasicStructure();

protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:	
	// Called every frame
	virtual void Tick(float DeltaTime) override;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Mantra | Tools")
		EMyEnum CurrentEnum;
};
ABasicStructure.cpp

// Fill out your copyright notice in the Description page of Project Settings.

#include "BasicStructure.h"


// Sets default values
ABasicStructure::ABasicStructure()
{
 	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;

	CurrentEnum = EMyEnum::VE_Rain;

}

// Called when the game starts or when spawned
void ABasicStructure::BeginPlay()
{
	Super::BeginPlay();

	switch (CurrentEnum)
	{
	case EMyEnum::VE_Dance:
		UE_LOG(LogTemp, Warning, TEXT("VE_Dance"));
		break;
	case EMyEnum::VE_Rain:
		UE_LOG(LogTemp, Warning, TEXT("VE_Rain"));
		break;
	case EMyEnum::VE_Song:
		UE_LOG(LogTemp, Warning, TEXT("VE_Song"));
		break;
	default:
		break;
	}
}

// Called every frame
void ABasicStructure::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

}





推荐阅读
author-avatar
小太郎在路上_439
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有