目录
1、C++类最好是Actor类型,发现GameModeBase类型我在场景中没有找到
1、新建Actor的C++类MyGameModeBase.h()
1、新建蓝图类基于MyGameModeBase的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里面显示我们的枚举
中文乱码,所有我们需要转换编码或者让其为英文、数字等等(目前没有制作)