есть у мя знам корневой нод,
у которого 3 чада:
1. лого
2. мир
3. нод для фабричных цехов по производству мехов
создаются они один раз вместе с ветками из нод-наследниками и далее между ними игрок осуществляет серфинг переключается.
переключаю я между ними так:
/// Отключаю текущий: scene_global.SetEnabledRecursive(false); ... /// Включаю выбранный юзером так: scene_global.SetEnabledRecursive(true);
собсно мне не нравится рекурсивный обход всей ветки подключаемой/отключаемой сцены.
хотя это работает.
Подозреваю что есть истинно правильный способ для такого менеджмента.
хочу спросить, а как делать правильно?
Можешь делать 3 сцены и менять активную во viewport.
GLoom
> Можешь делать 3 сцены и менять активную во viewport.
я на верхнем уровне абстракции и у мя viewport ассоциируется с матрицей проекции:
через него я переключаюсь на разные камеры.
т.е. я не понимаю, как это будет работать.
если бы у мя было 2D, то можно бы рисовать разные 2D сцены в отличающихся
друг от друга областях в мировом пространстве и переключать между ними
через соответствующие камеры.
но это мрачно и ещё более костыльно,
и тем более у меня 3D.
я бы не спросил, если в моей проге всё ограничивалось только этими тремя сценами,
в реальности же мне нужно будет тасовать достаточно много разных сцен и подсцен...
Не знаю на сколько это правильно, но у Camera и у Drawable есть SetViewMask, разным объектам можно назначить отдельные маски. То есть переключение будет в одном месте сменой маски у камеры.
Делай много сцен, столько, сколько нужно. Не обязательно все пихать в одну сцену.
Tarzeron
> Не знаю на сколько это правильно
GLoom
> Делай много сцен, столько, сколько нужно
типа так:
Node@ Root = Scene(); Node@ nd_1 = Node(); Node@ nd_2 = Node(); И далее так: if(чего изволите) @Root = nd_1; else @Root = nd_2;
?
GLoom
> Можешь делать 3 сцены и менять активную во viewport.
ага, сконцентрировался на этом вашем совете и на конец то дошло.
ок, надо будя потестить.
Тема в архиве.