Войти
ПрограммированиеФорумОбщее

Unity3D: Ручной Static Batching, как проверить флаг "Batching Static"?

#0
(Правка: 21:39) 21:35, 14 янв. 2020

Привет всем!
Нужно получить список обьектов у которых стоит галка в "Batching Static":
- | Unity3D: Ручной Static Batching, как проверить флаг "Batching Static"?
Что делаю: беру список всех обьектов в сцене и проверяю каждый:

for(int i=0; i< go.Length; ++i) {
                if (go[i].isStatic == false)
                    continue;
...
}
Флаг isStatic равен true, если хотябы одна из галок в контекстном меню является true. Но мне нужно проверить только поле "Batching Static". Как это сделать? Перелопатил интернет и ничего не нашел.
Нашел вот это:
bool IsStaticBatch ( GameObject obj ) {
            var staticFlags = GameObjectUtility.GetStaticEditorFlags ( obj );
            return (staticFlags & StaticEditorFlags.BatchingStatic) > 0;
        }
Но этот скрипт работает только в UnityEditor, а мне нужно чтобы в билде все тоже работало. Подскажите, как узнать что содержит поле "Batching Static"?


#1
13:24, 15 янв. 2020

Никто не сталкивался с таким? Ответ вроде должен быть простой, но ничего подобного. Я не нашел нигде как можно получить какие галки выставлены в редакторе

#2
(Правка: 1:43) 0:58, 16 янв. 2020

Я с таким не работал, но по логике должен быть список в который этот объект входит. А вообще "Batching Static" и isStatic это могут быть разные вещи.

Тебе нужно искать параметр с типом StaticEditorFlags.
Я так полагаю это работает только в редакторе.
GameObjectUtility.GetStaticEditorFlags

Alerr
> Но этот скрипт работает только в UnityEditor
То есть в билде этот флаг просто отсутствует за ненадобностью. Поскольку все объекты уже компонуются соответственно. Поэтому никак.

Но, ты можешь сгенерить дополнительный список "вручную", записать в него все объекты с флагом "Batching Static" в редакторе, а в билде им пользоваться.

#3
13:51, 16 янв. 2020

В билде проверяй это: https://docs.unity3d.com/ScriptReference/Renderer-isPartOfStaticBatch.html

#4
14:12, 16 янв. 2020

Mr F
Оптимальна ли эта проверка? Неизвестно?

ПрограммированиеФорумОбщее