BlueprintReadOnly,让该变量可在蓝图中访问。新建一个继承AActor的C++类CustomActor,添加int变量TestProperty,并给他加上BlueprintReadOnly标记:
这样,就能在蓝图中引用该变量。
BlueprintReadWrite,让该变量可以在蓝图中使用以及修改。给TestProperty变量添加BlueprintReadWrite标记:
就可以在蓝图中对变量进行读写操作了。
Category,对变量在蓝图中分组,用"|"进行分层级操作:
EditAnywhere,该属性可以在继承自该类的蓝图类的详情面板、该类在Map中的实例的详情面板中编辑初始值:
EditDefaultsOnly,该属性可以在继承自该类的蓝图类内的详情面板中编辑初始值:
EditInstanceOnly,该属性可在Map中的该类的实例的详情面板中编辑初始值:
VisibleAnywhere、VisibleDefaultsOnly、VisibleInstanceOnly和上面3位功能基本上一致,只是他们修饰的属性只能看,不能编辑:
EditFixedSize,可以禁止蓝图中修改数组的长度:
声明一个int类型的数组,它默认是可以在蓝图中调节长度的:
给他加上EditFixedSize:
就不能在蓝图中修改初始大小了。
AdvancedDisplay,将该属性展示到细节面板的高级项内:
meta DisplayName,给当前属性起一个在蓝图中的别名:
这样,在蓝图中通过"测试属性"就能对该属性进行操作。
meta UIMin, UIMax,当在蓝图的属性面板左右拖拽,改动该属性的值时,限制该值的大小:
但是直接在输入框内修改的话,是不进行限制的:
meta ClampMin, ClampMax,在蓝图属性面板,不管是拖拽值操作,还是直接输入,都会对该属性值进行限制:
输入-100后,面板显示为5。
meta, EditCondition,通过条件判断来决定该属性在面板中是否可编辑:
可以看到,当判断条件为true时,下面的属性才为可编辑状态;否则就是灰色禁止编辑状态。但是不会限制在代码或蓝图中对他动态修改。