Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** Так определяется структурный тип в UE4 */
- USTRUCT()
- struct FMyStruct
- {
- GENERATED_USTRUCT_BODY()
- public:
- UPROPERTY()
- FString StrValue;
- UPROPERTY()
- int32 IntValue;
- };
- /////////////////////////////
- void Start()
- {
- FMyStruct my_struct; /** инстанс */
- UStruct* st = my_struct.StaticStruct(); /** статические данные о структуре */
- TArray<FString> Fields; /** Будущий массив строк (сериализованных пар ключ-значение) */
- for (TFieldIterator<const UProperty> PropIt(Struct); PropIt; ++PropIt) /** итерация по этим данным (по properties структуры - полям рядом с которыми макрос UPROPERTY() */
- {
- FString FieldName = PropIt->GetName();
- FString Data = Serialize(*PropIt, PropIt->ContainerPtrToValuePtr<void>(&my_struct)); /** Получение данных из инстанса структуры (Serialize - некая функция сериализации, не особо важно что там) */
- Fields.Add(FieldName + TEXT(": ") + Data);
- }
- FString serialized_struct = FString::Printf(TEXT("{%s}"), *FString::Join(Fields, TEXT(", "))); /** сохранение в JSON-подобную строку */
- }
Advertisement
Add Comment
Please, Sign In to add comment