Unreal Engine 4 http://uengine.ru/forum/ |
|
USTRUCT в UFUNCTION http://uengine.ru/forum/viewtopic.php?f=19&t=14133 |
Страница 1 из 2 |
Автор: | Agny [ 22 июл 2018, 10:48 ] |
Заголовок сообщения: | USTRUCT в UFUNCTION |
Как правильно сделать что бы функция выдавала структуру на выходе? Что бы в Блюпринтах на вход подавать одно, а на выходе можно было получить несколько значений, а не одно. Нашел в интернете что то близкое: Но не то что мне хотелось бы. |
Автор: | Snake [ 22 июл 2018, 17:15 ] |
Заголовок сообщения: | |
Код: USTRUCT(BlueprintType)
struct MyStruct { GENERATED_USTRUCT_BODY() MyStruct() {} UPROPERTY(EditAnywhere, BlueprintReadWrite) float A; UPROPERTY(EditAnywhere, BlueprintReadWrite) float B; } UFUNCTION(BlueprintCallable) MyStruct MyFunc(float inA, float inB) { OutStruct = MyStruct(); OutStruct.A = inA; OutStruct.B = inB; return OutStruct; } |
Автор: | Agny [ 23 июл 2018, 14:25 ] |
Заголовок сообщения: | |
Snake, не работает. Выдает: Код: Unrecognized type 'MyStruct' - type must be a UCLASS, USTRUCT or UENUM
|
Автор: | Snake [ 23 июл 2018, 15:32 ] |
Заголовок сообщения: | |
структура в с++ обьявлена по аналогу выше? хедер с обьявленой структурой в шапке присутствует? А структуры обьявленые в редакторе, в с++ можно забыть о них, с++ ничего не знает из того что обьявлено в редакторе, может и есть какой-то трюк получить их из ассета структуру, но зачем если ее можно на плюсах обявить. |
Автор: | Snake [ 23 июл 2018, 15:48 ] |
Заголовок сообщения: | |
и ошибки в: 1 -нужен префикс для структур анриаловский F... 2 - OutStruct = FMyStruct(); тип переменной не обьявлен FMyStruct OutStruct; |
Автор: | Agny [ 23 июл 2018, 15:55 ] |
Заголовок сообщения: | |
Snake всё есть. И про F я знаю. Всё поставил, но не работает. В исходниках плагинов вообще всё проще. В *.cpp файле пишется функция в начале её имени устанавливается имя структуры, начинается на F. Код: #pragma region Method Calls FMyStruct .....::MyFunc(float inA, float inB) .... В *.h файле: Код: USTRUCT(BlueprintType) struct FMyStruct { GENERATED_USTRUCT_BODY() UPROPERTY(EditAnywhere, BlueprintReadWrite) float A; UPROPERTY(EditAnywhere, BlueprintReadWrite) float B; } UFUNCTION(BlueprintCallable) FMyStruct MyFunc(float inA, float inB) Но у меня та же ошибка. |
Автор: | Snake [ 23 июл 2018, 16:03 ] |
Заголовок сообщения: | |
у меня то что на скрине скомпилилось |
Автор: | Snake [ 23 июл 2018, 16:07 ] |
Заголовок сообщения: | |
в .срр должно быть: FMyStruct UYourClass::MyFunc(float inA, float inB) {...} |
Автор: | Agny [ 23 июл 2018, 16:13 ] |
Заголовок сообщения: | Re: |
Snake писал(а): в .срр должно быть: UYourClass::FMyStruct MyFunc(float inA, float inB) {...} У меня работают в .срр Код: bool UYourClass::MyFunc(float inA, float inB) void UYourClass::MyFunc(float inA, float inB) И прочие. Но Код: FMyStruct UYourClass::MyFunc(float inA, float inB) Не работает. А так в исходниках плагинов сделано. |
Автор: | Snake [ 23 июл 2018, 16:27 ] |
Заголовок сообщения: | Re: |
Agny писал(а): Код: USTRUCT(BlueprintType) struct FMyStruct { GENERATED_USTRUCT_BODY() UPROPERTY(EditAnywhere, BlueprintReadWrite) float A; UPROPERTY(EditAnywhere, BlueprintReadWrite) float B; } конструктор дефолтный где? нормально все собирается: ========== Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |