UE4C++创建枚举

目录

一、目的

1、想:UE4使用C++创建枚举变量适用于C++与蓝图

二、参考

1、UE4使用C++创建枚举变量适用于C++与蓝图

三、注意

1、C++类最好是Actor类型,发现GameModeBase类型我在场景中没有找到

四、操作

1、新建Actor的C++类MyGameModeBase.h()

1、MyGameModeBase.h

1、MyGameModeBase.cpp

扫描二维码关注公众号,回复: 12502883 查看本文章

1、新建蓝图类基于MyGameModeBase的BP_MyGameModeBase

1、BP_MyGameModeBase里面显示我们的枚举


 


一、目的

1、想:UE4使用C++创建枚举变量适用于C++与蓝图

二、参考

1、UE4使用C++创建枚举变量适用于C++与蓝图

https://www.cnblogs.com/liang123/p/6325860.html

  • 总结:good:能够实现

三、注意

1、C++类最好是Actor类型,发现GameModeBase类型我在场景中没有找到

四、操作

1、新建Actor的C++类MyGameModeBase.h()

1、MyGameModeBase.h

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

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "MyGameModeBase.generated.h"

UENUM(BlueprintType)
enum class MyGameState:uint8 //设置uint8类型
{
	//E_SCAN UMETA(DisplayName = "鸟瞰模式"),//想要显示中文 需要将编码格式设置为utf-8
	//E_WALK UMETA(DisplayName = "行走模式"),//DisPlayName表示显示的名称,在蓝图中可见

	游戏状态 STANDBY:待机 ,WAIT:等待 ,PLAY:玩 ,SUMMARY:结算,VIDEO:播放视频
	//var em_gameState : Object = { STANDBY:0,WAIT : 1,PLAY : 2,SUMMARY : 3,FAIL : 4,VIDEO : 5 };

	STANDBY  UMETA(DisplayName = "STANDBY"),			//想要显示中文 需要将编码格式设置为utf-8
	WAIT UMETA(DisplayName = "WAIT"),						//DisPlayName表示显示的名称,在蓝图中可见
	PLAY UMETA(DisplayName = "PLAY"),
	SUMMARY UMETA(DisplayName = "SUMMARY"),
	FAIL UMETA(DisplayName = "FAIL"),
	VIDEO UMETA(DisplayName = "VIDEO")
};

/**
 * 
 */
UCLASS()
class RSXB_API AMyGameModeBase : public AGameModeBase
{
	GENERATED_BODY()

public:
	AMyGameModeBase();

	/** 控制状态的变量 */
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MyGameState)
		MyGameState myGameState;	
};

1、MyGameModeBase.cpp

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

#include "MyGameModeBase.h"

AMyGameModeBase::AMyGameModeBase()
{
	myGameState = MyGameState::STANDBY;
}

1、新建蓝图类基于MyGameModeBase的BP_MyGameModeBase

1、BP_MyGameModeBase里面显示我们的枚举

中文乱码,所有我们需要转换编码或者让其为英文、数字等等(目前没有制作)

猜你喜欢

转载自blog.csdn.net/qq_40544338/article/details/109331069