Полезное

Мы Вконтакте

Discord канал

#
Аватара пользователя
Пользователь
Сообщения: 3
Есть такая небольшая задачка.
Я создал MyВиджет через Блюпринт.

Как его вызвать в С++?

На БП это можно реализовать легко. Create - указываем тип - прилепляем к вьюпорту.

На С++ такой возможности сходу не получить. Есть решения, когда добавляется переменная типа UВиджет, потом в нее через уже класс БП (налседный класс от базового, в котором мы прописываем переменную) запихивается MyВиджет, и только тогда его можно создать.

Есть более простые варианты?
(Да и в том я особо не разобрался и повторить запуск виджета не смог.)
Аватара пользователя
Пользователь
Сообщения: 584
Цитата:
Есть более простые варианты?

Есть почти аналог, но для понимания более сложный


Конструкция взятия из Ассета по имени класса:

https://docs.unrealengine.com/latest/IN ... index.html

Вот пример ее использования:

Код:
// set default pawn class to our Blueprinted character
   static ConstructorHelpers::FClassFinder<APawn> PlayerPawnObject(TEXT("Pawn'/Game/Blueprints/BP_FPSCharacter.BP_FPSCharacter_C'"));
   if (PlayerPawnObject.Class != NULL)
   {
       DefaultPawnClass = PlayerPawnObject.Class;
   }


Пример взят отсюда: https://wiki.unrealengine.com/First_Per ... B_Tutorial


P.S. Вообще взаимодействие BP с плюсами довольно сложное. То есть BP, использующий заготовки на плюсах - это обычная схема, потому как BP и есть наследник плюсов (грубо говоря). А вот плюсы, использующие классы на BP - это вывернутая на изнанку схема и требует она танцы с бубнами, порою даже на жутких и непонятных костылях. Особенно если не понимаешь как правильно работать с наследованием в ООП ) Та схема, которую ты описал выше и есть - использование принципа наследования классом на BP класса на плюсах, с которым и взаимодействует конструкция, написанная на плюсах.
Аватара пользователя
Пользователь
Сообщения: 584
Если в общих чертах, то тебе нужно создать базовый класс на плюсах, поставить в нем виртуальные методы, описать переменные.
И после в другом классе, вводишь переменную - ссылку на этот класс.
Потом делаешь BP наследника в редакторе и переопределяешь в нем методы базового класса.
А из наследника другого класса, в котором хранится ссылка на класс того (первого) класса уже вызываются методы, без учета, как эти методы будут обрабатываться.
Вообще само по себе ООП материал не сильно легкий для понимания. А тут еще и такие жуткие заморочки для неокрепшего ума начинающего программиста ))

P.S. рекомендация... Делай пока все в BP, не заморачивайся плюсами. Когда освоишь блупринты и вылезет необходимость уйти в плюсы - тогда и попробуешь еще раз. А без понимания базы ООП соваться в клубок столь хитрых заморочек - мозг травмировать только.
Аватара пользователя
Пользователь
Сообщения: 3
Прошелся по ссылкам - немного не понял идею со страктом. Недавно только перешел на С++, поэтому такие вещи не всегда понимаю =)
Аватара пользователя
Пользователь
Сообщения: 584
Цитата:
Недавно только перешел на С++, поэтому такие вещи не всегда понимаю =)

Еще раз... Настоятельно рекомендую BP на данном этапе обучения. Плюсы - самый сложный инструмент сам по себе, на нем написан и движок и BP.

Перед тобой сейчас сразу туча неизвестных и непонятных вещей, и ты пытаешься охватить все разом - это иррационально, поверь человеку, который немного дольше тебя программист )))
На BP ты изучишь механику работы самого анриала, взаимодействия частей, это раз..
Эпики усиленно развивают BP, и это имеет смысл. Сейчас на BP создание средних проектов уже не обременительно. Это два...
Полагаю, за столько длительный период работы UE4, BP в нем стал таки стабильным. Сам не проверял, бо я представитель старой (текствой) школы программирования, и для меня проще буквы нежели ноды.. Но, применительно к анриалу я считаю, что плюсы имеет смысл использовать только для создания специфичных нод и только.

Визуальное программирование отличается от текстового, конечно, но оно, при должном опыте, может стать весьма гибким и удобным.
Впрочем, ты, как и все нубы до тебя, можешь пойти "своим" "не хоженным" путем. По тому же грабельному полю, что и тучи нубов до тебя - попытаться объять необъятное за кратчайший срок пока не сдулись )) В этом случае на каждого нуба найдется на том поле свой пакет грабель )))
Не вижу смысла продолжать настаивать, дальше уж сам...
Аватара пользователя
Пользователь
Сообщения: 3
Цитата:
Перед тобой сейчас сразу туча неизвестных и непонятных вещей

Ненене, погоди, ты не уловил идеи =)
Я отлично знаю BP =) У меня с блюпринтами вообще нет проблем, я больше года изучаю движок на БП, поэтому они даже не рассмартиваются =)

У меня желание постигнуть UE именно со стороны С++. С БП я могу все, что угодно, это уже не интересно =)
Аватара пользователя
Пользователь
Сообщения: 584
Цитата:
У меня желание постигнуть UE именно со стороны С++


https://drive.google.com/file/d/0Bxq_tD ... A5aG8/view


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница