У меня есть пользовательский класс объектов Unreal Engine 4 (пользовательский экземпляр материала), а также соответствующие Factory и Actions_Base. Я пытаюсь реализовать следующую функциональность:
Пользовательское поле на панели сведений, которое позволяет мне выбрать UTexture2D. Это будет храниться в элементе TArray пользовательского свойства экземпляра материала (который в настоящее время помечен как UPROPERTY (EditAnywhere). Как сделать так, чтобы это отображалось на панели сведений?
UPROPERTY(EditDefaultsOnly)
а также
UPROPERTY(EditAnywhere)
Должны ли оба сделать вашу переменную появившейся на панели подробностей BP. (При условии, что ваша переменная защищена или общедоступна)
Если вы хотите выбрать UTexture2D *, то все, что вам нужно сделать, это выбрать один из вышеперечисленных, скажем, первый:
UPROPERTY(EditDefaultsOnly)
class UTexture2D* MyTexture;
А затем используйте это значение в функции, чтобы добавить его в массив по вашему выбору.
Кроме того, вы можете представить сам массив для чертежей, выполнив то же самое с переменной массива:
UPROPERTY(EditDefaultsOnly)
TArray<class UTexture2D*> MyTextureArray;
Оба этих спецификатора заставили бы вашу переменную появиться на панели сведений самого объекта, а не какого-либо выбранного дочернего элемента проекта, при условии, что вы скомпилировали свой код и ваш проект является дочерним классом вашего класса C ++.
Других решений пока нет …