1.CreateDefaultSubobject必须写在Actor的无参构造函数中,不可写在例如BeginPlay中,否则crash;
被拉到map上的c++类,实际是调用了构造方法进行了构造对象.
所有在类上面声明的组件,如果不在构造方法中使用CreateDefaultSubobject创建组件.则在map上创建的对象也没有此组件,即该组件不会属性中显示.
蓝图指继承的蓝图,均测试组件属性,以及普通属性,
如下
UPROPERTY(BlueprintReadWrite, Category = "测试")
UStaticMeshComponent* Skin;
UPROPERTY(BlueprintReadWrite, Category = "测试")
int TestInt = 20;
组件可见 | 组件可编辑 | 蓝图组件可见 | 蓝图组件可编辑 | 详情可见 | 详情可编辑 | 描述 | |
UPROPERTY() | 是 | 否 | 是 | 否 | 否 | 否 | |
BlueprintReadOnly | 是 | 否 | 是 | 否 | 否 | 否 | 此属性可由蓝图读取,但不能被修改。此说明符与 BlueprintReadWrite 说明符不兼容。 |
| 是 | 否 | 是 | 否 | 否 | 否 | 可从蓝图读取或写入此属性。此说明符与 BlueprintReadOnly 说明符不兼容。 |
| 是 | 是 | 是 | 是 | 组件否/ 普通属性是 | 否 | 说明此属性在所有属性窗口中可见,但无法被编辑。此说明符与"Edit"说明符不兼容。 |
| 是 | 是 | 是 | 是 | 否 | 否 | 说明此属性只在原型的属性窗口中可见,无法被编辑。此说明符与所有"Edit"说明符均不兼容。 |
| 是 | 是 | 是 | 是 | 是 | 是 | 说明此属性可通过属性窗口在原型和实例上进行编辑。此说明符与所有"可见"说明符均不兼容。 |
| 是 | 是 | 是 | 是 | 否 | 否 | 说明此属性可通过属性窗口进行编辑,但只能在原型上进行。此说明符与所有"可见"说明符均不兼容。 |
推荐这么写:
组件属性:VisibleAnywhere
一般属性/引用的其他对象:EditAnywhere