Size: a a a

2020 August 27

DK

Dmitriy Kuzz in Unreal Engine
Ivan Kurulyuk
Что я в итоге понял:
Решение в лоб - переменная-счетчик.
Если нужно делать редко, можно сделать GetAllACtorsofClass.
Чтобы красиво и производительно - покурить документацию и сделать пул объектов.
Еще есть паттерны программирования в виде фабрики и прокси, но я эту пару в универе прогулял
Решение в лоб это не решение в лоб. Будто бы счётчик это какая-то полумера. Это три ноды на констракте и дестракте, а дилемма такая будто тут ультра сложную фабрику нужно написать.
источник

IK

Ivan Kurulyuk in Unreal Engine
Dmitriy Kuzz
Решение в лоб это не решение в лоб. Будто бы счётчик это какая-то полумера. Это три ноды на констракте и дестракте, а дилемма такая будто тут ультра сложную фабрику нужно написать.
Всё так.
источник

R

Ruslan in Unreal Engine
Я конечно далек от "гуру" разработчиков UE4, но как по мне, придумывать сложные паттерны и интерфейсы для несложной задачи как-то не правильно. ИМХО
источник

DK

Dmitriy Kuzz in Unreal Engine
Ruslan
Я конечно далек от "гуру" разработчиков UE4, но как по мне, придумывать сложные паттерны и интерфейсы для несложной задачи как-то не правильно. ИМХО
А это даже не про уе. Это чисто математика 5 класс.
источник

AD

Aleksei DTG in Unreal Engine
Ruslan
Я конечно далек от "гуру" разработчиков UE4, но как по мне, придумывать сложные паттерны и интерфейсы для несложной задачи как-то не правильно. ИМХО
Это правильное наблюдение, но просто полезно задумываться о том, как ещё это можно сделать. Ну а вообще, KISS, да :)
источник

R

Ruslan in Unreal Engine
Dmitriy Kuzz
А это даже не про уе. Это чисто математика 5 класс.
Не припомню, чтобы в 5 классе я проходил хоть какие-то, даже самые простые паттерны программирования)
источник

AD

Aleksei DTG in Unreal Engine
В статье на хабре о ханойских башнях какой-то паренёк писал, что они классе в третьем их проходили (ну примерно в таком возрасте) и у них из всей группы только 2 человека не справились
источник

AD

Andrew Derkach in Unreal Engine
Всем привет! А как гуру технологии асинхронно загружают левелы? К примеру, из меню нужно загрузить боевой левел? Пока накопал такой подход: асинхронно загружаем UPackage левела, а потом зовём стандартную синхронную функцию загрузки
источник

AD

Aleksei DTG in Unreal Engine
с самостоятельным решением... В общем я сильно загрустил после этого комментария :(
источник

n

norlin in Unreal Engine
Andrew Derkach
Всем привет! А как гуру технологии асинхронно загружают левелы? К примеру, из меню нужно загрузить боевой левел? Пока накопал такой подход: асинхронно загружаем UPackage левела, а потом зовём стандартную синхронную функцию загрузки
сейчас точно не помню, но посмотри внутри движка как world composition работает. Там всё сильно запутано, но если разберёшься - точно станет более-менее понятно, что делать)
источник

DK

Dmitriy Kuzz in Unreal Engine
Ruslan
Не припомню, чтобы в 5 классе я проходил хоть какие-то, даже самые простые паттерны программирования)
Это всё потому, что у топикстартера вопрос был про то, как плюсовать и минусовать единичку от акторов, а программисты как обычно начали рассказывать про паттерны, фабрики, Гегеля, Фрэнсиса Бэкона и поздних эллинистов.
Серьезно, на констракте и дестракте плюсовать/минусовать единичку, куда уж проще?)
источник

VA

Vladimir Alyamkin in Unreal Engine
Andrew Derkach
Всем привет! А как гуру технологии асинхронно загружают левелы? К примеру, из меню нужно загрузить боевой левел? Пока накопал такой подход: асинхронно загружаем UPackage левела, а потом зовём стандартную синхронную функцию загрузки
При таком подходе все равно будет лаг, к сожалению. А какой результат хотите достичь?
источник

R

Ruslan in Unreal Engine
Dmitriy Kuzz
Это всё потому, что у топикстартера вопрос был про то, как плюсовать и минусовать единичку от акторов, а программисты как обычно начали рассказывать про паттерны, фабрики, Гегеля, Фрэнсиса Бэкона и поздних эллинистов.
Серьезно, на констракте и дестракте плюсовать/минусовать единичку, куда уж проще?)
Ясно)
источник

