@@Beatrixxxomg каст это не перекинуть с одного в другой, это термин, означающий приведение типа. В частности родительского класса к классу потомка, чтобы получить доступ к экземпляру и его данным. И эта процедурка намертво сшивает загрузку объектов в памяти что может так себе сказаться на быстродействии.
@@Dyk-07 можно использовать интерфейсы, но если классы друг без друга не должны работать в принципе (например анимблупринт и персонаж) то отказ от каста не имеет смысла. А так, интерфейсы отлично справляются с проблемой связанности. Ну а в с++ каст работает несколько иначе, связанность там создаётся подключением библиотек и классов.
Конкретно данный урок принципиально неточен. Получать ВСЕ объекты подобного класса - плохо. "Не обращайте на это внимание" тоже плохо, это собственно информация, которая кое о чем говорит. В свое время очень сильно запутался и все бросил из-за таких советов.
Мне понравилось, особенно на 10:53, после 11:36 сразу свернул видео и пошёл самостоятельно делать. Не уверен правильно ли сделал, но мне не важно, просто хотел что то сделать сам, а о качестве подумаю через несколько месяцев) В итоге сделал всё иначе, но мне всё равно понравилось, главное что оно работает) Вот что я сделал: 1. При старте BP2 записывает свои размеры в переменную (BP2_Vector). 2. При старте BP1 берёт размеры BP2 из переменной BP2_Vector. 3. При соприкосновении с коллизией BP1 изменяет BP2_Vector. 4. В BP2, в event Tick происходит изменение размеров на BP2_Vector. Вот тут скриншоты как я это сделал и итог imgur.com/a/H237qDI Получилось совсем немного, хотя мне это было не важно, ещё есть ноды print string которые занимают место, но это тоже не важно, я хотел что бы они были. Единственное, я не понял как мне сделать так, что бы когда я отходил от BP1, BP2 уменьшался. Я хотел сделать if, но он принимает только bool перменные, а у узла on component hit нету bool выхода, поэтому я так и не понял как мне это сделать
Не знаешь как из BP передать переменную в Anim BP? Смысл в том, чтобы нажав кнопку на клавиатуре, бот получил эту команду (и он вывел на экран Print String). (то что в видео с Anim BP не работает)
Лучше бы рассказал в каких случаях это применяется. А то кто ни будь будет вте делать через касты. Для передачи инфы есть BP interface. А этот способ только для записи переменных при старте и ни как больше. Оптимизация братан. А про Tick вообще стоит забыть и использовать только в крайнем случае или для теста логикию
Благодарю за урок. Теперь понятно, как передать команду боту через нажатие кнопки на клавиатуре. Только как выполнить анимацию ботом при появлении команды пока не понятно. AnimBP так не подключить.
Anim bp подключается через set anim instanse class и в target подключается меш которому нужно изменить аним бп или подключить аним бп если не подключен
Блинаааа, чувааак, спасибо! Я звукач и вот эти все дела столько времени занимают с программированием. Но благодаря таким, как ты, можно жить)) Вопрос, а как такие связки влияют на производительность? И вообще мне кажется, через день я забуду, что тут наворотил)) Как работать так, чтобы не запутываться во всех этих связях?
Cast это конечно же бросать, но не в программировании. Собственно и в UE это не "бросать". Cast здесь в смысле слова Casting, т.е. определение роли. А именно мы не знаем например какого класса объект столкнется с нашим объектом, но попытаемся его кастовать и при удаче получить доступ к его свойствам и методам, при неудаче значит это объект другого класса.
Почему когда создаем Cast на блупринт еще нужно в объекте указывать блупринт. Глупость. У меня например блупринты менюшек и как мне теперь кастовать между ними?
Не очень понял, почему мы дважды ссылаемся на другой обьект. Первый раз когда создаем ноду "каст ту (название объекта)", а потом еще и создаем переменную с ссылкой на этот обьект. В чем прикол?
3:21.Переменная war1? Он заранее знал, что начнётся война и пытался нас предупредить? А весь канал учит работе с анриалом, чтоб мы могли работать программистами в иммиграции … все сходится!
Наконец то я нашёл урок, где нормально показано как создать переменную actor, активировать её и записать в неё сам блюпринт, на который ссылаешься. P.S но появилась другая проблема, мне нужно вкл и выкл множество светильников на сцене, а actor'у можно присвоить только один блюпринт объект на сцене, как их все сгруппировать и каст шёл сразу на множество одинаковых объектов?
Все вы туториалщики делаете одно и тоже, создаёте BP и вытаскиваете их на сцену, что бы с них ссылки получить, а что делать если два файла BP не на сцене, и между ними надо информацию передать через Cast To, вы либо сами не знаете, либо просто не хотите объяснить.
А что если нужно не вызывать переменную, а давать команду на исполнение всей логики. Например: BP1 - камера видеонаблюдения которая при помощи Pawn Sense мониторит территорию. BP2 - это противник который при помощи Pawn Sense всегда видит игрока. В моем случае BP2 сразу начинает атаковать т.к. начинает с Event Tick или Begin Play. Как сделать так, чтобы при попадании игрока в поле зрения BP1, с BP1 подавалась команда на BP2 на исполнение атакующей логики??? Подскажите кто шарит. Или скиньте ссылку на такой урок плиз. Буду весьма благодарен!!!
я вот сколько не смотрю разные видео все понять немогу как этот каст использовать и зачем... я сам новичек - поправьте меня, если не правильно понял или неправильно изложил мысль: 1)в примере, который показан на 3:30 можно прямо из переменной bp2 var вытягивать все нужные значения, не делая каст, потому что возвращается из каста тоже самое что и подключается к пину Object... вот допустим если бы оба актора BP1 и BP2 наследовались от родителя, например от BP_ACTORS_WITH_INTERACTIONS_BASE, и кастуя на этот родительский класс, тем самым осуществляя проверку наследуется ли то, что подключено к пину Object от кастуемого класса... но вроде даже в этом случае можно обойтисьболее простыми и понятными инструментами 2) как я понял обмены данными между bp можно осуществлять и с помощью Интерфейсов и с помощью Кастомных Ивентов( вызов такого ивента будет доступен в любом блюпринте, но там нужно будет извернуться с "таргетом" в вызове ивента, например запросив get actor of class, или как показал автор видео сохранить заранее в переменную нужного актора). и отсюда вопрос - а не лучше ли использовать их?)
@@cyberstars-5839 в том то и дело, что часто вылазит ошибки "невозможно прочитать" Думаешь сделать каст, на блюпринт, которого нет на карте, делаешь переменную, указываешь в ней ссылку на этот каст который тебе нужен,. но там нужно указать то что на карте...Или допустим мне нужно сделать каст на контроллер, что подключать в таргет? Сколько видео не смотрел подобных ответов не находил.
Этот ролик и ролик про интерфейсы реально вредны для людей кто не разбирается в программировании, т.к. вводят в заблуждение и преподают плохие практики. Их стоит удалить и записать новые. Или просто удалить.
@@cyberstars-5839 Вы говорите: "cast позволяет осуществить передачу данных между 2-му блупринтами. Cast в переводе с англ. - бросать. cast это связующий мост между 2-мя блупринтами" Это не так, назначение cast это приведение типов. Ни больше, ни меньше и к передачи данных не имеет ни какого отношения. В данном случае правильный перевод с английского будет "в ролях". Cast ни в коем случае не мост и ни каким образом блупринты не связывает. Что делает каст? Если грубо, то он получает адресс в памяти и пытается интерпретировать эту область памяти в соответствие с тем типом данных, которые вы ожидаете там увидеть. Далее, Вы говорите, что нельзя создать переменную-ссылку на класс BP_2, это не так, ещё как можно, более того, так и нужно было сделать и тогда cast был бы не нужен). Далее, использование getallactorsofclass это пример плохой архитектуры игры, стоило сказать что использовать его нужно только тогда, когда иначе ну никак, вместо этого Вы используете этот метод как единственно возможный для получения ссылок на объект в real-time. Кроме того, cast в Вашем примере с getallactorsofclass не нужен, нет смысла приводить массив объектов BP_2 к типу BP_2. И последний Ваш пример с onComponentHit. Вот это мог бы быть хороший пример где cast нужен(например если бы Вы использовали пин otherActor), но Вы и в этом примере используете getallactorsofclass, который возвращает массив объектов BP_2 и приводите их к типу BP_2.
@@Иван-щ8н Вот это поворот...) А то все комментарии завалены похвалами от таких же как и я начинающих. Не подскажете кто на ЮТ может преподносить информацию более подробно и профессионально??
@@eddit1086 Я не знаю безусловных авторитетных источников. Везде информация подаётся фрагментарно. Даже в мануалах от самих эпиков. Любой результат можно достичь многими разными способами. На этом канале также полно полезной информации, надо только правильно относиться к тому что смотришь. Обучение чему-то это постоянный сбор пазла. Unreal Engine Rus хороший канал был.
@@Иван-щ8н всё верно сказано. Результата можно достигнуть разными способами,но важнее достигать их правильными,чтобы потом не получить неожиданный exception. Максимально правильно были подмечены ошибки в данном видео
Люди а как сделать каст level blue print ну например у меня голод написан в level bp и мне нужно что бы еда получила переменную еды и прибавила к ней 10
Без примеров не очень эффективный обучающий ролик. Пример с 2 сферами некорректный т.к не отражает действительность, а является чем-то абстрактным. К чему данную информацию подвязывать непонятно. А видео судя по всему относиться к новичкам т.к они смотрят чтобы научиться. А если нет, то непонятно вообще для кого данные видосы.
Многим ребятам, включая меня, этот урок помог, как и другие ролики данного автора. Вероятно, проблемы с пониманием как раз таки у тебя, т.к. вряд ли ты тут "самый умный в комнате".
@@cyberstars-5839 Извините, не хотел обидеть, контент у вас полезный для кого-то не спорю... Но... 1. cast это не "бросать", а castTo - это приведение к 2. зачем в вашем примере делать каст если мы итак через GetAllActors получили уже bp2 actor? 3. cast и interface это прежде всего про наследование и полиморфизм 4. В примере с интерфейсами вы получили 0ой объект после GetAllAcxtos, а списали это на последовательное и параллельное выполнение, а то что вы добавили цикл - это последовательно для всех вызов метода (никакого параллелизма)... не стыковка тут(да и в каком-то виде введение в заблуждение). И вообще у того же Unreal Engine Rus более правильный подход к уроку по интерфейсам там хоть в каком-то виде про полиморфизм, а то что делали вы - лучше делать через Event Dispatcher (независимо от того используются ли интерфейсы), на случай если таких объектов будет очень много. А по CastTo лучше бы был пример где мы после GetAllActors(разных типов с разным функционалом) приводим каждый к нужному и вызываем их уникальные функции, например.
@@Anna-uh1sp Я рад что урок вам помог, и не сомневаюсь что он полезен для многих, и все чему-то научились, но есть более правильные способы сделать то что было у автора в примере, и тут не совсем уместное использование функционала (микроскопом тоже можно гвозди забивать). docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/CastNodes/index.html docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/Types/Interface/UsingInterfaces/index.html Вот тут в первых абзацах куда более правильное описание зачем нужны castTo и Interfaces (если с англ плохо, то гугл переводит норм)
@@nodfix2639 Чем ваша статья кардинально отличается от ролика? Там много текста, а смысл простой - есть возможность получить связь с данными другого класса и работать с ними как хочешь. Зачем усложнять понимание?
Очень важная и полезная инфа. доходчиво объясняешь, только меня лично музыка на фоне отвлекает
Автор, спасибо большое за уроки! Очень крутой стиль повествования и крайне понятное объяснение! Не бросайте не смотря ни на что, у Вас талант!
Очень исчерпывающе )) правда не с первого раза все понял, но каждый раз напоминаю себе: "Ты гуманитарий !"
Кайф спасибо. Все время забываю, что надо оборачивать блюпринт в переменную, чтобы к нему обращаться
Подробно, доступно, без лишнего! Самое оно!
Наконец-то кто-то нормально объясняет
Приходится пипец как фокусироваться чтобы что то понять из за музыки. Она со всякими клэпми и бассами, ооочень отвлекает. А так лайк ♥
Интересный обзор ролика, возьму к сведению
вот такие уроки важны! просто без заморочек, полное понимание зато!!!!
На понимание по такому уроку не надейся, дружище.
музычка топ (инфа тоже, само собой)
Во как раз это искал❤ спасибо!!! Еле нашел!
Наконец то долгожданный ролик!!!!!
«Перекинуть с одного в другой. Каст в переводе - бросать» Ох, ребята. Он вас научит тут. Глубине понимания вопроса, так сказать.
@@Beatrixxxomg каст это не перекинуть с одного в другой, это термин, означающий приведение типа. В частности родительского класса к классу потомка, чтобы получить доступ к экземпляру и его данным. И эта процедурка намертво сшивает загрузку объектов в памяти что может так себе сказаться на быстродействии.
@@Beatrixxxomg Простите, тип чего? Каста?
@@ivan-_-8577 Все говорят что касты это зло, лично я верю но не встречал гайдов как обойтись без кастов. Может быть вам поподались такие гайды?
@@Dyk-07 можно использовать интерфейсы, но если классы друг без друга не должны работать в принципе (например анимблупринт и персонаж) то отказ от каста не имеет смысла. А так, интерфейсы отлично справляются с проблемой связанности. Ну а в с++ каст работает несколько иначе, связанность там создаётся подключением библиотек и классов.
Ты святой человек. Спасибо тебе.
Конкретно данный урок принципиально неточен. Получать ВСЕ объекты подобного класса - плохо. "Не обращайте на это внимание" тоже плохо, это собственно информация, которая кое о чем говорит. В свое время очень сильно запутался и все бросил из-за таких советов.
Спасибо тебе, ОГРОМЕНЕЙШОЕ! Целый день сегодня убил чтобы реализовать это. Спасибо большое что доходчиво объяснил)
в 2023 актуально! Спасибо!
То что надо было) спасибо
Можно больше разных примеров? Это очень важно для понимания
Спасибо!
ОО Спасибо!!
Лучший
Заебись,Саша,все заебись!
Огромное спасибо! Лучший урок по теме Cast to.
Спасибо
Мне понравилось, особенно на 10:53, после 11:36 сразу свернул видео и пошёл самостоятельно делать. Не уверен правильно ли сделал, но мне не важно, просто хотел что то сделать сам, а о качестве подумаю через несколько месяцев) В итоге сделал всё иначе, но мне всё равно понравилось, главное что оно работает)
Вот что я сделал:
1. При старте BP2 записывает свои размеры в переменную (BP2_Vector).
2. При старте BP1 берёт размеры BP2 из переменной BP2_Vector.
3. При соприкосновении с коллизией BP1 изменяет BP2_Vector.
4. В BP2, в event Tick происходит изменение размеров на BP2_Vector.
Вот тут скриншоты как я это сделал и итог imgur.com/a/H237qDI
Получилось совсем немного, хотя мне это было не важно, ещё есть ноды print string которые занимают место, но это тоже не важно, я хотел что бы они были.
Единственное, я не понял как мне сделать так, что бы когда я отходил от BP1, BP2 уменьшался. Я хотел сделать if, но он принимает только bool перменные, а у узла on component hit нету bool выхода, поэтому я так и не понял как мне это сделать
Не знаешь как из BP передать переменную в Anim BP?
Смысл в том, чтобы нажав кнопку на клавиатуре, бот получил эту команду (и он вывел на экран Print String).
(то что в видео с Anim BP не работает)
Спасибо огромное
Огромное спасибо!
Лучше бы рассказал в каких случаях это применяется. А то кто ни будь будет вте делать через касты. Для передачи инфы есть BP interface. А этот способ только для записи переменных при старте и ни как больше. Оптимизация братан. А про Tick вообще стоит забыть и использовать только в крайнем случае или для теста логикию
Вопрос новичка : интересно почему никто не задает вопрос о том что Гет Актор Оф Касс работает без Каста...или я один это заметил?
@@eddit1086 потому что каст - это приведение к классу, т.е полиморфизм. Взять эктора по классу же является точным жестким указанием конкретного эктора
наконец то нормальный комментарий. А можешь обяснить как сделать на Блюпринтах что то похожее на Синглтон?
Брат, это я все знаю, а че везде так надо интерфейсами? Даже в компоненте задачи для дерева тоже нужно интерфейсом в игрока например?
@@АлексейПарфёнов-ь9зполиморфизм это переопределение одинакового метода в классах наследниках.
Спасибо. Тема не раскрыта полностью, но для начального уровня вполне себе хорошее описание применения.
Благодарю за урок. Теперь понятно, как передать команду боту через нажатие кнопки на клавиатуре. Только как выполнить анимацию ботом при появлении команды пока не понятно. AnimBP так не подключить.
Anim bp подключается через set anim instanse class и в target подключается меш которому нужно изменить аним бп или подключить аним бп если не подключен
Если бы не дер..мовая громкая музыка, то была бы отличная подача материала.
Но все равно спасибо за видео.
Блинаааа, чувааак, спасибо! Я звукач и вот эти все дела столько времени занимают с программированием. Но благодаря таким, как ты, можно жить))
Вопрос, а как такие связки влияют на производительность? И вообще мне кажется, через день я забуду, что тут наворотил)) Как работать так, чтобы не запутываться во всех этих связях?
6:57 Мы можем соединить ноду Get и Set? Я попробовал, работает так же
Как передать данные, если первый блупринт ещё не заспавнился, а вот после его спавна, данные его переменных должны передаваться в другой блупринт!?
Cast это конечно же бросать, но не в программировании. Собственно и в UE это не "бросать". Cast здесь в смысле слова Casting, т.е. определение роли. А именно мы не знаем например какого класса объект столкнется с нашим объектом, но попытаемся его кастовать и при удаче получить доступ к его свойствам и методам, при неудаче значит это объект другого класса.
Неправда. Узнаем или этот объект или находится в цепочке наследования
Почему когда создаем Cast на блупринт еще нужно в объекте указывать блупринт. Глупость. У меня например блупринты менюшек и как мне теперь кастовать между ними?
Не очень понял, почему мы дважды ссылаемся на другой обьект. Первый раз когда создаем ноду "каст ту (название объекта)", а потом еще и создаем переменную с ссылкой на этот обьект. В чем прикол?
3:21.Переменная war1? Он заранее знал, что начнётся война и пытался нас предупредить? А весь канал учит работе с анриалом, чтоб мы могли работать программистами в иммиграции … все сходится!
А как сделать каст из контроллера в BT task?
Наконец то я нашёл урок, где нормально показано как создать переменную actor, активировать её и записать в неё сам блюпринт, на который ссылаешься.
P.S но появилась другая проблема, мне нужно вкл и выкл множество светильников на сцене, а actor'у можно присвоить только один блюпринт объект на сцене, как их все сгруппировать и каст шёл сразу на множество одинаковых объектов?
Массив брат
Все вы туториалщики делаете одно и тоже, создаёте BP и вытаскиваете их на сцену, что бы с них ссылки получить, а что делать если два файла BP не на сцене, и между ними надо информацию передать через Cast To, вы либо сами не знаете, либо просто не хотите объяснить.
А что если нужно не вызывать переменную, а давать команду на исполнение всей логики. Например: BP1 - камера видеонаблюдения которая при помощи Pawn Sense мониторит территорию. BP2 - это противник который при помощи Pawn Sense всегда видит игрока. В моем случае BP2 сразу начинает атаковать т.к. начинает с Event Tick или Begin Play. Как сделать так, чтобы при попадании игрока в поле зрения BP1, с BP1 подавалась команда на BP2 на исполнение атакующей логики??? Подскажите кто шарит. Или скиньте ссылку на такой урок плиз. Буду весьма благодарен!!!
А как сделать тоже самое но только с UI
я вот сколько не смотрю разные видео все понять немогу как этот каст использовать и зачем...
я сам новичек - поправьте меня, если не правильно понял или неправильно изложил мысль:
1)в примере, который показан на 3:30 можно прямо из переменной bp2 var вытягивать все нужные значения, не делая каст, потому что возвращается из каста тоже самое что и подключается к пину Object... вот допустим если бы оба актора BP1 и BP2 наследовались от родителя, например от BP_ACTORS_WITH_INTERACTIONS_BASE, и кастуя на этот родительский класс, тем самым осуществляя проверку наследуется ли то, что подключено к пину Object от кастуемого класса... но вроде даже в этом случае можно обойтисьболее простыми и понятными инструментами
2) как я понял обмены данными между bp можно осуществлять и с помощью Интерфейсов и с помощью Кастомных Ивентов( вызов такого ивента будет доступен в любом блюпринте, но там нужно будет извернуться с "таргетом" в вызове ивента, например запросив get actor of class, или как показал автор видео сохранить заранее в переменную нужного актора). и отсюда вопрос - а не лучше ли использовать их?)
Гет Актор Оф Класс работает и без Каста... Зачем тогда нужен Каст в этой схеме ????
Не нужен
музыкальный - нафига оно тут нужно? и, во-вторых, музыка должна быть раза в 3 тише голоса. просто не возможно смотреть ролик
согласен, ролик старый - раньше монтировал без наушников
круто но музыка громкая
уже учел) в новых роликах еле слышно
@@cyberstars-5839 в новой творческой студии это вроде как можно исправить в любой момент.
классная музыка!
А если этого блюпринта нет на карте ???? А если потом спавнится ? Посмотрел много видео и везде показывают то что на карте
Тогда можно взять переменную и запихать в нее ссылку
@@cyberstars-5839 в том то и дело, что часто вылазит ошибки "невозможно прочитать" Думаешь сделать каст, на блюпринт, которого нет на карте, делаешь переменную, указываешь в ней ссылку на этот каст который тебе нужен,. но там нужно указать то что на карте...Или допустим мне нужно сделать каст на контроллер, что подключать в таргет? Сколько видео не смотрел подобных ответов не находил.
Этот ролик и ролик про интерфейсы реально вредны для людей кто не разбирается в программировании, т.к. вводят в заблуждение и преподают плохие практики. Их стоит удалить и записать новые. Или просто удалить.
Пожалуйста уточните не верные моменты
@@cyberstars-5839 Вы говорите: "cast позволяет осуществить передачу данных между 2-му блупринтами. Cast в переводе с англ. - бросать. cast это связующий мост между 2-мя блупринтами"
Это не так, назначение cast это приведение типов. Ни больше, ни меньше и к передачи данных не имеет ни какого отношения. В данном случае
правильный перевод с английского будет "в ролях". Cast ни в коем случае не мост и ни каким образом блупринты не связывает. Что делает каст? Если грубо, то он получает адресс в памяти и пытается интерпретировать эту область памяти в соответствие с тем типом данных, которые вы ожидаете там увидеть. Далее, Вы говорите, что нельзя создать переменную-ссылку на класс BP_2, это не так, ещё как можно, более того, так и нужно было сделать и тогда cast был бы не нужен). Далее, использование getallactorsofclass это пример плохой архитектуры игры, стоило сказать что использовать его нужно только тогда, когда иначе ну никак, вместо этого Вы используете этот метод как единственно возможный для получения ссылок на объект в real-time. Кроме того,
cast в Вашем примере с getallactorsofclass не нужен, нет смысла приводить массив объектов BP_2 к типу BP_2. И последний Ваш пример с onComponentHit. Вот это мог бы быть хороший пример где cast нужен(например если бы Вы использовали пин otherActor), но Вы и в этом примере используете getallactorsofclass, который возвращает массив объектов BP_2 и приводите их к типу BP_2.
@@Иван-щ8н Вот это поворот...) А то все комментарии завалены похвалами от таких же как и я начинающих. Не подскажете кто на ЮТ может преподносить информацию более подробно и профессионально??
@@eddit1086 Я не знаю безусловных авторитетных источников. Везде информация подаётся фрагментарно. Даже в мануалах от самих эпиков. Любой результат можно достичь многими разными способами. На этом канале также полно полезной информации, надо только правильно относиться к тому что смотришь. Обучение чему-то это постоянный сбор пазла. Unreal Engine Rus хороший канал был.
@@Иван-щ8н всё верно сказано. Результата можно достигнуть разными способами,но важнее достигать их правильными,чтобы потом не получить неожиданный exception. Максимально правильно были подмечены ошибки в данном видео
А если BP1 - это мод, а BP2 - виджет, и их ведь на сцену не установишь, то как их связать?
создайте переменную с вашим UMG и обращайтесь к ней
@@cyberstars-5839 вот так просто, без всякой интриги? :-)
Возникла проблемма, у меня нет вкладки Default
Сверху window там все окна
буде урок як зробити шутер ???
вымм гщшлщз шщ-фуа шщ-0щзхщ
Люди а как сделать каст level blue print ну например у меня голод написан в level bp и мне нужно что бы еда получила переменную еды и прибавила к ней 10
Левел блупринт для этого лучше не брать. Можно это делать в отдельном компоненте перса
@@cyberstars-5839 хорошо
@@cyberstars-5839аааа что делать я весь код из левел БП закинул в БП еды и почему-то у меня багнулся delay и еда уходит за мили секунду
Нестор? Ты ли это?
Нестор топ :)
грузит музыка, мешает
информацию на ютубе по этой теме не найдешь
ruclips.net/video/szNdM0vo2PI/видео.html
а где найдёшь?
@@Kitsikoo здесь
с виджетами не прокатит, их нельзя вытащить на сцену
Нод - Get All Widgets Of Class, в нём выбираете свой виджет,
Из его выхода нод get и индекс 0
и вы получаете ссылку на любой виджет
@@cyberstars-5839 спасибо, а как получить данные в виджет с левел блюпринта?
Без примеров не очень эффективный обучающий ролик. Пример с 2 сферами некорректный т.к не отражает действительность, а является чем-то абстрактным. К чему данную информацию подвязывать непонятно. А видео судя по всему относиться к новичкам т.к они смотрят чтобы научиться. А если нет, то непонятно вообще для кого данные видосы.
Складывается ощущение, что данные видосы скорее для тех, кто уже в теме, кому просто нужны дополнительные инструменты.
Автор не понимает приципы программирования ( видно тут и на уроке по интерфейсам ( а жаль... Толкового контента не хватат(
Интересно, что за принципы программирования которые я не понимаю
Многим ребятам, включая меня, этот урок помог, как и другие ролики данного автора. Вероятно, проблемы с пониманием как раз таки у тебя, т.к. вряд ли ты тут "самый умный в комнате".
@@cyberstars-5839 Извините, не хотел обидеть, контент у вас полезный для кого-то не спорю... Но...
1. cast это не "бросать", а castTo - это приведение к
2. зачем в вашем примере делать каст если мы итак через GetAllActors получили уже bp2 actor?
3. cast и interface это прежде всего про наследование и полиморфизм
4. В примере с интерфейсами вы получили 0ой объект после GetAllAcxtos, а списали это на последовательное и параллельное выполнение, а то что вы добавили цикл - это последовательно для всех вызов метода (никакого параллелизма)... не стыковка тут(да и в каком-то виде введение в заблуждение).
И вообще у того же Unreal Engine Rus более правильный подход к уроку по интерфейсам там хоть в каком-то виде про полиморфизм, а то что делали вы - лучше делать через Event Dispatcher (независимо от того используются ли интерфейсы), на случай если таких объектов будет очень много. А по CastTo лучше бы был пример где мы после GetAllActors(разных типов с разным функционалом) приводим каждый к нужному и вызываем их уникальные функции, например.
@@Anna-uh1sp Я рад что урок вам помог, и не сомневаюсь что он полезен для многих, и все чему-то научились, но есть более правильные способы сделать то что было у автора в примере, и тут не совсем уместное использование функционала (микроскопом тоже можно гвозди забивать).
docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/CastNodes/index.html
docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/Types/Interface/UsingInterfaces/index.html
Вот тут в первых абзацах куда более правильное описание зачем нужны castTo и Interfaces (если с англ плохо, то гугл переводит норм)
@@nodfix2639 Чем ваша статья кардинально отличается от ролика? Там много текста, а смысл простой - есть возможность получить связь с данными другого класса и работать с ними как хочешь. Зачем усложнять понимание?
спасибо
Большое спасибо
Xeon E3 v2. Nvidia 1060 6gb. 12gb RAM