Войти
ПроектыФорумОцените

Battlecruiser (2 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#15
14:12, 18 окт. 2017

pixeye, по поводу "как эффективно, дерзко и молодежно" создавать новые сцены - это зависит от реализации инстанцирования динамики в коде и от статичного левел дизайна. Я предпочитаю вместо единого updatemanager-а - специализированные подсистемы (uimanager, unitmanager, battlefieldmanager, etc), реализующие в себе динамические пулы, а всю их динамику инстанцировать как дочерние объекты к самим менеджерам. В случае ленивой инициализации этих менеджеров каждый из них будет отдельным GameObject-ом со своим дочерним списком зависимых объектов и хорошо впишется в общую иерархию сцены без лишней вложенности.

#16
14:14, 18 окт. 2017

greencrazycat
> может реально выстрелить в ногу когда от него не ждешь
Кстати, насчет вот этого хотел вставить 5 копеек.

+ Показать
#17
14:16, 18 окт. 2017
Например, случилось что-то плохое, и экземпляр удалился со сцены.

А не должно быть таких ситуаций, по сути это нарушение работы общей логики программы и нужно кидать исключение и валить ее / обрабатывать как-то (рестартовать уровень, например).


Есть один кейс - это попытка потрогать синглтон с ленивой инициализацией в OnDestroy / OnDisable другого объекта в момент смены выгрузки сцены - раньше просто пробивало песочницу, теперь юнити орет, что что-то пошло не так, попытка инстанцирования после разрушения. Поэтому нужен механизм для проверки - а существует ли еще инстанс синглтона без его форсированного пересоздания. Почему? Потому что порядок вызова колбеков очистки для GameObject-ов в сцене не определен и синглтон уже может быть убит.
Я сделал так:

+ Показать

И более реалистичный пример:
+ Показать

#18
14:47, 18 окт. 2017

Leopotam
> pixeye, по поводу "как эффективно, дерзко и молодежно" создавать новые сцены -
> это зависит от реализации инстанцирования динамики в коде и от статичного левел
> дизайна. Я предпочитаю вместо единого updatemanager-а - специализированные
> подсистемы (uimanager, unitmanager, battlefieldmanager, etc), реализующие в
> себе динамические пулы, а всю их динамику инстанцировать как дочерние объекты к
> самим менеджерам. В случае ленивой инициализации этих менеджеров каждый из них
> будет отдельным GameObject-ом со своим дочерним списком зависимых объектов и
> хорошо впишется в общую иерархию сцены без лишней вложенности.

Согласен, что это индивидуально. В общем-то чем мне нравится программирование игр в частности так это возможностью решить одну задачу разными путями:)
Что до поддержки 4.6 - я не рекомендую, а говорю, что такая возможность есть. В самом редакторе это даже помечено как experemental. Это реально дело выбора каждого как и последствия. Кстати о них, спасибо, что описал 

#19
16:31, 18 окт. 2017

pixeye

Знаю, сам терпеть не могу : )
Новый юнити  работает с более свежими версиями языка C# - Провеку на нулл можно делать так:

У меня просто весь код был написан на проверках на null, при обращении к любому объекту я проверял, не нулевой ли он и т.д.
Сам подход дурацкий.
Сейчас, когда связываю пару объектов, делаю либо так, чтобы при удалении объект вначале всем сообщал об этом (а у него есть прямые указатели для этого), либо вообще захожу через ID объекта, а не по прямой ссылке. Тут лучше организационными мерами это обходить.
Вся фигня в том, что во всех учебных курсах эти редиски делают проверки на нулл, и если null, то генерят объект. Сволочи одним словом. Говнокоду учат.
#20
0:00, 19 окт. 2017

pixeye
по созданию новой сцены - не проще ли сделать тупо заготовку в виде префаба?

#21
0:02, 19 окт. 2017

UncleMike, тут смысл в абсолютной ленивости программиста - он тычет File / New Scene и новая сцена уже содержит нужную иерархию без дополнительного перетаскивания префаба в сцену. А так разницы нет.

#22
0:14, 19 окт. 2017

Тут нужно рассмотреть два варианта - если в игре будет только одна подобная сцена, то по любому надо импортировать этот скрипт в проект. Ну и перетащить префаб на сцену - тоже пара секунд. Если же надо много таких сцен, то просто сделать такую сцену как шаблон и потом СОХРАНЯТЬ ЕЕ КАК....  В общем как мне кажется польза от заморочек с такими скриптами стремиться к нулю...)

#23
5:14, 19 окт. 2017

UncleMike
> Тут нужно рассмотреть два варианта - если в игре будет только одна подобная
> сцена, то по любому надо импортировать этот скрипт в проект. Ну и перетащить
> префаб на сцену - тоже пара секунд. Если же надо много таких сцен, то просто
> сделать такую сцену как шаблон и потом СОХРАНЯТЬ ЕЕ КАК....  В общем как мне
> кажется польза от заморочек с такими скриптами стремиться к нулю...)

1) Заморочек особо нет. Это 30-40 строчек кода. Лучший код - ненаписанный код, но мне 1 описательный скрипт нравится больше префаба.
Создавать сцену через  File / New Scene естественно. Никогда не забуду.

2) Юнити позволяет делать очень гибкую настройку всего. Cвою задачу я вижу в том, чтобы показать людям что такая возможность существует. Например в юнити 5.0 таких штук еще не было. Как это использовать - вопрос фантазии.
Сам я не сторонник "ручного" труда в 21 веке. Мне даже лень на компе папку downloads чистить. Как бабке жалко удалять хлам, вдруг пригодится. Поэтому написал батч скрипт который чистит мой комп раз в неделю по пятницам. В это время я смотрю и плачу.

3) Я не импортирую скрипты/префабы в проект сам. У меня есть базовый инструментарий который переходит из проекта в проект. Он летает в облаке и загружается в новый проект когда я спускаюсь на землю работать.
Мне хочется чтобы юнити писал за меня игру сам, но не знаю как писать нейросети.

4) Степень моей лени в гифке ниже :)
Изображение

#24
16:09, 20 окт. 2017

Первая часть по шаблону Object Pool : )

#25
17:28, 20 окт. 2017

pixeye, немножко пописал там в комментах. Ждем второй части :)

#26
17:38, 20 окт. 2017

Leopotam
Спасибо, про боксинг в след части поправлю :)

#27
20:38, 20 окт. 2017

классная идея, если смогу чем помочь - пиши!

#28
0:08, 22 окт. 2017

SecretSem Спасибо! Если ты разбираешься в шейдерах можешь уже начинать помогать XDD

Вторая часть про object pool!

#29
3:48, 22 окт. 2017

pixeye, я там опять фигни всякой понаписал в комментах, сорри. :) Что за помощь нужна с шейдерами?

Страницы: 1 2 3 4 5 6 Следующая »
ПроектыФорумОцените

Тема в архиве.