учитывая что класс Spawner BPэшный?, Card Structure тоже BP(и она тоже является одним из полей класса), но его(элемент массива Card Structure) я могу аргументом функции послать(из BP в С++) и изъять составляющие элементы посредством for (AActor* Actor : ArrayActorsFromStructure), но как получить поля если C++ о них не знает? Сделать С++ класс Spawner? или все же есть способы?
Если есть возможность, сделай базовый класс для элемента Card Structure на С++.
как это решит проблему изьять в рантайме поля с экземпляров? я все данные с этой структуры получить могу без проблем(реф акторы) но их поля как?
Чем получение данных экземпляра отличается от получения полей? Элемент массива Card Structure Player 1 - это что?
Можно но это unsafe https://forums.unrealengine.com/t/access-bp-variable-in-c/134256/4
это массив actor ref
Может больше смысла перенести тогда всю логику в с++?
Я верхний уровень начал на BP писать чтоб не застрять в коде C++, если сейчас начну переносить это будет попа боль.
У тебя же плюсовый класс будет обращаться не ко всем полям бп, перенеси только то что нужно плюсам, например некоторые переменные. Если надо, напиши структуру в спп, это недолгое занятие - можешь прям копипастнуть из инета структуру с подменой полей.
написать структуру на cpp это не проблема, момент в том что класс spawner на бп имеет такую реализацию:
Базовый класс для Spawner, сделанный на C++, должен иметь то, с чем будет потом работать код из C++. Если в нём реализация функции не определена (или лень переносить из BP на C++), то сделай только её интерфейс UFUNCTION(BlueprintImplementableEvent), а реализацию функции сделай в наследнике (BP).
я обьясню что мне не понятно я даже не понимаю, когда люди задают вопросы которые явно сильно завязаны на архитектуре их проета тоесть не разбираясь как там все устроено ответить почти не возможно. а ты в добавок к этому пишешь гигантские простыни в которых еще и про детали архитектуры рассказываешь в это еще сложнее вникнуть. и как результат я не понимаю чего ради ты все это пишешь. какая то польза есть вообще?
ну ты не понимаешь, а люди понимают так как сталкивались с задачами, тут нет никаких тонкостей - спаунинг это почти в каждом проекте.НЕ зависимо от архитектур.
одно из умений мощного прогера- абстрагирование от того что написал малоопытный.
тогда вопрос. зачем писать тонны текста с вопросами про спавн и про доступ к полям бп из плюсов если это блин та самая БАЗА о которой сто раз уже говорили просто я даже тебе кидал курс. вот отвечаю. пройдя даже его половину у меня вообще больше не возникало подобных вопросов. так что непонимае мое ты не развеял. ну ладно
вопрос состоял не в том как сделать спаунинг на BP или C++, а как из библы получить доступ к экземплярам, не нужно передергивать!!!
вот тут как ты бы кастонул к полям экземпляра класса spawner который полностью на BP. вот мэйн вопрос был
тебе уже ответили что надо сделать спп класс с нужными полями и перенаследовать твой бп-шник
так я уже принял, это ты говорил что чет не понял
Вообще их можно вытянуть вроде анивей, при желании
я не понимаю не того что ты пишешь. а зачем ты все это пишешь
да я знаю что можно. но зачем творить херню такую
небольшой оффтоп, Лорд, ты же вроде на VB писал когда мы ещё пешком под стол ходили, откуда у тебя эти процедурные флешбеки, зачем ты вообще пытаешься в библиотеках геймплейную логику писать? Они не для этого предназначены.
потому что это быстрее по разработке
ну да, смотри 4 варианта как писать прототип: 1. Чистый С++ с минимумом БП( долго, качесвенный код,подход ООП, быстрый код, лучший рефактор) 2. Чистый БП( быстро , макаронный код, рефактор сложен) 3. С++ библиотека + БП( среднее время разработки, логика не растягивается в макаронины, смесь ООП и процедурки,архитектура верхняя на BP, рефактор вполне сносный. 4. С++ реализация в отдельных файлах+ БП( среднее-долгое время разработки, подход ближе к ООП, архитектура верхняя на BP, рефактор вполне сносный.
А мог бы курсы купить двухнедельные или видео на 48 часов на ютубе посмотреть и уже был бы архитектором в сбере с зп 600к+
Что значит "реализация в отдельных файлых"? Типо разбивание логики по разным файлах?
Важно то, что BP выстроит понимание основных взаимодействий с движком, подготовит плацдарм в мозге для дальнейшего заполнения ассоциаций познанного с С++. Сам BP это не отдельный язык в контексте функциональности, это и есть движок. C++ в движке(в твоих классах), специфичен тем, что ты будешь оперировать в пределах движка( пользоваться уже написанными функциями, контейнерами и это обяжет следовать некоторым фундаментальными(в контексте основы) правилами работы с ним. BP более «сахарный» чем с++ это накладывает на него отпечаток(как и в любом ЯП), и так как BP оперирует исключительно с самим движком - то его функционал ограничен рамками движка, С++ позволяет работать не только с окружением движка, но и позволит выйти за его пределы. BP хорош в быстром прототипировании чем С++, он и не заменяет С++ и также не исключает его(гибридная архитектура). Те части программы которые имеют много логики и тяжелы в расчетах, лучше перенести в С++. На этапе разработки, можно выявить просадки производительности инструментами движка и переписать на С++ тяжелые части, но это больше относится к большим играм. Естественно, если не найдена эвристика для реализации оптимального алгоритма, то проблемы производительности можно словить и в маленьком проекте.( это относится и к BP и к С++, но последний будет предпочтителен в такой ситуации)
Ну это все применимо и к плюсам, на самом деле. БП поможет лишь не запутаться в каком-то базовом месте. Но с тем же успехом, в некоторых вещах он может наоборот помочь запутаться. Например ты в блупринтах начнешь делать что-то такое:
Ну это уже от человека зависит) У нас таких дохрена итак) Но если чел все же будет этим интересоваться и заниматься, кто сказал, что он по такому пути не станет спецом?)
Но вот тут интересная тема на самом деле, я тут общался с другом который сеньор/лид в одной крупной оутсорс игровой компании, так вот, насколько мне известно у него нет никаких специфических знаний как устроены компуктер(даже не знает что происходит со стеком, когда функция вызывается) и нет никаких знаний по математике
Я смотрю вдолгую. Воронка жуткая на самом деле. Шансы что такой спец будет развиваться и будет динамичным - мизерные.
Ну это ты со стороны себя смотришь. А если смотреть со стороны сотрудника. Вот изучит он всю эту глубину, так сказать, а потом поймет, что ему интересно модельить больше :)
Я на четвертом курсе написал свой калькулятор на QT вроде все было отлично
я долго занимался длинной арифметикой и теорией чисел( написал свою библу)
Обсуждают сегодня