UE4使用C++创建枚举变量适用于C++与蓝图
这个月勉勉强强才写了一篇,都快月底了,都还没有写第二篇博客的冲动,证明这个月确实收获甚少,有点状态不佳,懒毒入骨啊。刚刚看了这个月其实已经写了三篇,然而事实是这博客还有另外一个人也在更新文章,博主并没有人格分裂,呵呵,好冷。。。
最近迷迷糊糊地在用UE4写一些功能,本来也没在意一个简单的枚举变量有多麻烦,然后自己确实也因为这个东西打断一点工作时间。
如果只是在C++中使用的话,都还没什么问题,跟平常的定义一样就行,如果要在蓝图中使用的话,需要用UPROPERTY标记他可在蓝图中编辑调用,然后,他却提醒我需声明类型为UENUM/USTRUCT/等确定类型,好吧,一步一步跟着报错提示来...我也不挨着写了,看看实现的具体代码,其实很简单
1.在.h文件中声明enum,并在class里声明一个enum的变量
#pragma once #include "GameFramework/PlayerController.h"
#include "MyPlayerController.generated.h" //需要标记枚举,并设置蓝图类型
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里就会有我们开始设置的鸟瞰模式和行走模式
UE4使用C++创建枚举变量适用于C++与蓝图的更多相关文章
- UE4使用widget创建UI界面播放视频
我的目的非常简单,点击按钮,播放或暂停场景中的视频 1.准备了一个mp4视频资源,为视频资源创建了一个Media Texture,在Media Player中选择导入进来的视频资源,再为Media T ...
- UE4 Hello World 创建第一个UE4工程
首先先熟悉几个UE4常用的类 AGameMode(控制整个项目的逻辑) The GameMode defines the game being played. It governs thegame r ...
- ue4使用SceneCapture2D创建小地图示例 蓝图
做C++项目的时候遇到了一个小地图的问题,从网上找了个蓝图的思路,转载一下. 原文:https://www.engineworld.cn/thread-3835-1-1.html 本文使用ue4提供的 ...
- maven创建子项目(适用于多模块管理项目)
在eclipse或者myeclipse下构建maven项目,该项目由多个子模块组成. 1.创建一个父项目 NEW -->project-->maven-->maven Project ...
- [UE4]Make Array创建数组,而不是定义数组
当不想新建一个数组对象的时候,就可以使用“Make Array”创建一个数组
- [How to]使用自定义cell进行tableview的创建,适用于cell样式不发生变化的情况。
1.简介 在tableview中又默认的cell格式,其中组织如下: <截取自官网文档> 最终的在页面上默认的cell也只能像上述那样的显示效果,如果这种要是无法满足我们的界面要求,那么我 ...
- [UE4]运行时创建Actor
- UE4从零搭建CF游戏关卡(蓝图篇)
一 往关卡中放置物体 二 Static Mesh 和 BSP 从今天开始我们要建立一个类似CF游戏的场景,不写一句代码,纯蓝图实现. 三 英语学习 今天早上开会,经理说了一件让我震惊的事情,她说最近大 ...
- [UE4]事件代理,无输出参数,蓝图中不需要绑定
.h UFUNCTION(BlueprintImplementableEvent, meta=(DisplayName = "LoginSuccess")) void LoginS ...
随机推荐
- break用法
break用于循环,则是终止循环 break用于switch,则终止switch break不能用于if.当break用于if语句,但是终止的是if的外部循环 break 只能终止最近的循环
- sssp-springmvc+spring+spring-data-jpa增删改查
环境:IDE:eclipse.jdk1.7.mysql5.7.maven 项目结构图 上面目录结构你可以自己创建 搭建框架 首先加入maven依赖包以及相关插件 <dependencies> ...
- h5的localStorage和sessionStorage
今天做了个首页的弹窗,要求是打开时显示弹窗,然后点击关闭按钮时弹窗关闭,然后点击不再显示,之后再刷新就不会有弹窗,总结一下需求. 1.弹窗显示隐藏 这个很容易,我们可以用display:none和di ...
- SignalR Progress
Server public class ServerHub : Hub { public async Task<string> ALongTimeTask() { var p = new ...
- js保留两位小数数字
/* * @descript: 保留两位小数,如果小数点大于两位小数,就向上取值保留两位小数<br/> * @time 2016-07-13 */function mathCeil(num ...
- Microsoft Visual Studio 2017 编译最新版 libuv 1.x 并且生成 LIB 和 DLL 两种模式
以为昨天晚上编译通过就可以了,哪知道,早上编译DLL的一车的报错 今天开始逐个解决,终于把引用的问题一亿解决了,具体步骤如下 1 在 Windows 平台下编译出错,显示导出未定义,打开 uv-win ...
- RDO Stack: No valid host was found. There are not enough hosts available.
Issue: When you launch an instance in Newton, you may find that the instance cannot be started due t ...
- User-Agent-Switcher和fiddler
浏览器模拟器(可以模拟各种浏览器效果,浏览器中看手机显示的效果) http://chromecj.com/web-development/2014-09/70.html User-Agent-Swit ...
- git 同步勾子
#!/bin/bash git --git-dir=/var/www/domain/.git --work-tree=/var/www/domain pull uwsgi --reload /tmp/ ...
- Java中常用缓存Cache机制的实现
缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例. 这样做可以减少系统开销,提高系统效率. 缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件 ...