提问者:小点点

UE4:将纹理设置为材质(C++)


我对非真实编码是新手,我想把纹理应用到材料上,但我被困在创建:

    UMaterialInterface* Material = CreateDefaultSubobject<UMaterial>(TEXT("MyMaterial"));
    UMaterialInstanceDynamic* DynamicMatierial = UMaterialInstanceDynamic::Create(Material, this);

我得到了这个错误消息:

NewObject不能用于创建默认子对象(在UObject派生类构造函数中),因为它产生不一致的对象名称。 使用ObjectInitializer.createDefaultsuObject<>; 取而代之的是。

此错误来自第二行。 知道为什么会出现这个错误吗? 或者有没有其他简单的方法将纹理应用到材料上?


共1个答案

匿名用户

好了,我解决了这个错误,这一行不能用在构造函数中:

UMaterialInstanceDynamic* DynamicMatierial = UMaterialInstanceDynamic::Create(Material, this);

将其移动到PostLoad或其他生命周期方法

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(ue4|纹理|设置|材质|c++)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?