Unreal Engine 4
http://uengine.ru/forum/

DataTable to array
http://uengine.ru/forum/viewtopic.php?f=19&t=14474
Страница 1 из 2

Автор:  Deus Ex Machina [ 04 авг 2018, 13:34 ]
Заголовок сообщения:  DataTable to array

Изображение
https://yadi.sk/i/JpJQVsWZ3ZtVC2

Код:
static ConstructorHelpers::FObjectFinder<UDataTable>itemDataTable_BP(TEXT("DataTable'/Game/SWorld/Base/ItemsDataTable.ItemsDataTable'"));
itemDataTable = itemDataTable_BP.Object;


получаю краш UE. Что я делаю не так?

Автор:  ue4help [ 04 авг 2018, 18:06 ]
Заголовок сообщения: 

Код:
   static ConstructorHelpers::FObjectFinder<UDataTable>TestTableBP(TEXT("DataTable'/Game/FirstPerson/NewDataTable.NewDataTable'"));

   if (TestTableBP.Succeeded())
   {
      if (TestTableBP.Object)
      {
         UE_LOG(LogFPChar, Warning, TEXT("DataTable - %s"), *TestTableBP.Object->GetName());

         DataTable = TestTableBP.Object;
      }
   }


Попробуй через проверку. А так должно работать. если путь правильный к ассету.

Автор:  Snake [ 04 авг 2018, 18:19 ]
Заголовок сообщения: 

зачем ссылаться на ассет? можно же на него реф переменную получить... и передать куда нужно...
например переменная класса... назначить переменную уже в бп... не будет привязки к ассету в коде.

Автор:  Deus Ex Machina [ 05 авг 2018, 08:09 ]
Заголовок сообщения:  Re:

Snake писал(а):
зачем ссылаться на ассет? можно же на него реф переменную получить... и передать куда нужно...
например переменная класса... назначить переменную уже в бп... не будет привязки к ассету в коде.

БП инициализируется позже.

ue4help писал(а):
Код:
   static ConstructorHelpers::FObjectFinder<UDataTable>TestTableBP(TEXT("DataTable'/Game/FirstPerson/NewDataTable.NewDataTable'"));

   if (TestTableBP.Succeeded())
   {
      if (TestTableBP.Object)
      {
         UE_LOG(LogFPChar, Warning, TEXT("DataTable - %s"), *TestTableBP.Object->GetName());

         DataTable = TestTableBP.Object;
      }
   }


Попробуй через проверку. А так должно работать. если путь правильный к ассету.


с проверкой тоже краш. версия 4.20.

Автор:  Snake [ 05 авг 2018, 09:20 ]
Заголовок сообщения: 

https://forums.unrealengine.com/development-discussion/c-gameplay-programming/41624-bug-editor-crash-on-loading-constructorhelpers-fobjectfinder-udatatable-is-in-blueprintlibrary?p=424214#post424214

https://github.com/tomlooman/EpicSurvivalGameSeries/blob/master/SurvivalGame/Source/SurvivalGame/Private/UI/SHUD.cpp

попробуй
Код:
ConstructorHelpers::FObjectFinder<UDataTable>TestTableBP(TEXT("/Game/FirstPerson/NewDataTable.NewDataTable"));

Автор:  Deus Ex Machina [ 05 авг 2018, 10:22 ]
Заголовок сообщения: 

так же вылет. пока сделал как ты предложил через БП и переменную, но это костыль какой-то

Автор:  Snake [ 05 авг 2018, 10:47 ]
Заголовок сообщения: 

структура где обьявлена для DataTable? в принтах? попробовать структуру в с++ обьявить.

Автор:  Snake [ 05 авг 2018, 10:50 ]
Заголовок сообщения: 

Цитата:
но это костыль какой-то

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

Автор:  Deus Ex Machina [ 05 авг 2018, 14:26 ]
Заголовок сообщения:  Re:

Snake писал(а):
SnakeЦитировать
Snake писал(а):
структура где обьявлена для DataTable? в принтах? попробовать структуру в с++ обьявить.

структура на плюсах.

Код:
static ConstructorHelpers::FObjectFinder<UDataTable>TestTableBP(TEXT("DataTable'/Game/FirstPerson/NewDataTable.NewDataTable'"));

вызываю в gamemode

Snake писал(а):
Цитата:
но это костыль какой-то

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


я не против. но делаю через delay после вызов переменной с этой таблицей, так как в БП на beginplay рефссылку делаю.

Автор:  Snake [ 05 авг 2018, 15:15 ]
Заголовок сообщения: 

а почему в БП гейм мода просто не указать переменную прям на реф? зачем на бегин плей присваивать?
у тебя будет упроперти в гейм моде с уже существующим(если в БП укажешь) указателем на реф...

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/