枚举变量有什么用_如何使用枚举值,让其他属性变得不可以编辑

fb0b6793355b89c145cc29b4b6ddb1e9.png

在解决这个问题之前,首先我们应该知道。

怎么用一个bool值让其他属性不可编辑~~

09cd19b99b7a514871f83043c92b02f3.png

其中BlueprintReadWrite可以让蓝图生成set方法和get方法

EditAnywhere可以让蓝图可编辑

Category可以让这个变量放在BUFF目录下面,方便搜索。

meta也就是元数据啦

里面的EditCondition可以传进去一个布尔值,让蓝图变量变得灰色不可编辑。

33b7ffd2eca9da3aaf5cb85dc0bcc3b2.png

就像最下面的那个一样。

注意:

引号要加上,里面就是bool值变量的变量名了

做完了上面那一步已经就可以了,但是要追求完美的话可以用枚举来控制它。

我们首先把之前的删掉。变成

b8251e1add0a9c053142dd8370981b3c.png

然后在我们的类的public:下面输入

ad16da3151473d7a0868295303c25ae2.png

这个CanEditChange函数就专门用来搞编辑器的。

问,

为什么要加#if WITH_EDITOR和#endif呢?

我们的这些代码不需要打包以后存在,所以这样写就是代表仅编辑器模式下的代码。

CanEditChange函数从一个父类里面重载。UDataObject这个类。

不过咱们通常不需要继承它也行。

override意思是重载的意思。说明这是一个父类拥有的函数。

写完之后,我们找到cpp文件,里面加上:

46ab3d4508c192c8f2cb8ae3cc6a49a9.png

UBUFF_Damage是我的类型

Damage是我的枚举类型

E_CustomDamage是枚举里面的一个成员

ImpactBUFF_Name是我需要禁止编辑的类的属性。

其他的不需要动,给你们看看我的枚举:

0c8595725e9e37f420f9681e43d64601.png

只要加上上面那两个特殊的步骤就可以通过枚举来控制变量的可编辑啦!

参考:

1:http://benhumphreys.ca/unreal/uproperty-edit-condition-can-edit-change/

2:https://note.youdao.com/ynoteshare1/index.html?id=ece6e1e0e63f670f4cd882aeeef16fb5&type=note

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值