Unreal EngineФорумПрограммирование

пару вопросов по UE C++

#0
20:14, 2 апр 2024

толи плохо искал, толи не знаю что искать, не нашел ответа.
1) можно ли получить ссылку на конкретный блюпринт  (DataAsset) в с++?
1.1) можно ли сделать uproperty() для конкретного блюпринт (DataAsset)  ?
если  наследует от  (С++)PrimaryDataAsset->(BP)DA_BaseItem->(BP)DA_Props, и нужен конкретно (BP)DA_Props.
1.2) можно ли создать uproperty() для созданных в едиторе структур\enum?

#1
23:27, 2 апр 2024

jora-Ph
> можно ли получить ссылку на конкретный блюпринт  (DataAsset) в с++?
как понять ссылку на дата ассет(файл) ? Его имя, путь или что ?
https://forums.unrealengine.com/t/get-assets-by-class-how-to-find… lass/687899/5
И получить по каким данным ?
Get All Loaded Assets

jora-Ph
> толи не знаю что искать
Зачем тебе вообще это всё ?

#2
4:08, 3 апр 2024

endeavour_pr
> как понять ссылку на дата ассет(файл) ? Его имя, путь или что ?

оу, это я свои нубские мысля не отформатировал... под ссылкой я имею ввиду блюпринтовый reference? указатель? переменную в которой хранится нужный объект.
endeavour_pr
> Зачем тебе вообще это всё ?

для общего развития...

решил облагородить редактирование инстансов, в едиторе, не рантайм,  дабы при создании предмета в деталях выводились только нужные  параметры, а остальное скрывалось, в блюпринтах такого не завезли.
пока превозмогал в с++ подумал, что было бы хорошо указывать не с++ классы,  а указывать их "блюпринт" версию, влажные мечты так сказать, остальное побочные вопросы .

#3
4:27, 3 апр 2024

jora-Ph
>указывать не с++ классы,  а указывать их "блюпринт" версию
Тебе походу TSubclassOf надо. Напрямую доступ к блюпринтовым переменным и функциям не даст, но сможешь не на прямую БП класс контролировать из срр

#4
7:50, 3 апр 2024

Tony Lynx
это понятно, с обработкой С++ классов проблем пока нет.

#5
9:44, 3 апр 2024

jora-Ph
> решил облагородить редактирование инстансов, в едиторе, не рантайм
т.е. в рантайме едитора

#6
17:28, 3 апр 2024

jora-Ph
> можно ли получить ссылку на конкретный блюпринт  (DataAsset) в с++?
Это можно сделать при помощи ConstructorHelpers::FObjectFinder
Пример

PlayerWeaponTable = ConstructorHelpers::FObjectFinder<UDataTable>(TEXT("/Game/Config/DT_PlayerWeapon")).Object;

но есть нюансы, твой блюпринт должен быть от наследован от нативного класса, к которому "привязаны" интересующие тебя свойства и методы https://docs.unrealengine.com/4.27/en-US/ProgrammingAndScripting/… e/Properties/

#7
18:13, 4 апр 2024

totoro
спасибо, пригодится, но не то... я вроде даже пытался использовать FObjectFinder но что то пошло не так.
использую meta AllowedClasses\EditCondition фильтра и вывода переменных.

полагаю вопрос закрыт.

ибо я хотел создать в с++ переменную с типом конкретного блюпринта, у которого нет своего  с++ класса, или он просто Actor, с доступом к его  функциям и переменным.

хотя мне не ясно почему, файл есть, путь есть.
еще больше мне не понятно почему две одинаковых struct\enum из с++ и BP  не совместимы между собой, они же одинаковые!

Unreal EngineФорумПрограммирование

Тема в архиве.