@Quark_Hell
C++ программист

Как получить ссылку на UI элемент в с++?

Здравствуйте. Я создал UI через Blueprint class(Widget) и теперь хочу получить ссылку в c++ на его элементы(кнопки,картинки и т.д.).Как это можно сделать?
  • Вопрос задан
  • 198 просмотров
Решения вопроса 1
@Quark_Hell Автор вопроса
C++ программист
Не используйте NewObject для получения ссылки на UUserWidget класс.При таком подходе BindWidget просто не сработает и ваши ссылки на виджеты будут равны null.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Например можно сделать так. Создаю в блюпринт виджете кнопку "Say Hello world".
60521fcbbf74d488495348.png

Далее, например в С++ классе GameMode добавлю новую функцию, которая будет выводить сообщение на экран.
GameMode.h
UFUNCTION(BlueprintCallable, Category = "Custom")
		void SayHello();


GameMode.cpp
void AMyGameModeBase::SayHello()
{
	GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Orange, TEXT("Hello World"));
}


Компилируем проект и возвращаемся к виджету.

Создаем эвент для новой кнопки, далее обращаемся к текущему GameMod'у и ищем во вкладке Custom нашу функцию.
60522168d8315077952944.png

Проверяем.
605222a408598066229738.jpeg

Все работает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы