UE4: Установить текстуру на материал (C ++) - PullRequest
0 голосов
/ 01 августа 2020

Я новичок в нереальном кодировании, я хочу применить текстуру к материалу, но я застрял с созданием:

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

У меня это сообщение об ошибке:

NewObject с пустым именем не может использоваться для создания подобъектов по умолчанию (внутри конструктора производного класса UObject), поскольку он создает несовместимые имена объектов. Вместо этого используйте ObjectInitializer.CreateDefaultSuobject <>.

Эта ошибка возникает из второй строки. Есть идеи, почему возникает эта ошибка? Или есть другой простой способ наложить текстуру на материал?

Ответы [ 2 ]

0 голосов
/ 02 августа 2020

После 4 дней поиска я нашел правильный ответ на мою проблему с текстурой в этом посте:

https://forums.unrealengine.com/development-discussion/c-gameplay-programming/46406-how-to-initialize-umaterial-and-assign-texture-to-it#post466817

0 голосов
/ 01 августа 2020

Хорошо, я решил эту ошибку, эту строку нельзя использовать в конструкторе:

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

Переместите в PostLoad или другой метод жизненного цикла

...