AD

Aleksei DTG in Unreal Engine
Dmitriy Kuzz
Это всё потому, что у топикстартера вопрос был про то, как плюсовать и минусовать единичку от акторов, а программисты как обычно начали рассказывать про паттерны, фабрики, Гегеля, Фрэнсиса Бэкона и поздних эллинистов.
Серьезно, на констракте и дестракте плюсовать/минусовать единичку, куда уж проще?)
вопрос в том, что потом с этой единичкой делать. Количество объектов мы знаем. А что дальше? Не спавнить больше пули - хорошо, это не проблема. А вот у автора возникает следующая задача: если пули врага не спаунятся, то надо дать пуль игроку. И здесь уже возникает вопрос - а как это сделать? ЗАставить фабрику дать игроку пуль? Тогда это уже какая-то убер-фабрика, нарушающая SRP. Это всё такие, философские вопросы, возможно я действительно слишком заморачиваюсь :)
источник

HM

Hackerman Me in Unreal Engine
Aleksei DTG
Это правильное наблюдение, но просто полезно задумываться о том, как ещё это можно сделать. Ну а вообще, KISS, да :)
👍🏻
источник

AD

Andrew Derkach in Unreal Engine
Vladimir Alyamkin
При таком подходе все равно будет лаг, к сожалению. А какой результат хотите достичь?
А откуда там лаг будет?
Сейчас есть видимый лаг при загрузке боевого левела в несколько секунд. Покурил код UEngine, там загрузка левела обстоит так (ооооочень упрощённо): выгружаем старый мир -> ищем UPackage загружаемого левела, если его нет, то загружаем -> создаём мир и понеслась.
Я хочу убрать лаг в несколько секунд. Если будет секунда - уже хорошо.
Подход ещё не тестил, переключился на другую задачу. Но руки-то чешутся. Если хоть раз в асинхронщину влез - уже не остановить пытливый ум)
источник

n

norlin in Unreal Engine
Aleksei DTG
вопрос в том, что потом с этой единичкой делать. Количество объектов мы знаем. А что дальше? Не спавнить больше пули - хорошо, это не проблема. А вот у автора возникает следующая задача: если пули врага не спаунятся, то надо дать пуль игроку. И здесь уже возникает вопрос - а как это сделать? ЗАставить фабрику дать игроку пуль? Тогда это уже какая-то убер-фабрика, нарушающая SRP. Это всё такие, философские вопросы, возможно я действительно слишком заморачиваюсь :)
так и скажи - сфейлился с первоначальным советом и теперь пытаешься показаться умным ;)
источник

AD

Andrew Derkach in Unreal Engine
norlin
сейчас точно не помню, но посмотри внутри движка как world composition работает. Там всё сильно запутано, но если разберёшься - точно станет более-менее понятно, что делать)
Пасиб, посмотрю
источник

HM

Hackerman Me in Unreal Engine
Andrew Derkach
А откуда там лаг будет?
Сейчас есть видимый лаг при загрузке боевого левела в несколько секунд. Покурил код UEngine, там загрузка левела обстоит так (ооооочень упрощённо): выгружаем старый мир -> ищем UPackage загружаемого левела, если его нет, то загружаем -> создаём мир и понеслась.
Я хочу убрать лаг в несколько секунд. Если будет секунда - уже хорошо.
Подход ещё не тестил, переключился на другую задачу. Но руки-то чешутся. Если хоть раз в асинхронщину влез - уже не остановить пытливый ум)
Вот так и начинают многопоточные приложения писать)
источник

DK

Dmitriy Kuzz in Unreal Engine
Aleksei DTG
вопрос в том, что потом с этой единичкой делать. Количество объектов мы знаем. А что дальше? Не спавнить больше пули - хорошо, это не проблема. А вот у автора возникает следующая задача: если пули врага не спаунятся, то надо дать пуль игроку. И здесь уже возникает вопрос - а как это сделать? ЗАставить фабрику дать игроку пуль? Тогда это уже какая-то убер-фабрика, нарушающая SRP. Это всё такие, философские вопросы, возможно я действительно слишком заморачиваюсь :)
Тогда это уже задача не "как узнать сколько акторов", а "как написать целую фичу стрельбы")
источник