Unreal Engine 4 http://uengine.ru/forum/ |
|
Помогите пожалуйста http://uengine.ru/forum/viewtopic.php?f=19&t=8540 |
Страница 1 из 1 |
Автор: | Maxonyx [ 08 сен 2017, 00:47 ] |
Заголовок сообщения: | Помогите пожалуйста |
Я знаю что обычно к таким просьбам относятся с негодованием, но не могли бы вы мне помочь написать на си блок для блюпринта, мне каждый код дается с таким трудом :/ и в итоге ничего не работает =) Мне нужен блок который будет экзекать локальную функцию в блюприте по имени не задавая никаких параметров. тоесть тупо блок с водом имени который запускает функцию. я не представляю как это сделать, пытался найти солюшен на гитхубе и на форумах поддержки, но ничего не вышло. |
Автор: | Noob256 [ 08 сен 2017, 10:37 ] |
Заголовок сообщения: | |
300$/час |
Автор: | Maxonyx [ 08 сен 2017, 14:53 ] |
Заголовок сообщения: | |
там дела на 2 минуты максимум если ты знаешь движок. Так что твое заявление смотрится не то что не остроумно, а предельно глупо. Могу тебя за 300$ в час научить нормально шутить, обращайся. Блок с вводными данными я сам создал, мне просто нужно узнать как вызвать локальную функцию в бп по имени. Я думал этот форум как раз для подобных вопросов создан, я ошибся? |
Автор: | Noob256 [ 08 сен 2017, 15:57 ] |
Заголовок сообщения: | |
function f(name) if name = "ggg" then ggg() end это конечно не готовый код, но понять что делать можно... |
Автор: | Snake [ 08 сен 2017, 18:12 ] |
Заголовок сообщения: | |
эм... а "стандартный запуск" функции по имени(!) в блуепринтах не? не используем принципиально? |
Автор: | Snake [ 08 сен 2017, 18:27 ] |
Заголовок сообщения: | |
ну если сильно прям не устраивает таймер то вот его нужный фрагмент: https://github.com/EpicGames/UnrealEngi ... y.cpp#L246 Код: UFunction* const Func = Object->FindFunction(FunctionFName);
|
Автор: | Maxonyx [ 08 сен 2017, 21:52 ] |
Заголовок сообщения: | |
Спасибо большое ребята. |
Автор: | Maxonyx [ 11 сен 2017, 10:34 ] |
Заголовок сообщения: | |
Что-то у меня плохо получается =( Вроде собирается и даже работает, но как то через задницу. Callfunctionbyname.h Код: #pragma once #include "CoreMinimal.h" #include "Kismet/BlueprintFunctionLibrary.h" #include "CallFunctionByName.generated.h" UCLASS() class PS1_API UCallFunctionByName : public UBlueprintFunctionLibrary { GENERATED_BODY() public: UFUNCTION(BlueprintCallable, meta=(DisplayName = "Call Function by Name", DefaultToSelf = "Object"), Category="Custom Functions") static bool CallFunctionByName(UObject* Object, FString FunctionName); }; callfunctionbyname.cpp Код: #include "CallFunctionByName.h"
bool UCallFunctionByName::CallFunctionByName(UObject * Object, FString FunctionName) { FName const FunctionFName(*FunctionName); if (Object) { { UFunction* const func = Object->FindFunction(FunctionFName); if(func && func->ParmsSize == 0) { FTimerDelegate Delegate; Delegate.BindUFunction(Object, FunctionFName); Delegate.Execute(); return true; // Worked. } return false; // Didn't Work. } } return false; // Didn't Work. } |
Автор: | Maxonyx [ 13 сен 2017, 12:50 ] |
Заголовок сообщения: | |
Парни? Есть какие нибудь соображения? |
Автор: | Maxonyx [ 18 сен 2017, 03:43 ] |
Заголовок сообщения: | |
Вот короче работает все норм без таймеров: Код: #pragma once #include "CoreMinimal.h" #include "Kismet/BlueprintFunctionLibrary.h" #include "CallFunctionByName.generated.h" UCLASS() class PS1_API UCallFunctionByName : public UBlueprintFunctionLibrary { GENERATED_BODY() public: UFUNCTION(BlueprintCallable, meta=(DisplayName = "Call Function by Name", DefaultToSelf = "Object"), Category="Custom C++") static bool CallFunctionByName(UObject* Object, FString FunctionName); }; Код: #include "CallFunctionByName.h"
bool UCallFunctionByName::CallFunctionByName(UObject * Object, FString FunctionName) { FName const FunctionFName(*FunctionName); if (Object) { { UFunction* const func = Object->FindFunction(FunctionFName); if(func && func->ParmsSize == 0) { Object->ProcessEvent(func, nullptr); return true; // Worked. } } } return false; // Didn't Work. } |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |