我对非真实编码是新手,我想把纹理应用到材料上,但我被困在创建:
UMaterialInterface* Material = CreateDefaultSubobject<UMaterial>(TEXT("MyMaterial"));
UMaterialInstanceDynamic* DynamicMatierial = UMaterialInstanceDynamic::Create(Material, this);
我得到了这个错误消息:
NewObject不能用于创建默认子对象(在UObject派生类构造函数中),因为它产生不一致的对象名称。 使用ObjectInitializer.createDefaultsuObject<>; 取而代之的是。
此错误来自第二行。 知道为什么会出现这个错误吗? 或者有没有其他简单的方法将纹理应用到材料上?
好了,我解决了这个错误,这一行不能用在构造函数中:
UMaterialInstanceDynamic* DynamicMatierial = UMaterialInstanceDynamic::Create(Material, this);
将其移动到PostLoad或其他生命周期方法